linux用 firewalld 配置 端口 需选对区域并区分临时与永久规则:临时规则不加 –permanent,永久规则须配合 –reload 生效;开放端口需指定协议(TCP/udp),限制访问可使用富规则。

Linux 用 firewalld 配置 端口,核心就两点:选对区域、分清临时和永久。
确认 防火墙 状态和默认区域
先看 firewalld 是否在运行:
- 查看状态:
firewall-cmd --state(返回running表示已启动) - 查默认区域:
firewall-cmd --get-default-zone(多数系统默认是public) - 查当前活跃区域及 接口:
firewall-cmd --get-active-zones
开放单个或多个端口
记住:不加 --permanent 是临时生效,重启就丢;加了必须配合 --reload 才真正持久。
- 临时开放 TCP 8080 端口:
firewall-cmd --zone=public --add-port=8080/tcp - 永久开放 UDP 53 端口:
firewall-cmd --zone=public --add-port=53/udp --permanent - 批量开 TCP 2000–2100 端口:
firewall-cmd --permanent --add-port=2000-2100/tcp - 重载使永久规则生效:
firewall-cmd --reload
验证和清理端口规则
别只配不查,配完马上验证,避免白忙活。
- 列出当前开放的所有端口:
firewall-cmd --zone=public --list-ports - 查看该区域全部配置(含服务、端口、富规则):
firewall-cmd --zone=public --list-all - 删除某个永久端口(如关掉 8080):
firewall-cmd --permanent --remove-port=8080/tcp,再--reload
限制访问来源(进阶但实用)
只让特定 IP 或网段访问某端口,比全放开更安全。
- 只允许 192.168.1.100 访问 3306:
firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.1.100' port port='3306' protocol='tcp' accept" - 允许整个 192.168.1.0/24 网段访问 80:
firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.1.0/24' port port='80' protocol='tcp' accept" - 加完 rich rule 同样要
--reload,查看用firewall-cmd --list-rich-rules
基本上就这些。配端口不复杂,但容易忽略 –permanent 和 –reload 的搭配,也容易搞混 TCP/UDP 协议类型——数据库 一般用 TCP,dns 常用 UDP,别写反。