iptables-restore 失败:“-t 选项……无法使用”

iptables-restore 失败:“-t 选项……无法使用”

我有一组非常简单的 iptables 规则:

*filter

-A INPUT -i lo -j ACCEPT
-A INPUT -d 127.0.0.0/8 -j REJECT

-A INPUT -mstate --state ESTABLISHED,RELATED -j ACCEPT

-A OUTPUT -j ACCEPT

-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT

-A INPUT -ptcp -mstate --state NEW --dport 22 -j ACCEPT

-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7

-A INPUT -j DROP
-A FORWARD -j DROP

COMMIT

...但我收到了一个令人困惑的错误:

iptables-restore v1.8.2 (nf_tables): The -t option (seen in line 8) cannot be used in iptables-restore.

Error occurred at line: 8

可以看出,第 8 行没有调用 -t 选项——或者其他任何行。我哪里做错了?

答案1

你有:

-mstate
-ptcp

显然,中的选项解析器iptables-restore与用于命令行参数的 getopt() 解析器并不完全相同,并且不知道带参数的选项和不带参数的选项之间的区别。因此它将单词解释为-m -s -t -a -t -e,就好像它完全由捆绑的无参数选项组成。

相关内容