使用 VPN 连接仅路由特定 IP 范围

Route only certain IP range with VPN connection

我们正在使用 FortiClient 连接到我们客户的一个 VPN。不幸的是,FortiClient 默认 通过 VPN 路由所有流量。

Linux,我们已经找到了绕过它的方法。连接 VPN 后,我们 运行:

sudo route del default ppp0
sudo route add -net 172.20.0.0 netmask 255.255.0.0 dev ppp0

现在,只有以 172.20.x.x 开头的地址才能通过 VPN 连接解析。

现在,我在 Mac OS X 10.11.6 上使用 FortiClient 5.4,我正在尝试重新制作上面的内容以在 Mac OS X 上运行。基本上我什至第一步都有问题。我试过:

sudo route delete -net default -ifp ppp0

但是路由仍然没有按预期工作。测试很容易,因为 VPN 后面没有互联网连接 - 我无法 browse/ping 任何网站 :-)。

我做错了什么?感谢您的帮助!

我用 this question 来帮助我,结果我需要一个额外的命令。

基本上 Mac OS X 10.11.6 的工作解决方案如下:

sudo route delete -net default -interface ppp0
sudo route add -net 0.0.0.0 -interface en0
sudo route add -net 172.20.0.0 -netmask 255.255.0.0 -interface ppp0

这基本上意味着:

  1. 删除接口 ppp0 上由 FortiClient
  2. 设置的默认路由
  3. 为默认接口上的每个 IP 添加默认路由(对我来说 en0
  4. 通过 ppp0 (FortiClient) 接口路由特定 IP 范围。

Linux 相当于问题中提到的是:

sudo route del default ppp0
sudo route add -net 172.20.0.0 netmask 255.255.0.0 dev ppp0

所以你实际上跳过了第 2 步。

最后没那么难。