Ubuntu 中的連接埠轉發,從公用 IP 到客戶端

Ubuntu 中的連接埠轉發,從公用 IP 到客戶端

在安裝了 Ubuntu 伺服器 20.04 和 OpenVPN 的 VPS 上,我需要將所有流量從 vps 公用 IP 的特定連接埠轉送到 VPN 用戶端的相同連接埠。

VPS IP:

vps public ip: 1.1.1.1
vps vpn ip: 10.8.0.1

客戶端IP:

vpn client ip: 10.8.0.2

連接埠 587 的連接埠轉送:

1.1.1.1:587 >> 10.8.0.2:587

我嘗試在 VPS (1.1.1.1) 上執行命令:

sudo iptables -t nat -A PREROUTING -p tcp --dport 587 -j DNAT --to-destination 10.8.0.2:587
sudo iptables -t nat -A POSTROUTING -p tcp -d 10.8.0.2 --dport 587 -j SNAT --to-source 1.1.1.1

但封包不會轉送到 ip 10.8.0.2。

知道如何設定 iptables 來進行正確的連接埠轉送嗎?

答案1

我發現這個解決方案按預期工作:

sudo sysctl net.ipv4.ip_forward=1
sudo iptables -t nat -A PREROUTING -p tcp --dport 587 -j DNAT --to-destination 10.8.0.2:587
#exclude "lo" interface, otherwise dns service stop working
sudo iptables -t nat -A POSTROUTING ! -o lo -j MASQUERADE

相關內容