«

CentOS7 防火墙开放端口范围,一次性开放多个端口

时间:2026-10-6 07:53     作者:emer     分类: 无


前言

有时候需要一次性开放很多端口,或者开放一段端口范围,一个个加太麻烦。CentOS7 的 firewalld 支持开放端口范围,也支持一次性开放多个端口,本文讲一下怎么操作。

查看当前开放的端口

先看看现在防火墙开了哪些端口:

firewall-cmd --list-ports

输出类似:

80/tcp 443/tcp 8080/tcp

开放单个端口

永久开放

firewall-cmd --permanent --add-port=80/tcp

然后重载生效:

firewall-cmd --reload

开放 UDP 端口

把 tcp 改成 udp 就行:

firewall-cmd --permanent --add-port=53/udp
firewall-cmd --reload

一次性开放多个端口

方法一:一条命令加多个

firewall-cmd --permanent --add-port=80/tcp --add-port=443/tcp --add-port=8080/tcp
firewall-cmd --reload

多个 --add-port 用空格分开就行。

方法二:开放端口范围

如果要开放一段连续的端口,比如 8000 到 9000:

firewall-cmd --permanent --add-port=8000-9000/tcp
firewall-cmd --reload

这样 8000 到 9000 之间所有 TCP 端口都开放了。

方法三:同时开放 TCP 和 UDP

firewall-cmd --permanent --add-port=53/tcp --add-port=53/udp
firewall-cmd --reload

移除端口

移除单个端口

firewall-cmd --permanent --remove-port=8080/tcp
firewall-cmd --reload

移除端口范围

firewall-cmd --permanent --remove-port=8000-9000/tcp
firewall-cmd --reload

常见场景

场景1:开放 20 到 80 之间的所有端口

firewall-cmd --permanent --add-port=20-80/tcp
firewall-cmd --reload

场景2:同时开放 HTTP 和 HTTPS 服务

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

场景3:只允许某个 IP 访问某个端口

这个更安全,只允许 192.168.1.100 访问 3306 端口:

firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.1.100' port protocol='tcp' port='3306' accept"
firewall-cmd --reload

常见坑

坑1:加了端口没生效

执行了 add-port 但还是访问不了。

原因: 没加 --permanent,或者没 reload。

解决: 一定要加 --permanent 参数,然后执行 firewall-cmd --reload。

坑2:端口范围写反了

写成了 9000-8000,报错。

原因: 范围必须从小到大写。

正确写法: 8000-9000/tcp
错误写法: 9000-8000/tcp

坑3:防火墙没启动

执行 firewall-cmd 报错。

原因: firewalld 服务没启动。

解决:

systemctl start firewalld
systemctl enable firewalld

坑4:开了端口但还是访问不了

防火墙开了端口,但是外部还是访问不了。

原因: 除了防火墙,还有可能是云服务商的安全组没开。

解决: 去云服务商控制台(阿里云、腾讯云等)的安全组里,把对应的端口也开放了。

总结

操作 命令
开放单个端口 firewall-cmd --permanent --add-port=80/tcp
开放多个端口 firewall-cmd --permanent --add-port=80/tcp --add-port=443/tcp
开放端口范围 firewall-cmd --permanent --add-port=8000-9000/tcp
移除端口 firewall-cmd --permanent --remove-port=8080/tcp
查看已开放端口 firewall-cmd --list-ports
重载生效 firewall-cmd --reload

记住:加完端口一定要 --reload 才生效。

遇到问题加QQ23979811 协助处理

标签: 防火墙 firewalld CentOS7 开放端口 端口范围