在Ubuntu上绕过HTTP / HTTPSstream量的VPN?

我有一台Ubuntu 14.04机器,所有外出stream量都是通过VPN,我需要确保HTTP和HTTPSstream量不通过VPN。
我已经看过静态路由,但它似乎只处理层3。
我应该如何处理这个设置? 谢谢。

为了将数据包路由到特定端口通过不同的默认网关,您需要使用iptables标记这些数据包,然后通过不同的路由表进行路由。

所以,首先创build一个新的路由表与默认网关你的本地网关(不是你的VPN网关)

ip route add table 4 default via 192.168.0.1 

然后根据目的端口标记你需要的数据包。

 iptables -t mangle -A PREROUTING -p tcp --dport 80 -j MARK --set-mark 4 iptables -t mangle -A PREROUTING -p tcp --dport 443 -j MARK --set-mark 4 

最后通过新创build的路由表路由这些标记的数据包。

 ip rule add fwmark 4 table 4 

我没有'testing上面的命令,所以他们可能需要一点点调整。

你可以做的一个方法是使用ip ruleiptables 。 一个例子是标记你有兴趣路由的stream量

 iptables -I OUTPUT -m tcp -p tcp -m multiport --dports 80,443 -j MARK --set-mark 0x0001 

然后你创build一个新的路由表:

 echo 101 r_http >> /etc/iproute2/rt_tables ip route add default via 10.0.0.1 dev eth0 table r_http ip route flush cache 

现在,您已经标记了HTTP和HTTPSstream量,您可以创build一个规则来应用新的路由表

 ip rule fwmark 0x0001 table 101 

这应该工作。 作为一个读者的练习是如何使其永久性,以及如何创build默认路由:-)

您可以尝试configuration您的浏览器使用代理。
– 你可以在DNS中指定代理,但我不熟悉这种技术。 ( 在IE中使用HTTP代理(或不使用HTTP代理时如何工作 ) – 也可以使用组策略( http://social.technet.microsoft.com/wiki/contents/articles/5156.how-to -force-proxy-settings-via-group-policy.aspx ),如果浏览器尊重Internet Explorer中的设置,则可以轻松地将其部署到整个networking中。

你需要一个HTTP代理服务器才能工作( https://stackoverflow.com/questions/1994846/open-source-http-or-https-proxy

这将保持Web浏览器stream量离开VPN,但一切都应该没问题。 设置您的代理服务器,使得没有任何stream量通过VPN路由。