在 OSX 中从 VPN 连接中排除本地流量

在 OSX 中从 VPN 连接中排除本地流量

我有一个个人 VPN,我在工作时使用。

我想要做的是将所有本地流量排除在 VPN 之外。10.* 范围内的所有内容都需要像未连接时一样工作,并且所有其他流量都应通过 VPN。

  • 10.xxx=>出去 eth0
  • 所有其他人=>通过 ppp0 (vpn)

“按需 VPN”不起作用,因为我不想在我浏览包含指向 twitter、fbcdn 等图片的链接的页面并尝试下载时触发​​它。

我在这里看到过一些完全相反的问题:仅通过 VPN 发送 10.* 流量。我不知道如何逆转这些答案,因为我了解的很少。

有什么办法吗?我使用的是标准 PPTP vpn 和 L2TP vpn。L2TP 连接不太可靠,所以我更喜欢使用 PPTP。

供参考:当谷歌在这里被严重屏蔽时,我会运行这个,因为它是唯一能可靠地找到编码问题的东西(并且 wordpress/blogspot/etc 上的太多内容被永久屏蔽)。现在我连接然后在完成后断开连接,但在那段时间我被锁定在 svn/文件共享/等之外,因为它们都是 10。.*

答案1

目前我无法找到有关此问题的更多详细信息,如果信息不明确,请见谅,但我记得以前读过这方面的内容,诀窍是在 /etc/ppp 中包含的脚本中设置静态路由。例如,在“up”脚本上,我认为您可以执行以下操作:

#!/bin/sh

# route everything through PPP
/sbin/route -n add -net 0.0.0.0 $IPREMOTE >> /tmp/ppp.log 2>&1
# exclude 10.x.x.x
/sbin/route -n delete -net 10.0.0.0 $IPREMOTE >> /tmp/ppp.log 2>&1

我可能对语法有一点点错误,但希望这是一个开始。:)

相关内容