解決策 1:
最初に -p
を与えます -p tcp
のようなオプション または -p udp
.
例:
<ブロック引用>iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j DROP
iptables -A INPUT -p udp --dport 53 --sport 1024:65535 -j ACCEPT
-p all
を試すこともできます しかし、私はそれをやったことがなく、例ではあまりサポートされていません.
解決策 2:
--dport を使用する場合は、プロトコル (-p) が必要です。例:
-p tcp
解決策 3:
@dmourati と @diegows はすでに最初の質問に回答しているので、2 番目の質問に取り組みます。そしておまけ質問。そして、おまけのヒントも差し上げます;)
iptables -P
のみ BUILT-IN チェーンを受け入れます。 filter
で テーブル、それは INPUT
になります 、 OUTPUT
、および FORWARD
ポート転送は INPUT
によって処理されません チェーンなので、INPUT
でポートを開く必要はありません 鎖。 する FORWARD
によって処理される チェーンだけど。そこには気をつけてください。
おまけのヒント: iptables
を学習および/またはトラブルシューティングする場合 、 iptables-save
の出力 iptables -L -v --line-numbers
の出力よりも頭と肩が優れています .試してみてください。きっと驚くことでしょう :)
解決策 4:
別の考えられる解決策は、root として実行するのを忘れていることです。 debian チュートリアルを使用しているときに、これに遭遇しました
$ iptables -t nat -p tcp -I PREROUTING --src 0/0 --dst 127.0.0.1 --dport 80 -j REDIRECT --to-ports 8080
iptables v1.8.2 (nf_tables): unknown option "--dport"
$ sudo iptables -t nat -I PREROUTING --src 0/0 --dst 127.0.0.1 -p tcp --dport 80 -j REDIRECT --to-ports 8080
# OK
解決策 5:
iptables
の場合 nftables
を使用していると報告する 、 iptables-legacy
を使用する必要があります
例えば:
iptables-legacy -A INPUT -p tcp --dport 22 -m state --state NEW -j DROP
を使用
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j DROP
の代わりに
ちょっと古い質問ですが、それが検索結果の最初の質問です。