通过 Mountain Lion 中的默认网关路由除少数 IP 范围之外的所有流量

通过 Mountain Lion 中的默认网关路由除少数 IP 范围之外的所有流量

我通过默认的 Mountain Lion 网络首选项使用 VPN(Cisco IPSec)。在 Lion(以及 Snow Leopard)中,我执行以下操作将路由更改回使用我的默认网关进行所有流量,并为需要通过 VPN 的特定 IP 范围设置一些路由:

# Route traffic through VPN:
route -nv add -net IPRANGE -interface utun0
#...more lines for the different IP-ranges that should go through VPN)

# Route all other traffic through the old default gateway:
route change default DEFAULT-GATEWAY-IP

这似乎在 Mountain Lion 下不起作用。当我在浏览器中访问它们时,Cisco IPSec 的(新实现?)似乎会动态地将大量路由添加到路由表中。

我已对此进行了很多调试(ping、traceroute),但仍然没有找到解决方案。

我试图解决的基本问题只是通过 VPN 路由特定 IP 范围的流量,其他一切都应该像我没有连接到 VPN 一样运行。任何其他可以实现这一目标的解决方案对我来说都可以。=)

答案1

如果您在 VPN 偏好设置面板(系统偏好设置、VPN 项、高级)中指定您不希望所有流量都通过 VPN 路由,那么在连接到 VPN 后,您的任何路由都不会改变。然后,要获取 VPN 内部所需的特定内容的路由,您需要创建此文件:

/etc/ppp/ip-up

包含

#!/bin/bash
/sbin/route add -net 10.10.10 -interface ppp0

其中“10.10.10”对应于您所在的子网。当我想进入 10.10.10/24 网络时,上述方法有效,其子网为 255.255.255.0。如果子网为 255.255.0.0,我会用“10.10”代替。

创建文件后,设置其权限,以便它在 VPN 连接后运行:

chmod 755 /etc/ppp/ip-up 

如果您需要连接多个 VPN,并且每个 VPN 都需要添加不同的路由,我不知道该怎么告诉您。但这仅适用于 1 个 VPN。

相关内容