我正在使用Leopard的内置VPN客户端。我尝试取消选中“通过VPN连接发送所有流量”。如果这样做,我将无法通过curl或Web浏览器访问公司的内部网站(尽管仍然可以访问内部IP)。如果可以选择性地选择一组要通过VPN路由的IP或域,并将其余的保留在我自己的网络中,那将是理想的选择。 Leopard的内置VPN客户端可以实现吗?如果您有任何软件建议,我也想听听他们的建议。
#1 楼
创建具有以下内容的文件/ etc / ppp / ip-up:#!/bin/sh
/sbin/route add <SUBNET> -interface
用子网替换
<SUBNET>
,您要通过VPN路由(例如192.168.0.0) / 16)以root用户身份执行:
chmod 0755 /etc/ppp/ip-up
每次连接到VPN时,将执行此文件。 />赋予脚本的参数:
:VPN接口(例如ppp0
)
:未知,在我的0
case
:VPN服务器的IP
:VPN网关地址
:用于局域网连接的常规(非vpn)网关评论
@Edgar-不第一行很特别。 zh.wikipedia.org/wiki/Shebang_(Unix)
–詹姆斯·摩尔
11年5月23日在20:42
在10.7 / Lion上,我的运气更好:/ sbin / route add 172.16.0.0/16 -interface $ 1我看到ip-up得到的参数是:$ 1 = VPN接口,例如'ppp0'$ 2 ='0'(不确定该值是多少)$ 3 =您的VPN IP $ 4 = VPN公共网关IP地址$ 5 =以太网/ wifi的默认网关
–加布·马丁(Nabe-Dempesy)
2011-12-7 17:18
如果配置了两个或多个VPN连接会怎样?如何在/ etc / ppp / ip-up中区分它们,以便可以相应地添加路由?友好的VPN名称是否将作为第六个参数(ipparam)传递?
–卡尔
2014年9月16日在1:19
/ etc / ppp / ip-up在我的系统上没有被调用; MacOS 10.13。我做了一个类似的脚本来记录执行情况,它具有root:staff所有权和0755 mod。手动调用它不会执行脚本。我的VPN连接是基于IPSec的L2TP,并且“配置IPv4”设置为“使用PPP”。我拖尾-f日志,并且/ etc / ppp / ip-up不能连接或断开vpn。
–GabLeRoux
17-10-28在17:56
在MacOS 10.15(Catalina)上,这个答案可以帮助我解决大部分问题,但是高级VPN设置中的“通过VPN连接发送所有流量”选项似乎不起作用。运行route -n监视器会显示默认的路由被重置。我在ip-up脚本中添加了以下内容,并最终对其进行了修复:#!/ bin / sh / sbin / route add
–主教
20年5月21日在14:25
#2 楼
在MacOS上的“网络偏好设置”中有一个隐藏功能:您可以对接口进行排序。打开系统偏好设置->网络->单击左下方的
gear
-> Set service Order...
至关重要的是,将网络接口分类为希望使用它们的顺序。如果要将所有非LAN数据都发送到VPN,请在顶部放置VPN接口。像这样
VPN
以太网
机场
不喜欢这样:
机场
以太网
VPN
这样,无需检查
Session Options
中的以下设置:通过VPN连接发送所有流量
✅已在
L2TP VPN
连接上进行了测试评论
我认为这无法解决问题,除非OP通过以太网备份到Time Machine并连接到公司网络视图Airport(无线连接)
–乔什·纽曼(Josh Newman)
2010-4-15在17:53
我使用了ppp启动技巧,但是直到我将vpn连接移到无线连接下方后,它才起作用。这是一个有效的答案。
–阿罗斯伯勒
2012年8月11日14:41
这确实是主要答案!非常感谢,将无法弄清楚!
–安德烈·苏亚雷斯(Andre Soares)
16年1月30日,下午1:45
这确实适用于L2TP IPSec VPN,但不适用于Cisco IPSec VPN。 Cisco IPSec VPN在“设置服务顺序”对话框中不可用
–地貌学
18年4月12日在0:32
#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
更改为您希望路由到的网络的地址。通过用不同的地址重复最后一行,可以添加其他网络。评论
(此外,对于那些想知道该IP地址的人:就像发问者所谈论的一样,172.16.0.0/16是私有地址空间,就像10.xxx和192.168.xx一样,因此,它实际上是VPN的一部分,而不是外部网站或其他任何网站。)
– Arjan
09-10-21在9:48
那么192.168.1.1是您在VPN上的路由器,还是在LAN上的路由器?而且,您是否不必将默认路由设置回局域网?
–杰克M。
10年6月16日在17:14
#4 楼
我上网查看了是否可以找到任何东西,据我了解,您似乎希望能够像平常一样使用计算机,同时还能够连接到公司内部网站,因此,您可能需要设置自定义路由表。此链接显然仅适用于10.4,但命令行内容仍然可以使用。
评论
第一个解决方案仅适用于PPP VPN。以下解决方案可以在Cisco VPN(以及其他类型的思科专用)上使用superuser.com/questions/91191/…