必须先启用防火墙服务再开放端口:可通过安全中心图形界面一键开启并设开机自启,或用firewalld(firewall-cmd永久添加端口后reload)、ufw(enable后allow端口)、kylin-firewall(add-rule后apply-rules)三种命令行方式配置入站规则。

您正在使用麒麟操作系统,但远程服务无法访问、本地开发端口连不上、或者安全体检提示“防火墙未启用”,这通常是因为系统防火墙处于关闭状态,且未配置任何入站端口放行规则。必须先启用防火墙服务,再单独开放所需端口,两个动作缺一不可。
用firewall-cmd永久开放指定端口
第一步:确认firewalld服务已启用并运行
执行命令:sudo systemctl status firewalld,输出中需含 active (running);若显示 inactive,则先运行 sudo systemctl start firewalld && sudo systemctl enable firewalld。
第二步:查看当前默认区域与已开放端口
执行 sudo firewall-cmd --list-all,注意记录输出中的 zone 名称(通常是 public)和现有 ports 列表。
第三步:永久添加 TCP 端口(例如开放 Web 服务端口 80)sudo firewall-cmd --permanent --add-port=80/tcp。这一步只写入配置文件,不会立即生效。
第四步:永久添加 UDP 端口(如 DNS 查询端口 53)sudo firewall-cmd --permanent --add-port=53/udp。UDP 协议必须显式声明,不能省略 /udp。
第五步:重载规则使永久配置生效sudo firewall-cmd --reload。这是关键动作,漏掉则端口依然不通。【不执行此步,前面所有--permanent操作均不会实际生效】
用ufw设置最小权限入站基线
该方式适合桌面用户快速建立安全防护起点,先拒绝对所有未知入站连接,再逐条放行必要服务。若跳过默认拒绝步骤,可能意外暴露高危端口。
方法一:启用 ufw 并设默认拒绝策略
执行 sudo ufw enable,按提示输入 y 确认;紧接着运行 sudo ufw default deny incoming。这一步是关键基线,【跳过会导致所有端口默认放行】。
方法二:放行 SSH 与 HTTP 等基础服务sudo ufw allow 22/tcp → sudo ufw allow 80/tcp → sudo ufw allow 443/tcp。每条命令单独执行,避免合并成一行导致某条失败时全部失效。
方法三:验证规则状态
运行 sudo ufw status verbose,检查输出中 Default: deny (incoming) 和各端口 ALLOW IN 条目是否完整显示。
用kylin-firewall添加带源IP限制的规则
这是麒麟原生安全子系统 KYSEC 提供的专用工具,支持审计留痕且规则可追溯,适用于信创环境或需限制访问来源的生产场景。普通用户无需使用此方式。
① 确认服务已启动:sudo systemctl status kylin-firewall,若未运行则先执行 sudo systemctl start kylin-firewall && sudo systemctl enable kylin-firewall。
② 添加仅允 192.168.1.0/24 网段访问 TCP 80 端口的入站规则:sudo kylin-firewall --add-rule "allow tcp in port 80 from 192.168.1.0/24"。
③ 应用全部规则:sudo kylin-firewall --apply-rules。这一步不可省略,否则规则仍处于待提交状态。











