iptables原生命令支持--dport起始端口:结束端口语法放行连续端口(如80:443),无需multiport模块;但多端口不连续时须用-m multiport --dports。

Linux 中用 iptables 放行连续端口范围,不需要额外模块,直接用 --dport 配合冒号语法即可,简单高效。
直接用 --dport 指定连续端口段
iptables 原生命令支持端口范围写法,格式为 起始端口:结束端口(英文冒号,中间不能有空格)。例如:
-
iptables -A INPUT -p tcp --dport 80:443 -j ACCEPT→ 放行 80 到 443 的所有 TCP 端口(含 80 和 443) -
iptables -I INPUT -p udp --dport 53:67 -j ACCEPT→ 插入规则,允许 UDP 的 53~67 端口 -
iptables -A INPUT -p tcp --dport :1024 -j ACCEPT→ 放行 1~1024 的所有 TCP 目标端口(省略起始即从 1 开始) -
iptables -A INPUT -p tcp --dport 30000: -j ACCEPT→ 放行 30000 及以上所有 TCP 端口
注意端口范围的边界和协议匹配
连续端口规则必须明确指定协议(-p tcp 或 -p udp),且只作用于目标端口(--dport)。它不自动覆盖源端口或其它协议。常见误区:
Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
- 写成
--dport 80-443(短横线)会报错,必须用英文冒号 -
--dport只匹配进入本机的数据包的目标端口,出站响应由连接状态自动放行(建议搭配-m state --state ESTABLISHED,RELATED -j ACCEPT) - 若同时需放行多个不连续端口(如 22、80、443),则必须用 -m multiport --dports 模块
实际部署建议
生产环境推荐先设默认拒绝策略,再按需放行。例如只开放常用服务端口:
-
iptables -P INPUT DROP(默认拒绝所有入向流量) -
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT(保障已有连接正常通信) -
iptables -A INPUT -p tcp --dport 22 -j ACCEPT(SSH) -
iptables -A INPUT -p tcp --dport 80:443 -j ACCEPT(HTTP/HTTPS) -
iptables -A INPUT -p udp --dport 53 -j ACCEPT(DNS 查询)
最后别忘了保存规则,不同系统方式略有差异:CentOS 6 用 service iptables save,Ubuntu/Debian 推荐 iptables-save > /etc/iptables/rules.v4。

















