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

関連情報