openvpn连接不转发所有stream量

我试图连接客户端到一个VPNnetworking没有openvpn转发所有的stream量到networking。 问题的关键是我想能够连接和沟通所有其他连接的VPN机器和他们的服务,但我希望我所有的常规stream量(HTTP等)离开,并通过我的默认路由/networking进入,就像它通常会没有连接到VPN。

这里是我的configuration和路线,如果他们帮助任何(所有与tun0相关的路由都被openvpn添加):

user@machine:~# ip route 0.0.0.0/1 via 10.8.0.9 dev tun0 default via 192.168.0.1 dev wlan0 proto static 10.8.0.1 via 10.8.0.9 dev tun0 10.8.0.9 dev tun0 proto kernel scope link src 10.8.0.10 xx.xx.xx.xx via 192.168.0.1 dev wlan0 128.0.0.0/1 via 10.8.0.9 dev tun0 192.168.0.0/24 dev wlan0 proto kernel scope link src 192.168.0.187 192.168.80.0/24 dev wlan0-1 proto kernel scope link src 192.168.80.1 

我尝试使用route-nopullconfiguration选项,虽然我能够连接到VPN并获得IP地址,但其他VPN用户无法访问我的服务(如ssh)。 如果我删除了route-nopull选项,他们可以访问我的ssh服务,但是现在所有的box通信都被redirect到了vpn。

 client dev tun proto udp remote xx.xx.xx.xx YYYYY resolv-retry infinite nobind persist-key persist-tun comp-lzo verb 3 ca ca.crt cert vpn.crt 

总的来说,我正在寻找一种方法来连接到VPNnetworking,并允许其他VPN用户访问我的服务,而无需将所有常规stream量redirect到VPNnetworking。

希望我想要达到的目标是有道理的。

感谢您的时间。

在客户端上,你可以使用--route-up脚本:

 ip route del 0.0.0.0/1 ip route del 128.0.0.0/1 exit 0 

也使用--route-noexec选项,你可以编写一个脚本来有条件地添加路由 – 即。 除了0.0.0.0/1128.0.0.0/1之外 。 路由可以从环境variables中读取。 这比盲目删除更困难,因为它需要脚本中的一些处理逻辑。