openvpn 连接不转发所有流量

openvpn 连接不转发所有流量

我正在尝试将客户端连接到 VPN 网络,而无需 OpenVPN 将我的所有流量转发到网络。重点是我希望能够连接并与所有其他连接的 VPN 机器及其服务进行通信,但我希望所有常规流量(http 等)都通过我的默认路由/网络离开和进入,就像未连接到 VPN 时通常所做的那样。

如果有帮助的话,以下是我的配置和路由(所有与 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-nopull 配置选项,虽然我能够连接到 vpn 并获取 ip 地址,但其他 vpn 用户无法访问我的服务(例如 ssh)。如果我删除 route-nopull 选项,他们可以访问我的 ssh 服务,但现在所有盒子流量都通过 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

总的来说,我正在寻找一种连接到 vpn 网络的方法,并允许其他 vpn 用户访问我的服务,而无需将我的所有常规流量重定向到 vpn 网络。

希望我所尝试实现的目标是有意义的。

感谢您的时间。

答案1

在客户端您可以使用--route-up脚本:

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

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

相关内容