ネットワークのルーターとして要求しているubuntuサーバー(14.04.1)があります。インターネットに接続するインターフェースeth0と、10.0.0.0ネットワークに接続するための2番目のインターフェースeth1があります。
Eth0に向けられたTCPトラフィック(この例では、IPが118.94.79.113であるとします)を、ポート27016の10.0.0.1のアドレスを持つeth1に転送しようとしています。
次のコマンドを順番に試しました。
Sudo echo "1" > /proc/sys/net/ipv4/ip_forward
Sudo sysctl net.ipv4.ip_forward=1
Sudo iptables -t nat -A PREROUTING -p tcp --dport 27016 -j DNAT --to-destination 10.0.0.104:27016
Sudo iptables -t nat -A POSTROUTING -j MASQUERADE
しかし、これはまったく機能しないようです。118.94.79.113:27016に接続して、10.0.0.104:27016で実行されているアプリケーションにアクセスできません。それは2つのインターフェースにまたがっていることと関係がありますか?
-i eth0
をPREROUTING
エントリに、-o eth0
をPOSTROUTING
エントリに追加して、Sudo iptables -A FORWARD -i eth1 -j ACCEPT
を実行してみてください