我猜并不是Mac中内置VPN客户端的所有VPN连接都具有该选项。
PPTP和L2TP确实提供了以下选项:打开网络设置:
选择您的VPN连接,然后单击高级按钮。
在“会话选项”标题下将弹出一个带有三个复选框的新窗口。这些复选框的最后一个是您想要的复选框:“通过VPN重定向所有流量”。
但是,就像你说的那样。高级按钮不会随Cisco IPSec一起弹出。
我发现此线程(/superuser/91191/how-to-force-split-tunnel-routing-on-mac-to-a-cisco-vpn)可能是您问题的答案(如果您使用它来路由整个IP范围):
有谁知道如何破解路由表(在Mac上),以克服cisco VPN上所有事物的VPN路由强制?我几乎想做的就是在VPN上只有10.121。*和10.122。*地址,而其他所有内容都直接进入互联网。
以下对我有用。在连接到思科VPN以后运行这些。(我使用的是OS X的内置cisco客户端,而不是Cisco品牌的客户端。)
sudo route -nv add -net 10 -interface utun0
sudo route change default 192.168.0.1
将第一个命令中的“ 10”替换为位于隧道另一侧的网络。
将“ 192.168.0.1”替换为您本地网络的网关。
我将其放入bash脚本中,如下所示:
$ cat vpn.sh
#!/bin/bash
if [[ $EUID -ne 0 ]]; then
echo "Run this as root"
exit 1
fi
route -nv add -net 10 -interface utun0
route change default 192.168.0.1
我还找到了有关在连接VPN时如何自动运行此操作的说明,但该操作已在星期五晚了,我不想尝试:)
https://gist.github.com/675916
编辑:
从那以后,我离开了使用Cisco VPN的工作,所以这是从内存中获得的。
第一个命令中的“ 10”是您要通过VPN路由的网络。“ 10”是“ 10.0.0.0/8”的简写。在Tuan Anh Tran的情况下,网络看起来像是“ 192.168.5.0/24”。
至于在第二个命令中指定哪个网关,它应该是您的本地网关。当您登录防止拆分隧道的VPN时,它将通过更改路由表来强制执行该策略,以便所有数据包都在虚拟接口上进行路由。因此,您想将默认路由更改回使用VPN之前的默认路由。
找出网关的最简单方法是在登录VPN之前运行netstat -rn,然后查看“默认”目标右侧的IP地址。例如,这是现在我的盒子上的样子:
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 10.0.1.1 UGSc 29 0 en1
10.0.1/24 link#5 UCS 3 0 en1
10.0.1.1 0:1e:52:xx:xx:xx UHLWIi 55 520896 en1 481
10.0.1.51 7c:c5:37:xx:xx:xx UHLWIi 0 1083 en1 350
10.0.1.52 127.0.0.1 UHS 0 0 lo0
我的网关是10.0.1.1,位于“默认”目标的右侧。