在 OSX 中使用 VPN 连接将仅通过“服务订单”中的第一个服务进行路由

在 OSX 中使用 VPN 连接将仅通过“服务订单”中的第一个服务进行路由

我正在尝试让我的 VPN 连接仅通过 VPN 连接路由与我的工作场所相关的网络流量,并通过我的 Wi-Fi 连接路由任何其他流量。

如果我的 Wi-Fi 位于服务订单列表的顶部,我就无法通过连接 VPN 访问我的工作网络;而当我的 VPN 连接位于顶部时,我就无法访问工作网络以外的任何网络。

问题是否可能是因为我的工作 DNS 服务器可以解析互联网地址,但不允许通过其路由器连接到互联网绑定地址?

我的本地路由器/名称服务器是:10.10.10.3 远程 VPN 名称服务器是:10.1.1.88

输出scutil --dns如下,我发现 VPN 名称服务器出现在resolver #1

DNS configuration

resolver #1
  search domain[0] : home-domain.com
  nameserver[0] : 10.1.1.88
  order    : 100000

resolver #2
  nameserver[0] : 10.10.10.3
  order    : 200000

resolver #3
  domain   : local
  options  : mdns
  timeout  : 5
  order    : 300000

resolver #4
  domain   : 254.169.in-addr.arpa
  options  : mdns
  timeout  : 5
  order    : 300200

resolver #5
  domain   : 8.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 300400

resolver #6
  domain   : 9.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 300600

resolver #7
  domain   : a.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 300800

resolver #8
  domain   : b.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 301000

DNS configuration (for scoped queries)

resolver #1
  search domain[0] : home-domain.com
  nameserver[0] : 10.10.10.3
  if_index : 5 (en1)
  flags    : Scoped

resolver #2
  search domain[0] : vpn-domain.com
  nameserver[0] : 10.1.1.88
  if_index : 8 (ppp0)
  flags    : Scoped

查看我的 netstat -r 显示以下内容,我可能在这里注意到没有 10.1 的路由。我的大多数目的地都在那里(10.1.7.* 只是 VPN 连接)。

Destination        Gateway            Flags        Refs      Use   Netif Expire
default            home.gateway       UGSc           17        0     en1
default            119.225.149.174    UGScI           2        0    ppp0
10.1.7/24          ppp0               USc             0        0    ppp0
10.10.10/24        link#5             UCS             8        0     en1
home.gateway       0:4:ed:d:ed:b9     UHLWIi         40    58916     en1   1192
brettsmac.localdom localhost          UHS             0     1704     lo0
10.10.10.255       ff:ff:ff:ff:ff:ff  UHLWbI          0        2     en1
119.225.149.174    home.gateway       UGHS            3    34401     en1
127                localhost          UCS             0        0     lo0
localhost          localhost          UH              8  1672518     lo0
169.254            link#5             UCS             0        0     en1

更新:与我们的基础设施团队交谈后,他们告诉我如何在 Windows 7 中解决这个问题;在 VPN 连接的“高级 TCP/IP 设置”选项卡下,我们要取消勾选“在远程网络上使用默认网关”选项,OSX 中是否有类似的设置?

答案1

将 VPN 网络移至服务订单列表的顶部。这将确保您正在使用工作 VPN 的名称服务器,您需要该服务器来解析工作网络地址。现在,假设您的工作 VPN 不会破坏更广泛的互联网的名称解析(即,它通过阻止路由而不是 DNS 解析来进行过滤),那么剩下的就是修复到互联网的路由。

让我们看一下路由表的前四个条目:

  1. 第一行将所有流量发送到您的家庭路由器。
  2. 第二行将所有流量发送到您的 VPN 隧道。
  3. 第三行将工作地址流量(10.1.7/24)发送到VPN。
  4. 第四行将本地流量(10.10.10/24)发送到您的路由器。

假设 (3) 和 (4) 中的网络地址确实描述了您的工作网络和本地网络(我猜是这样),那么这些线路将处理您想要完成的所有工作 VPN 路由。因此,剩下的就是确保默认流量流向您的路由器而不是 VPN。

看起来 (1) 应该这样做,我猜这行代码在你启动 VPN 之前就已经存在了。所以看起来 (2) 覆盖了它。(它们显然存在冲突,谁知道覆盖逻辑是什么?)所以解决方案是删除 (2) 或将其更改为与 (1) 相同。

我会尝试:

sudo route change -net default home.gateway

或者

sudo route change -net default 0:4:ed:d:ed:b9

或者

sudo route change -net -interface default 0:4:ed:d:ed:b9

或者

sudo route delete default
sudo route add -net default home.gatway

ETC..

相关内容