错误参数‘−−hashlimit−above’

错误参数‘−−hashlimit−above’

我正在尝试限制每秒/每个 IP 的数据包数,但是 iptables 对此抱怨道:错误参数‘−−hashlimit−above’

我的规则如下:

iptables -I TEST -p tcp -m tcp -m hashlimit −−hashlimit−above 512kb/s −−hashlimit-burst 1mb --hashlimit-mode srcip --hashlimit-name test -j DROP

上面的例子直接取自 iptables 手册页。主机使用的是 iptables v1.8.7。

我研究了好多次,都没有找到关于这个问题的参考资料,这可能是什么原因呢?

请指教,谢谢。

答案1

我研究了好多次,都没有找到关于这个问题的参考资料,这可能是什么原因呢?

您的命令行包含一些无效字符。从您的问题中复制并粘贴命令行并将其写入文件。现在使用 显示该文件cat -A,您应该看到:

iptables -I TEST -p tcp -m tcp -m hashlimit M-bM-^HM-^RM-bM-^HM-^RhashlimitM-bM-^HM-^Rabove 512kb/s M-bM-^HM-^RM-bM-^HM-^Rhashlimit-burst 1mb --hashlimit-mode srcip --hashlimit-name test -j DROP$

这表明您复制的文本包含一些用于影响手册页中文本格式的控制字符……但它们导致命令无效,因为您实际上并没有输入--hashlimit-above。如果您输入命令而不是复制粘贴它,那么您就有:

iptables -I TEST -p tcp -m tcp -m hashlimit --hashlimit-above 512kb/s --hashlimit-burst 1mb --hashlimit-mode srcip --hashlimit-name test -j DROP

它按预期工作。

相关内容