iptables 在一条规则中设置多个多端口

标签 iptables

多端口扩展对可指定的端口有限制 (15)。

但是我需要在单个规则中指定更多端口号,因此我尝试在一个规则中使用多个多端口,例如:

iptables -A INPUT -p tcp -m multiport --destination-ports 59100 -m multiport --destination-ports 3000 -m state --state NEW -j REJECT --reject-with tcp-reset

iptables -L INPUT -n的结果是

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
REJECT     tcp  --  0.0.0.0/0            0.0.0.0/0           multiport dports 59100 multiport dports 3000 state NEW reject-with tcp-reset

但事实证明,当我尝试从客户端连接时,这两个端口都没有被拒绝。

版本为v1.4.2-rc1。

是否有解决方法,或者当我需要在一条规则中指定超过 15 个端口时该怎么办。

最佳答案

作为解决此限制的方法,我使用两条规则来涵盖所有情况。

例如,如果我想允许或拒绝这 18 个端口:

465,110,995,587,143,11025,20,21,22,26,80,443,3000,10000,7080,8080,3000,5666

我使用以下规则:

iptables -A INPUT -p tcp -i eth0 -m multiport --dports 465,110,995,587,143,11025,20,21,22,26,80,443 -j ACCEPT

iptables -A INPUT -p tcp -i eth0 -m multiport --dports 3000,10000,7080,8080,3000,5666 -j ACCEPT

上述规则也适用于您的场景。如果您在第一条和第二条规则上都达到 15 个端口限制,则可以创建另一条规则。

关于iptables 在一条规则中设置多个多端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6384817/

相关文章:

iptables - 如何与 QEMU 镜像共享主机的本地主机?

php - 从 php exec() 运行 bash 脚本

docker - 限制来自Docker容器的HTTP流量

linux - 在 Linux 网桥上过滤掉 VLAN 标记的数据包

基于Linux端口的路由

linux - 阻止 Facebook 访问的 IPtables 异常

docker - 无法连接在不同端口上运行的 Elasticsearch docker 容器

linux - -d 0/0 是什么意思?

python /iptables : Original Destination IP

c++ - 在 netfilter 模块中重新注入(inject)修改后的数据包