iptables 似乎无法--dport
识别-p all
。
iptables -A INPUT -p all --dport www -j ACCEPT
产量:
iptables v1.4.4: unknown option `--dport'
Try `iptables -h' or 'iptables --help' for more information.
--destination-port doesn't work either: iptables v1.4.4: unknown option `--destination-port'
-p tcp
为和添加两个单独的规则-p udp
可以正常工作,那么为什么对不起作用呢-p all
?
如果有关系,这是在 Ubuntu 10.04 LTS 服务器上,带有 iptables 包版本 1.4.4-2ubuntu2
答案1
--dport 不是通用 iptables 规则的标志。它是其中一个扩展数据包匹配模块-p protocol
。这些在您使用或时加载-m
。除非您使用-m <protocol>
或-p <protocol>
指定具体协议你不能使用--dport
您将在iptables(8)或者iptables-扩展(8)手册页:
tcp
These extensions can be used if `--protocol tcp' is specified. It provides the
following options:
...
[!] --destination-port,--dport port[:port]
Destination port or port range specification. The flag --dport is a
convenient alias for this option.
...
并非所有协议都有 --dport 标志,因为并非所有协议都支持端口的概念
答案2
“all” 不仅包含 TCP 和 UDP;它还涵盖 ICMP 等没有端口号概念的协议,因此不能采用 --dport 参数。