我通过默认的 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。