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 才真正持久。
firewall-cmd --zone=public --add-port=8080/tcp
firewall-cmd --zone=public --add-port=53/udp --permanent
firewall-cmd --permanent --add-port=2000-2100/tcp
firewall-cmd --reload
别只配不查,配完马上验证,避免白忙活。
firewall-cmd --zone=public --list-ports
区域全部配置(含服务、端口、富规则):firewall-cmd --zone=public --list-all
firewall-cmd --permanent --remove-port=8080/tcp,再 --reload
只让特定 IP 或网段访问某端口,比全放开更安全。
firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.1.100' port port='3306' protocol='tcp' accept"
firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.1.0/24' port port='80' protocol='tcp' accept"
--reload,查看用 firewall-cmd --list-rich-rules
基本上就这些。配端口不复杂,但容易忽略 --permanent 和 --reload 的搭配,也容易搞混 TCP/UDP 协议类型——数据库一般用 TCP,DNS 常用 UDP,别写反。