tun0 介面上的 OpenVPN 公用 IP,而非 VPN 網路

tun0 介面上的 OpenVPN 公用 IP,而非 VPN 網路

我無法使用 VPN 伺服器的公用 IP 存取 openvpn 用戶端後面的本機網路中的裝置。

一點資訊:

OpenVPN 伺服器(openVZ、Debian7)

Opevpn 用戶端(raspberry pi 2 raspbian jessie)。

當我使用其他 VPN 用戶端存取其他客戶端後面的本機網路(客戶端 1 VPN <> 伺服器 VPN <> 客戶端 2 VPN)時,Everythink 運作正常。從客戶端 2,我可以存取客戶端 1 VPN 後面的本機網路。在伺服器cfg中我設定了iroute等。

問題是當我嘗試使用 VPN 伺服器的公共 IP 存取客戶端 1 後面的本機網路中的 IP 攝影機時。

在客戶端設定:

iptables -I FORWARD -i tun0 -p tcp -d 192.168.2.2 --dport 8080 -j ACCEPT
iptables -t nat -I PREROUTING -i tun0 -p tcp --dport 8080 -j DNAT --to-destination 192.168.2.2:8080

在伺服器上設定:

iptables -I FORWARD -i venet0 -p tcp -d 10.8.0.6 --dport 8080 -j ACCEPT
iptables -t nat -I PREROUTING -i venet0 -p tcp --dport 8080 -j DNAT --to-destination 10.8.0.6:8080

10.8.0.6是VPN中的樹莓派2 IP位址

我用 tcpdump 來看看為什麼它不起作用。

原因是來自 VPN 伺服器的封包的來源位址具有公用 IP。當 vpn 用戶端收到此具有公用 IP 來源位址的封包時,自動使用 WAN 介面而不是 tun0 進行回應。

有人可以幫我嗎?我應該在伺服器上的 iptables 中設定什麼?

PS:在伺服器上的防火牆中,我只有一條 iptables 規則:

-A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source PUBLICIP

相關內容