iptables -j NFQUEUE未知选项错误

时间:2016-04-17 04:30:33

标签: linux iptables netfilter

我尝试运行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,那么该命令将成功。

我不知道为什么会发生这种情况,有人能想出来吗?谢谢。

1 个答案:

答案 0 :(得分:1)

不,它与命令顺序无关,如果你仔细看,你没有在这里使用ascii dash,-–queue-num 0,第二个破折号,也许它是你从网页复制的全宽破折号。 根据NJQUEUE的文档,第二个命令失败只是因为-queue-num 0错误。 第三个命令是正确的,这就是它成功的原因,它与以前的失败无关。