使用双网卡同时连通内网和外网
1、查看一下路由表,了解下基本情况
打开终端,输入
netstat -rt
查看路由表的配置情况,我的如下
参数说明:
第一列:Destination,目标地,意思是:后面的参数代表着,如果前往这个ip的话,应该如何分配网关,网卡等,以及状态信息,都是针对前往这个ip的情况的
第二列:Gateway,网关,意思是:如果需要前往这个ip,应该从哪个网关过去,这里有两种情况,即有内外网用不同网关的,也有内外网用相同网关的。
第三列:Flags,标志位,和本文的重点无关,暂略
第四列:Refs,可以简单的理解为重要性,相同的ip,相同的网关,用这个重要性来区分使用哪个网卡
第五列:Use,使用情况
第六列:Netif,网卡号,net interface,如图,我有两张网卡,这里的en0,en10分别代表了我的两张网卡,不同的机器名称可能不同,但是意思是一样的,至于那张是无线网卡,需要自己去区分
第七列:Expire,和本文的重点无关,暂略
2、明确如何修改
看一下我的原始的表
插上网线之后,我的表是这样的,当前的状况是连的上内网,连不上外网。
根据表上看到,default目标两张网卡可以走,但是refs下看到en10的优先级比较高,根据我的状况,外网地址都无法访问,外网地址属于default部分,所以得出判断en10是有线网卡,因为它的优先级较高导致去外网的ip都由有线网卡进行转发,所以上不了网了,那么自然,en0就是无线网卡。
3、修改
第一步:修改无线网卡的优先级,使之大于有线网卡
进入系统偏好设置,网络,左下角的齿轮,更改服务顺序,拖动wifi到有线网卡上面就可以了(我的有线网卡是AX88772A)
此时变成的状态是连着无线,插着网卡,以无线网卡优先,即上不了内网,可以上外网(苹果默认的是插上有线网络有线优先)
第二步:修改连接内网使用的网卡
这里有两种情况
一、公司里内外网分两个路由:
此时只需要修改前往公司内网地址的网关就可以了,比如你需要访问的内网地址是10.10.15.*,而公司的内网网关是10.10.15.255,那么就这样写
sudo route add -net 10.10.15.0 -netmask 255.255.255.0 10.10.15.255
其中,0表示的是默认default,netmask是子网掩码,不是重点就不提了。
二、公司里内外网是一个路由:
此时需要有线网卡转发内网链接,无线网卡转发外网链接,写法如下
sudo route add -net 10.10.15.0 -netmask 255.255.255.0 -interface en10
如果存在的话先sudo route delete一下。
至此,应该是修改完成了,可以试一试,应该是确实是内外网都可以正常访问了
第三步:如何自动在每次启动的时候都切换到当前的路由表
当mac每次重启的时候,路由表都会被重置,这在windows里也是一样,但是windows里可以永久的修改路由表,而我们不希望这么做,那么就用到了macOS里好用的小机器人 Automator。
它在mac自带的工具里,我们打开它,选择应用程序,在第二列中选择运行AppleScript,随后我们就要在Automator中编写一段mac的自动化脚本。
把刚刚编辑的内容都用系统管理员权限写入脚本,并保存成一个应用程序就可以了,以后每次开机,都只需要双击就可以重新恢复路由配置。如果还需要更简便一点的话,只需要在系统偏好,用户与群组中,登录项里加入这个Automator的小程序就可以了
完成,这样每次启动的时候都会恢复至当前的路由配置了。