Linuxでポート転送にiptablesを使用する

Linuxでポート転送にiptablesを使用する

ローカルポートをリモートポート(8041)からリモートコンピュータ(10.0.0.42)のポート(8042)に転送したいと思います。私はこれを行うことができます

ssh -L 10.0.0.41:8041:10.0.0.42:8042 user@localhost

どこに10.0.0.41いるべきですかeth0

これで、すべてのユーザースペースと暗号化オーバーヘッドなしでこれを実行したいと思います。

私の推測は

iptables -t nat -A PREROUTING -i eth0 -p tcp -d 10.0.0.41 --dport 8041 -j DNAT --to 10.0.0.42:8042

IP転送を有効にしましたが機能しません。

ベストアンサー1

SNATルールも追加する必要があります。

今、以下があります。

Client ---> NAT box ---> Server
  /|\                       |
   |                       /
    \_____________________/

クライアントはNATについて知らないので、サーバーから直接応答が来ると混乱します。したがって、サーバーはNATボックスをソースとして認識する必要があります。これはSNATルールを追加することによって実行できます。

Client <---> NAT box <---> Server

おすすめ記事