ローカル双方向転送TCPポート

ローカル双方向転送TCPポート

TCPポートを双方向にローカルに転送する方法を知りたいです。つまり、ポート25からローカルシステムを離れるすべてのパケット(もちろん、ポートは実際には動的に割り当てられています)をソースポート500(たとえば500の一部)に書き換える必要があります。私が何をしているのかわかりません)そして、ポート500からのすべての着信ポートはポート25に転送する必要があります(これを行う方法を知っています)。
したがって、ポート25でリッスンするデーモンは満足し、すべてのターゲットはデーモンがポート500でリッスンしていると思います。間違っていたら訂正してください。

答え1

ポート25をポート500にリダイレクトした後、ポート500をポート25にリダイレクトする必要はありません。 NAT は接続と連携し、リターンパケットを処理します。

たとえば、ポート23をSSHがリッスンするポート22にリダイレクトします。

iptables -t nat -A PREROUTING -p tcp --dport 23 -j REDIRECT --to-port 22

これで、ポート23を介してデバイスを接続できるようになりました

ssh foo@mysshserver -p 23

あなたの場合は、このルールを追加する必要があります

iptables -t nat -A PREROUTING -p tcp --dport 500 -j REDIRECT --to-port 25

これで、すべてのクライアントがポート500を介してポート25でリッスンしているデーモンに接続できるようになりました。

関連情報