我有一台服务器,安装了 OpenVPN 客户端,并且通过隧道连接到互联网,一切正常。我还可以通过 LAN 接口 (192.168.1.x) 访问服务器。但是,当我尝试从 LAN 中的另一个 IP 范围 10.8.0.x 访问同一服务器时,它不起作用。当我关闭 VPNClient 时,它再次工作正常。
如果服务器上没有运行 VPN 客户端,10.8.0.x 范围内的客户端就可以访问服务器
root@server:~# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use
Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0
enp0s31f6
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0
enp0s31f6
192.168.0.0 0.0.0.0 255.255.0.0 U 100 0 0
enp0s31f6
当 VPN 客户端在服务器上运行时,10.8.0.x 范围内的客户端无法访问服务器
root@server:~# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.23.10.5 128.0.0.0 UG 0 0 0 tun0
0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 enp0s31f6
10.23.10.1 10.23.10.5 255.255.255.255 UGH 0 0 0 tun0
10.23.10.5 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
46.166.188.211 192.168.1.1 255.255.255.255 UGH 0 0 0 enp0s31f6
128.0.0.0 10.23.10.5 128.0.0.0 UG 0 0 0 tun0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 enp0s31f6
192.168.0.0 0.0.0.0 255.255.0.0 U 100 0 0 enp0s31f6
我还尝试添加一条提交路由,以明确告诉网络通过 enp0s31f6 接口路由 10.8.0.0 流量。
root@server:~# route add -net 10.8.0.0 netmask 255.255.0.0 dev enp0s31f6
然而没有运气。
有人知道这是为什么吗?
答案1
您不必为与 VPNtun
接口关联的子网手动添加任何路由。客户应该为您进行设置。此外,tun
由于 openvpn 路由数据包的方式,在以太网接口上为该接口添加路由将不起作用。
看来你应该client-to-client
在你的服务器配置中启用并确保你有一个iptables
规则:
iptables -A INPUT -i tun0 -s 10.8.0.0/24 -d 10.8.0.0/24 -j ACCEPT