
我正在使用 OpenVPN 連接兩台 Debian 9 x64 機器:
Server
(ens3 public-ip x.x.x.222)
tun0 10.8.0.1
-> Services:
* Samba - udp137, udp138, tcp139, tcp445
* Webserver - tcp80
Client
ens33 192.168.162.157
tun0 10.8.0.6
所以我想向前Samba 和網路伺服器到用戶端 LAN-IP192.168.162.157192.168.162.x 中的其他 LAN 用戶端可以存取此服務。
我嘗試使用我在互聯網上找到的所有資訊在客戶端上使用 iptables 定義 NAT 規則,但沒有成功:
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A PREROUTING -i ens33 -p udp --dport 137 -j DNAT --to 10.8.0.1:137
iptables -t nat -A PREROUTING -i ens33 -p udp --dport 138 -j DNAT --to 10.8.0.1:138
iptables -t nat -A PREROUTING -i ens33 -p tcp --dport 139 -j DNAT --to 10.8.0.1:139
iptables -t nat -A PREROUTING -i ens33 -p tcp --dport 445 -j DNAT --to 10.8.0.1:445
iptables -A FORWARD -i ens33 -p udp --dport 137 -d 10.8.0.1 -j ACCEPT
iptables -A FORWARD -i ens33 -p udp --dport 138 -d 10.8.0.1 -j ACCEPT
iptables -A FORWARD -i ens33 -p tcp --dport 139 -d 10.8.0.1 -j ACCEPT
iptables -A FORWARD -i ens33 -p tcp --dport 445 -d 10.8.0.1 -j ACCEPT
iptables -t nat -A PREROUTING -i ens33 -p tcp --dport 80 -j DNAT --to 10.8.0.1:80
iptables -A FORWARD -i ens33 -p udp --dport 80 -d 10.8.0.1 -j ACCEPT
如果我直接在用戶端上連線 10.8.0.1,但無法透過 192.168.162.157 連線到 LAN,則 Web 伺服器和 Samba 都可以存取。
有人可以幫我處理 iptables 嗎? :)
答案1
你的問題可能是回來的路。
伺服器是否知道透過 VPN 用戶端將封包路由到您的客戶端子網路?如果沒有,您還需要 SNAT/偽裝(或伺服器上符合的路由條目)。
然後,對於您的伺服器來說,封包將從您的 VPN 用戶端發出,並會找到返回的方式。