解決策 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 の代わりに
ちょっと古い質問ですが、それが検索結果の最初の質問です。