您的位置:首页 >CentOS 7怎么开放防火墙端口
发布于2026-08-12 阅读(0)
扫一扫,手机访问
在 CentOS 7 里,默认启用的防火墙服务是 firewalld,不是 iptables。操作前先别急着改规则,先用 firewall-cmd --state 看清楚当前是否正在运行;开放端口时,要通过 --permanent 持久化添加,随后再执行 --reload,规则才会真正生效。还有一点很容易被忽略:云安全组和服务监听地址也得同步配置好,否则端口就算放开了,外部照样访问不到。

firewalld 是 CentOS 7 默认的防火墙服务,不是 iptables。直接操作 iptables 规则或用旧版命令会失效,甚至导致规则冲突。
先看防火墙有没有真正在跑:
firewall-cmd --state,返回 running 才算活的;如果报 not running,得先启动systemctl status firewalld 的输出——有时显示 “active (exited)” 实际没加载规则,firewall-cmd --state 才是唯一可信判断systemctl start firewalld,再加 systemctl enable firewalld 确保重启后还在真正的要点就在这里:--permanent 和 --reload 这两个动作,一个都不能少。
firewall-cmd --zone=public --add-port=8080/tcp --permanent —— 这步只写进磁盘配置,不生效firewall-cmd --reload(不是 systemctl restart firewalld),否则端口对外仍是封闭的firewall-cmd --query-port=8080/tcp,返回 yes 才算真正落库;再用 firewall-cmd --list-ports 看是否出现在列表里区间写法容易漏掉协议或拼错语法,导致命令静默失败:
firewall-cmd --zone=public --add-port=30000-32767/tcp --permanent,注意中间是英文短横 -,不是中文破折号或下划线firewall-cmd --zone=public --add-port=30000-32767/udp --permanentfirewall-cmd --reload;不 reload,netstat -ntlp 或 ss -tuln 可能显示端口已监听,但外部仍连不上——因为流量被防火墙拦在入口了很多“明明加了端口却访问不通”的问题,其实卡在下面几个地方:
firewalld 放行只是第二道关,安全组没开等于白搭systemctl restart firewalld 代替 firewall-cmd --reload:前者会清空 runtime 规则,可能把临时添加的 rich rule 或 interface zone 给冲掉--permanent:比如只运行 firewall-cmd --add-port=8080/tcp,重启 firewalld 后端口自动消失,排查时容易忽略这点firewall-cmd --list-ports 查不到刚加的端口?先确认当前 zone 是否为 public:firewall-cmd --get-active-zones,非 public zone 要显式指定 --zone=xxxfirewalld 配置 + 安全组 + 服务本身监听地址(比如是否绑定了 0.0.0.0 而非 127.0.0.1)三者共同决定的。少验任何一个环节,都会让你在 curl 失败后反复怀疑命令有没有输对。 上一篇:CentOS怎么查看系统版本号
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
4
5
6
7
8
9