![如何在 Mac OS X Leopard 上通过 VPN 有选择地路由网络流量?](https://linux22.com/image/1209482/%E5%A6%82%E4%BD%95%E5%9C%A8%20Mac%20OS%20X%20Leopard%20%E4%B8%8A%E9%80%9A%E8%BF%87%20VPN%20%E6%9C%89%E9%80%89%E6%8B%A9%E5%9C%B0%E8%B7%AF%E7%94%B1%E7%BD%91%E7%BB%9C%E6%B5%81%E9%87%8F%EF%BC%9F.png)
当我从家里连接到公司网络(通过 VPN)时,我不想将所有网络流量发送到 VPN。例如,当我在家工作时,我希望能够将所有文件备份到家里的 Time Capsule 中,同时仍能访问公司的内部网络。
我正在使用 Leopard 的内置 VPN 客户端。我尝试取消选中“通过 VPN 连接发送所有流量”。如果我这样做,我将无法通过 curl 或 Web 浏览器访问我公司的内部网站(尽管内部 IP 仍然可以访问)。如果我可以有选择地选择一组 IP 或域通过 VPN 路由,而将其余 IP 或域保留在自己的网络上,那就太理想了。使用 Leopard 的内置 VPN 客户端可以实现这一点吗?
答案1
创建文件/etc/ppp/ip-up内容如下:
#!/bin/sh
/sbin/route add <SUBNET> -interface $1
用子网替换<SUBNET>
,您想通过 VPN 路由(例如 192.168.0.0/16)
以root身份执行:
chmod 0755 /etc/ppp/ip-up
每次连接到 VPN 时都会执行此文件。
赋予脚本的参数:
$1
:VPN 接口(例如ppp0
)$2
:未知,就0
我的情况而言$3
:VPN 服务器的 IP$4
:VPN网关地址$5
:用于局域网连接的常规(非 VPN)网关
答案2
答案3
我想做类似的事情。连接 VPN,然后通过该 VPN 路由其他网络。我最终得到了以下 Applescript:
-- Connect Work VPN
tell application "System Events"
tell network preferences
tell current location
tell service "Work"
connect
tell current configuration
repeat until get connected = true
delay 1
end repeat
end tell
end tell
end tell
end tell
end tell
set gateway to "192.168.1.1"
do shell script "route add 172.16.0.0/16 " & gateway with administrator privileges
您需要更改"Work"
为 VPN 连接的名称、192.168.1.1
网关地址以及172.16.0.0/16
要路由到的网络的地址。可以通过使用不同的地址重复最后一行来添加其他网络。
答案4
我已经在线查看过是否可以找到任何东西,据我所知,您似乎希望能够像平常一样使用您的计算机,同时还能够连接到公司内部网站,因此,您可能需要设置自定义路由表。
此链接显然仅适用于 10.4,但命令行工具可能仍然有效。