我在 Debian 网关服务器上设置了 OpenVPN。 OpenVPN服务器网关路由器局域网是172.16.20.0/24。网关 IP 为 172.16.20.254。在 openvpn.conf 文件下面:
port 1194 proto udp dev tun ca ca.crt cert ccrr.crt key ccrr.key dh dh1024.pem server 172.16.21.0 255.255.255.0 ifconfig-pool-persist ipp.txt keepalive 10 120 comp-lzo user nobody group users persist-key persist-tun status openvpn-status.log verb 4 client-to-client route 192.168.55.0 255.255.255.0 push "route 172.16.20.0 255.255.255.0" push "route 172.16.200.0 255.255.255.0"
客户端LAN网络为192.168.55.0/24,网关IP为192.168.55.254。局域网VPN是172.16.21.0/24。成功连接VPN后,VPN服务器有以下IP 172.16.21.1和172.16.21.22客户端。客户端 ping 服务器以及所有连接到他的 LAN,包括 IP 为 172.16.200.254 的 ADSL 路由器。 OpenVPN ping 服务器成功 ping IP 172.16.21.22,但无法 ping 通客户端 LAN 的 IP 地址(即 192.168.55.3)或 LAN 客户端的 ADSL 网关(即 192.168.55.254)。
这些是服务器端路由:
root@ccrr:/# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 172.16.200.254 0.0.0.0 UG 0 0 0 eth0 172.16.20.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 172.16.21.0 172.16.21.2 255.255.255.0 UG 0 0 0 tun0 172.16.21.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0 172.16.200.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2 192.168.55.0 172.16.21.2 255.255.255.0 UG 0 0 0 tun0
我使用以下规则插入防火墙配置:
iptables -A INPUT -i tun+ -j ACCEPT iptables -A OUTPUT -o tun+ -j ACCEPT
我按照下面的指南向服务器指示要遵循哪条路线来查找 LAN 客户端。 使用路由 VPN (dev tun) 时包括客户端的多台计算机。
当我尝试作为客户端安装另一个 openvpn Debian 网关路由器时,我遇到了同样的问题。一切正常:客户端连接到服务器,并且可以 ping 网关服务器和 openvpn 两个连接到其 LAN 的设备,但反之则不然。也就是说,如果 VPN 网关服务器或连接到其 LAN 的设备尝试 ping 客户端没有得到任何答案。
我尝试查看从服务器向客户端发送 ping 命令时 tcpdump 到 ICMP 数据包会发生什么情况,结果如下:
18:12:01.335462 ip: 172.16.21.1 > 192.168.55.3: ICMP echo request, id 5855, seq 1, length 64 18:12:02.334983 ip: 172.16.21.1 > 192.168.55.3: ICMP echo request, id 5855, seq 2, length 64
请帮助我理解为什么会发生这种情况以及如何解决这个问题。对不起,我的英语不好。谢谢。