尝试在 Centos7 中使用firewall-cmd --reload,为什么一直显示 iptables 错误?

尝试在 Centos7 中使用firewall-cmd --reload,为什么一直显示 iptables 错误?

在此处输入图片描述

[root@localhost ~]# firewall-cmd --reload
Error: COMMAND_FAILED: Direct: '/usr/sbin/iptables -w10 -t filter -I INPUT_direct 3 -p icmp -m icmp --icmp-type 8 -s X.X.X.X -j ACCEPT' failed: iptables v1.4.21: host/network `X.X.X.X' not found
Try `iptables -h' or 'iptables --help' for more information.

我正在使用 Centos7,我正在尝试重新加载防火墙,但它一直显示有关iptables

我现在没有使用 iptables,只是使用firewalld。我不明白为什么会发生这种情况。

答案1

您在配置中添加了所谓的直接规则firewalld。此类规则直接传递给 iptables,而防火墙根本不会进行语法检查。您(或可能是其他人)添加的规则引用了名为“XXXX”的主机,但该主机并不存在。

这可能是运行教程中的命令时出现的剪切和粘贴错误。

您必须删除该直接规则。firewall-cmd手册页中对此进行了描述。查找--direct

答案2

[解决了]

错误:'/usr/sbin/iptables -w10 -t filter -I INPUT_direct 3 -p icmp -m icmp --icmp-type 8 -s XXXX -j ACCEPT' 失败:未找到 iptabl...X'

尝试“iptables -h”或“iptables --help”获取更多信息。

编辑 direct.xml 文件,其位置如下

/etc/firewalld/direct.xml

删除最后一行

-p icmp -m icmp --icmp 类型 8 -s XXXX -j 接受

在此处输入图片描述

相关内容