
我在 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 通 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
請幫助我理解為什麼會發生這種情況以及如何解決這個問題。對不起,我的英文不好。謝謝。