在我的 Mac 上我有两个适配器,我想通过设置一些自定义路由将 WiFi 用作 WAN,将以太网用作 LAN。
服务顺序设置为 WiFi,然后是以太网,在路由表中它看起来像这样......
netstat -nr
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 192.168.1.1 UGSc 33 0 en0
default 10.1.1.1 UGScI 1 0 en2
本质上,我想为现有网关添加一条优先级高于默认地址范围 10.0.0.0/8 的路由。在 Windows 中,我可以通过修改默认路由的“度量”并添加一个度量较低的新路由来实现这一点,但在 OSX 中,度量与路由无关。
我尝试了几种方法,但似乎都没有效果
route add 10.0.0.0/8 10.1.1.1
- 这是在默认路由之后添加的,并且不会被拾取。
route change 10.0.0.0/8 -interface en2
- 更改了网关而不是子网掩码并压缩了接口。
route delete default
- 尝试删除所有默认值并仅添加显式路由集
- 0.0.0.0 被解释为默认值,并重新排到列表顶部。
也许我在欺骗自己,以为这应该比实际情况更容易......
更新:我为此折腾了将近三个小时,发布帖子后不到 5 分钟我便想到要检查 DNS 设置。
当我尝试上述方法 1 并 ping 时,它工作正常,所以 DNS 是罪魁祸首。我不得不手动将 DNS 服务器添加到其他默认适配器的列表中。我不太确定为什么在 Mac 上需要这样做,因为我假设会搜索所有适配器的 DNS 服务器。我不是专家,但这对我来说很有意义。
解决方案:
route add 10.0.0.0/8 10.1.1.1
networksetup -setdnsservers Wi-Fi 10.1.1.1 10.1.1.2