我正在尝试将客户端连接到 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
我非常怀疑您的服务器push "redirect-gateway
在其配置中向您的客户端路由表添加了默认路由(0.0.0.0)。
删除该默认路由并添加一条仅用于 VPN 流量的适当路由。我更喜欢风吹头,但它应该是这样的,route add 10.8.0.0/24 10.8.0.1
VPN 客户端的流量会进入隧道,而其他所有流量都通过路由器进入互联网。
注意:您的 VPN 主机必须配置为允许客户端到客户端的通信,默认情况下是关闭的。