firewall-cmd是Linux系统中firewalld防火墙的管理工具,通过它可以快速配置防火墙规则,其中开放端口是最常用的操作之一,适用于需要对外提供服务的场景,比如开放80端口提供web服务,开放3306端口提供数据库访问。

firewall-cmd开放端口的基础操作
首先可以通过firewall-cmd --state命令确认firewalld服务是否正在运行,如果返回running说明服务正常,否则需要先启动服务。
临时开放端口
临时开放的端口在系统重启或者firewalld服务重启后会失效,适合临时测试使用,命令格式如下:
# 开放tcp协议的8080端口,--zone=public表示公共区域,默认也是public firewall-cmd --zone=public --add-port=8080/tcp # 开放udp协议的53端口 firewall-cmd --zone=public --add-port=53/udp
执行后如果返回success说明配置成功,此时可以通过firewall-cmd --zone=public --list-ports命令查看当前已经开放的端口列表。
永久开放端口
如果需要端口在重启后依然生效,需要添加--permanent参数,配置完成后必须执行重载命令才能让规则生效:
# 永久开放tcp协议的3306端口 firewall-cmd --zone=public --add-port=3306/tcp --permanent # 重载防火墙规则,让永久配置生效 firewall-cmd --reload
重载完成后同样可以通过firewall-cmd --zone=public --list-ports查看端口是否在列表中,永久配置的规则重启后不会丢失。
开放端口的验证与撤销
验证端口是否开放成功
除了查看端口列表,还可以通过指定端口查询的方式验证配置是否生效:
# 查询8080端口是否开放,返回yes表示已开放 firewall-cmd --zone=public --query-port=8080/tcp
撤销已开放的端口
如果需要关闭已经开放的端口,可以使用--remove-port参数,同样分为临时和永久两种操作:
# 临时关闭8080端口 firewall-cmd --zone=public --remove-port=8080/tcp # 永久关闭3306端口,需要重载生效 firewall-cmd --zone=public --remove-port=3306/tcp --permanent firewall-cmd --reload
注意事项
- 开放端口前需要确认端口对应的服务已经启动,否则即使防火墙开放了端口,外部依然无法访问服务。
- 如果系统同时使用了其他防火墙工具,比如iptables,需要先关闭对应的服务,避免规则冲突。
- 不要随意开放不必要的端口,尤其是高风险端口,避免带来安全风险。
firewall-cmd开放端口firewalldLinux防火墙端口配置修改时间:2026-07-20 02:45:30