这似乎是一个非常简单的问题。但我在网上没有看到太多关于它的信息。命令来自RHEL 文档本身,所以我期望它能工作……但它却失败了。有什么见解吗?
命令:
/sbin/iptables -A INPUT -m state --state NEW -m tcp -p udp --dport 25150 -j ACCEPT
输出:
iptables: Invalid argument. Run `dmesg' for more information.
dmesg 日志:
[ 1719.334534] x_tables: ip_tables: tcp match: only valid for protocol 6
答案1
恭喜,您在 RHEL 文档中发现了一个错误。
此处显示的 iptables 规则使用tcp
匹配器,但随后尝试指定udp
协议。这不起作用;tcp
匹配器只能与协议 6 一起使用,而协议 6 恰好是tcp
。因此您收到错误。
要纠正规则,您必须首先找出哪个错误,匹配器还是协议。不幸的是,这个错误已经在整个互联网上传播,因此通过互联网搜索很难找出它,甚至 Cobbler 文档也没有明确提及它。
您可以通过检查 的输出轻松解决此问题ss -nl
,您会发现 cobbler 监听的是 TCP 端口 25150,而不是 UDP。因此,您将其替换udp
为tcp
,然后将文档错误报告给 Red Hat。