mac osx 通过网络掩码覆盖地址范围的默认路由

mac osx 通过网络掩码覆盖地址范围的默认路由

在我的 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 中,度量与路由无关。

我尝试了几种方法,但似乎都没有效果

  1. route add 10.0.0.0/8 10.1.1.1
    • 这是在默认路由之后添加的,并且不会被拾取。
  2. route change 10.0.0.0/8 -interface en2
    • 更改了网关而不是子网掩码并压缩了接口。
  3. 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

相关内容