サーバ内で通信をポートフォワードする。例えば3000ポートで動いているWebサーバを、外からは80ポートで通信を受け取りたいという場合。
iptablesを使うと次のようになる。
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3000
sudo iptables -A INPUT -i eth0 -j ACCEPT
sudo service iptables save
sudo service iptables restart
1行目はポートフォワードの設定で、2行目はeth0への他の通信をすべて許可する設定となっている。
これはiptablesをファイアウォールとしてではなく、完全にポートフォワードするためだけの設定を想定している。
もしiptablesをファイアウォールとしてすでに使っている場合は、2行目のコマンドは実行しないようにする。
※ローカルからの通信はポートフォワードされないので注意する。