iptables -j NFQUEUE 未知选项错误

iptables -j NFQUEUE unknown option error

我尝试 运行 netfilter_queue 的样本测试。当我使用 iptables 安装规则时,出现以下错误:

net@net:~$ sudo iptables -A OUTPUT -p icmp -j NFQUEUE -–queue-num 0
iptables v1.4.21: unknown option "-j"
Try `iptables -h' or 'iptables --help' for more information.

多次重试后,仍然失败并出现同样的错误。但是当我尝试以下命令时,奇怪的事情发生了:

net@net:~$ sudo iptables -A OUTPUT -p icmp -j NFQUEUE -queue-num 0
iptables v1.4.21: unknown option "-j"
Try `iptables -h' or 'iptables --help' for more information.

net@net:~$ sudo iptables -A OUTPUT -p icmp -j NFQUEUE --queue-num 0

net@net:~$ sudo iptables -L

Chain INPUT (policy ACCEPT)

target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

NFQUEUE    icmp --  anywhere             anywhere             NFQUEUE num 0

也就是说,在执行sudo iptables -A OUTPUT -p icmp -j NFQUEUE --queue-num 0之前,如果我运行sudo iptables -A OUTPUT -p icmp -j NFQUEUE -queue-num 0,那么命令就会成功。

我不知道为什么会这样,有谁能弄明白吗?谢谢。

不,这与命令顺序无关,如果你仔细看,你这里没有使用ascii破折号,-–queue-num 0,第二个破折号,可能是你从a中复制的全角破折号网页。 根据 NJQUEUE 的文档,第二个命令失败只是因为 -queue-num 0 是错误的。 第三个命令是对的,所以才成功,跟前面的失败没有关系。