VPN クライアントへのポート転送

VPN クライアントへのポート転送

解決できないような問題に直面しました。 VPSにVPNサーバーがあります。マイクライアントコンピュータ(ホームLAN)を接続できます。正常に動作します。クライアントPCからVPS IPアドレスを取得します。

しかし、特定のポートを使用してVPNを介してクライアントPCに接続できるようにしたいです。 MineCraftサーバーがあり、VPN経由でMCサーバーに接続できるようにしたいです。

IP転送を有効にしました。

sysctl -w net.ipv4.ip_forward=1

特定のポートを転送してみてください。

iptables -t nat -A PREROUTING -d 50.x.x.x -p tcp --dport 25565 -j DNAT --to-dest 10.98.0.2:25565

50.xxxは私のVPNパブリックIPアドレスです。 10.98.0.2はクライアントのローカル(tun0)IPアドレスです。

何らかの理由で動作しません。tcpdump port 25565クライアントに接続しようとすると、VPNサーバーに次のものが表示されます。

20:49:58.345498 IP MyInternetPublicIP.62336 > VPNPublicIP.25565: Flags [S], seq 2320085851, win 8192, options [mss 1460,nop,wscale 2,nop,nop,sackOK], length 0
20:50:01.344059 IP MyInternetPublicIP.62336 > VPNPublicIP.25565: Flags [S], seq 2320085851, win 8192, options [mss 1460,nop,wscale 2,nop,nop,sackOK], length 0
20:50:07.342439 IP MyInternetPublicIP.62336 > VPNPublicIP.25565: Flags [S], seq 2320085851, win 8192, options [mss 1460,nop,nop,sackOK], length 0

クライアント側には何も表示されません。私は何かを見逃していると確信しています。ただ何なのかわかりません。

ベストアンサー1

次のように、フィルタテーブル(チェーンまたはそこから呼び出されるチェーン)でFORWARD転送を許可する必要があります。

iptables -I FORWARD 1 -d 10.98.0.2 -p tcp --dport 25565 -j ACCEPT

クライアントにVPNを介して応答パケットを送信する特別な設定がない場合は、SNATも設定する必要があります。

iptables -t nat -A POSTROUTING -m conntrack --ctstate DNAT -d 10.98.0.2 -p tcp --dport 25565 -j SNAT --to-source 10.98.0.1

10.98.0.1 が VPS VPN アドレスであると仮定します。

おすすめ記事