我遇到过建议以下内容的文章:
iptables -A INPUT -p tcp 1000:2000 -j ACCEPT
其他人则表示上述方法不起作用,并且 iptables 仅支持带有该--multiport
选项的多个端口声明。
有没有用 iptables 打开多个端口的正确方法?
我遇到过建议以下内容的文章:
iptables -A INPUT -p tcp 1000:2000 -j ACCEPT
其他人则表示上述方法不起作用,并且 iptables 仅支持带有该--multiport
选项的多个端口声明。
有没有用 iptables 打开多个端口的正确方法?
这是正确的方法:
iptables -A INPUT -p tcp --match multiport --dports 1024:3000 -j ACCEPT
举个例子。来源在这里。
你被告知的是正确的,尽管你写错了(你已经忘记了
--dport
)。iptables -A INPUT -p tcp --dport 1000:2000
将打开到 TCP 端口 1000 到 2000 的入站流量。-m multiport --dports
仅当您要打开的范围不连续时才需要,例如,它将仅-m multiport --dports 80,443
打开 HTTP 和 HTTPS - 而不是介于两者之间的。请注意,规则的顺序很重要,并且(正如 Iain 在其他地方的评论中所暗示的那样)您的工作是确保您添加的任何规则都在一个有效的地方。
TL; 博士但是...
不带多端口模块的纯端口范围:
iptables -A INPUT -p tcp --dport 1000:2000 -j ACCEPT
等效多端口示例:
iptables -A INPUT -p tcp -m multiport --dports 1000:2000 -j ACCEPT
...以及关于多范围多端口的变化(是的,这也是可能的):
iptables -A INPUT -p tcp -m multiport --dports 1000,1001,1002:1500,1501:2000 -j ACCEPT
...以及带有否定的等效多端口多范围示例:
iptables -A INPUT -p tcp -m multiport ! --dports 0:999,2001:65535 -j ACCEPT
有蓬。
还有另一种方法可以直接在 Iptables 文件中添加条目。地点
/etc/sysconfig/iptables
之后重启iptable服务
根据 man iptables-extensions ,您只需使用 --dport 开关即可定义端口范围。
tcp
如果指定了 `--protocol tcp',则可以使用这些扩展。它提供以下选项:
[!] --destination-port,--dport port[:port]
目标端口或端口范围规范。标志 --dport 是此选项的方便别名。
所以这也指定了一个端口范围:
iptables -A INPUT -p tcp --dport 1000:2000 -j ACCEPT