内部でポート80をポート8080にポート転送するにはどうすればよいですか?
私の目標は、ポート8080でWebアプリサーバー(Glassfish)を実行することですが、外部の世界が通常ポート80でアクセスできるようにします。これは、Glassfishをrootとして実行する必要がないように行われています。
/ etc/sysconfig/iptablesに次のルールを追加してみました。
-A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
ただし、これにより次のエラーが発生します。
Applying iptables firewall rules: iptables-restore v1.3.5: Line 21 seems to have a -t table option.
In/etc/sysconfig/iptables
のようなテーブルは指定できません。各テーブルには、アスタリスクとテーブル名が設定されています。これがあなたがやろうとしていることの骨組みです:
*nat
:PREROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
-A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination :8080
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT
ファイルを編集する代わりに、iptables
コマンドを使用して手動でルールを設定し、iptables-save > /etc/sysconfig/iptables
またはservice iptables save
を実行することもできます。
あなたは近かった
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination:8080
これは、NATを実行する必要があるため、応答がクライアントに返されるときに、8080ではなくポート80から送信されたように見えます。