Mac双网卡路由设置实现内外网同时访问

  • Post author:
  • Post category:其他


最近公司的无线网络升级了,将内网从无线网络中剥离,故通过无线网络仅能访问外网了。无奈只能通过双网卡的方式同时连接内外网了,具体是:通过无线访问外网,有线访问ip地址以10开头的内网,且无线的优先级高。

具体配置如下图:

在这里插入图片描述

希望通过255.0.0.0子网掩码将10.x.x.x的所有ip地址识别为内网环境,并分流给路由10.8.15.1,从而实现内外网同时访问

但奇怪的事情发生了,访问同一个网段的10.8.15.49没问题,但访问10.11.206.141则出现超时(ping ssh均不通)。

通过route get命令发现上图中设置的255.0.0.0子网掩码虽然成功将10.11.206.141识别为内网地址,但并没有指定路由地址

>>> route get 10.8.15.49
   route to: 10.8.15.49
destination: 10.0.0.0
       mask: 255.0.0.0
  interface: en8
      flags: <UP,DONE,CLONING,STATIC>
 recvpipe  sendpipe  ssthresh  rtt,msec    rttvar  hopcount      mtu     expire
       0         0         0         0         0         0      1500       -13

>>> route get 10.11.206.141
   route to: 10.11.206.141
destination: 10.0.0.0
       mask: 255.0.0.0
  interface: en8
      flags: <UP,DONE,CLONING,STATIC>
 recvpipe  sendpipe  ssthresh  rtt,msec    rttvar  hopcount      mtu     expire
       0         0         0         0         0         0      1500       -39

此时的路由表:

>>> netstat -rn
Routing tables

Internet:
Destination        Gateway            Flags           Netif Expire
default            192.168.1.1        UGScg             en0
default            10.8.15.1          UGScIg            en8
1                  198.18.0.1         UGSc            utun3
2/7                198.18.0.1         UGSc            utun3
4/6                198.18.0.1         UGSc            utun3
8/5                198.18.0.1         UGSc            utun3
10                 link#24            UCS               en8      !
10.8.15.1/32       link#24            UCS               en8      !
10.8.15.1          2c:xx:0:xx:xx:xx   UHLWIir           en8   1138
10.8.15.49         0:d8:61:2c:de:34   UHLWI             en8    463
10.8.15.50/32      link#24            UCS               en8      !
16/4               198.18.0.1         UGSc            utun3
32/3               198.18.0.1         UGSc            utun3
64/2               198.18.0.1         UGSc            utun3
127                127.0.0.1          UCS               lo0
127.0.0.1          127.0.0.1          UH                lo0
128.0/1            198.18.0.1         UGSc            utun3
169.254            link#6             UCS               en0      !
169.254            link#24            UCSI              en8      !
192.168.1          link#6             UCS               en0      !
192.168.1.1/32     link#6             UCS               en0      !
192.168.1.1        78:44:fd:1a:82:7f  UHLWIir           en0   1199
192.168.1.129      ee:41:18:3:2f:dd   UHLWI             en0   1147
192.168.1.133      58:b6:23:f1:bb:9   UHLWI             en0   1151
192.168.1.147      a2:db:9d:ea:a:97   UHLWIi            en0    481
192.168.1.161/32   link#6             UCS               en0      !
198.18.0/15        198.18.0.1         UGSc            utun3
198.18.0.1         198.18.0.1         UH              utun3
224.0.0/4          link#6             UmCS              en0      !
224.0.0/4          link#24            UmCSI             en8      !
224.0.0.251        1:0:5e:0:0:fb      UHmLWI            en0
239.255.255.250    1:0:5e:7f:ff:fa    UHmLWI            en0
255.255.255.255/32 link#6             UCS               en0      !
255.255.255.255/32 link#24            UCSI              en8      !
>>> sudo route add -net 10.0.0.0 -netmask 255.0.0.0 10.8.15.1
add net 10.0.0.0: gateway 10.8.15.1

解决办法:

上图的设置不变

通过命令行添加删除路由配置

>>> sudo route add -net 10.0.0.0 -netmask 255.0.0.0 10.8.15.1
>>> sudo route delete -net 10.0.0.0 -netmask 255.0.0.0 10.8.15.1

(由于个人才疏学浅,还没有搞懂其中的规律,所以只能不断尝试添加删除)

在进行上面操作的同时,不断监控路由表及路由路径,直到出现如下两种情况

  1. 路由表变为如下(出现10 10.8.15.1 UGSc en8)
Routing tables

Internet:
Destination        Gateway            Flags           Netif Expire
default            192.168.1.1        UGScg             en0
default            10.8.15.1          UGScIg            en8
1                  198.18.0.1         UGSc            utun3
2/7                198.18.0.1         UGSc            utun3
4/6                198.18.0.1         UGSc            utun3
8/5                198.18.0.1         UGSc            utun3
10                 10.8.15.1          UGSc              en8
10.8.15.1/32       link#24            UCS               en8      !
10.8.15.1          2c:ab:0:a6:75:71   UHLWIir           en8   1181
10.8.15.50/32      link#24            UCS               en8      !
16/4               198.18.0.1         UGSc            utun3
32/3               198.18.0.1         UGSc            utun3
64/2               198.18.0.1         UGSc            utun3
127                127.0.0.1          UCS               lo0
127.0.0.1          127.0.0.1          UH                lo0
128.0/1            198.18.0.1         UGSc            utun3
169.254            link#6             UCS               en0      !
169.254            link#24            UCSI              en8      !
192.168.1          link#6             UCS               en0      !
192.168.1.1/32     link#6             UCS               en0      !
192.168.1.1        78:44:fd:1a:82:7f  UHLWIir           en0   1197
192.168.1.129      ee:41:18:3:2f:dd   UHLWI             en0   1175
192.168.1.133      58:b6:23:f1:bb:9   UHLWI             en0   1155
192.168.1.147      a2:db:9d:ea:a:97   UHLWIi            en0    893
192.168.1.161/32   link#6             UCS               en0      !
198.18.0/15        198.18.0.1         UGSc            utun3
198.18.0.1         198.18.0.1         UH              utun3
224.0.0/4          link#6             UmCS              en0      !
224.0.0/4          link#24            UmCSI             en8      !
224.0.0.251        1:0:5e:0:0:fb      UHmLWI            en0
239.255.255.250    1:0:5e:7f:ff:fa    UHmLWI            en0
255.255.255.255/32 link#6             UCS               en0      !
255.255.255.255/32 link#24            UCSI              en8      !
  1. 路由路径变为如下(出现gateway: 10.8.15.1)
   route to: 10.11.206.141
destination: 10.0.0.0
       mask: 255.0.0.0
    gateway: 10.8.15.1
  interface: en8
      flags: <UP,GATEWAY,DONE,STATIC,PRCLONING>
 recvpipe  sendpipe  ssthresh  rtt,msec    rttvar  hopcount      mtu     expire
       0         0         0         0         0         0      1500         0

此时你会发现10.11.206.141已经能正常连接了

总结:虽然不知道原因,但根据我的个人经验,需要在网络设置和命令行中同时设置才能实现内外网同时访问,缺一不可。如果您知道其中的原因或者有更好的办法,请不吝赐教🙏



版权声明:本文为MacwinWin原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。