%20%E3%81%A7%20IPTables%20%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%83%9D%E3%83%BC%E3%83%88%E3%82%92%E3%83%AA%E3%83%80%E3%82%A4%E3%83%AC%E3%82%AF%E3%83%88%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%E3%81%AF%3F.png)
ポート 80 を 8080 に転送したいので、次のように編集してみました/etc/syscongfig/iptables
:
-A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
しかし、次のことがわかりました:
# service iptables restart
iptables: Flushing firewall rules: [ OK ]
iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Unloading modules: [ OK ]
iptables: Applying firewall rules: iptables-restore v1.4.7:
Line 8 seems to have a -t table option.
何が問題なのでしょうか? どのように対処すべきでしょうか?
答え1
ファイルは/etc/syscongfig/iptables
iptables-restore に対して正しい構造になっていますか?
このルールをファイアウォールに手動で追加してみてください
iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
コマンド/etc/sysconfig/iptables
の出力と比較するiptables-save
答え2
これはあなたのiptables
ルール:
-A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
しかし、私は代わりに次のようになるべきだと考えています:
-A PREROUTING -t nat -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
が追加されていることに注意してください-m tcp
。 は-p tcp
ルールのプロトコルまたはチェックするパケットのプロトコルと一致しますが、 は-m tcp
IPTables に TCP パケットと一致するように明示的に指示します。 混乱しているように見えますが、私が知る限り、ポート固有のルールが呼び出される場合は と-p tcp
ペアにする必要があります-m tcp
。
誰かがこの要件の背後にある理論的根拠や論理を詳しく説明できる場合は、コメント欄で意見を述べてください。