服务被防火墙挡了?
麒麟上服务本地能通、远端不通:firewalld 默认拦截。给出查规则、临时放行、按行业规范固化端口的操作步骤。
简短答案
麒麟系统默认启用 firewalld,且默认拒绝未声明端口——本地通、远端不通先怀疑这里。三步定位:看状态 → 看规则 → 临时放行验证。
| 现象 | 原因 | 处理 |
|---|---|---|
ss -lntp 看到监听但外网不通 |
防火墙默认拦截 | 放行对应端口 |
firewall-cmd --list-all 无目标端口 |
端口未声明 | 加端口 |
| 声明了还是不通 | 规则区不匹配 | 看 active zone |
怎么排查
# 1. 看防火墙状态与当前 zone
systemctl status firewalld
firewall-cmd --state
firewall-cmd --get-active-zones
# 2. 看当前 zone 的规则
firewall-cmd --list-all
# 3. 临时放行 8080/tcp 验证
firewall-cmd --add-port=8080/tcp
# 4. 验证有效后固化
firewall-cmd --permanent --add-port=8080/tcp
firewall-cmd --reload
# 5. 业务监听确认
ss -lntp | grep 8080
- 业务端口选择按行业规范,不要图省事开全域。
- 桌面版 / 服务器版默认 firewall 行为略有差异,以 麒麟 V11 服务器版 发行说明为准。
- 改完端口策略后重启服务验证,避免旧连接仍走旧规则。
- 桌面端(如 麒麟 V11 桌面版)默认更保守,放行前确认端口用途。
操作小结
- 先看 active zone,再临时放行验证。
- 临时规则加
--permanent持久化。 - 端口策略按行业规范,不图省事开全域。