我尝试运行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
,那么该命令将成功。
我不知道为什么会发生这种情况,有人能想出来吗?谢谢。
答案 0 :(得分:1)
不,它与命令顺序无关,如果你仔细看,你没有在这里使用ascii dash,-–queue-num 0
,第二个破折号,也许它是你从网页复制的全宽破折号。
根据NJQUEUE的文档,第二个命令失败只是因为-queue-num 0
错误。
第三个命令是正确的,这就是它成功的原因,它与以前的失败无关。