必须手动配置端口开放规则:一、firewall-cmd(firewalld)永久添加端口并重载;二、ufw允许指定端口及范围;三、kylin-firewall添加带源ip限制的规则并保存应用;四、iptables直接操作链并持久化;五、iptables nat实现端口映射。

如果您已启用麒麟OS防火墙但需允许特定服务通信,则必须手动配置端口开放规则。以下是针对不同防火墙后端的端口开放操作步骤:
一、使用firewall-cmd开放端口(适用于firewalld后端)
firewalld是麒麟V10服务器版及部分桌面版默认集成的动态防火墙管理器,采用区域(zone)概念管理策略,支持运行时与永久规则分离配置。
1、确认firewalld服务正在运行:sudo systemctl status firewalld
2、查看当前默认区域及已开放端口:sudo firewall-cmd --list-all
3、永久开放TCP协议的8080端口:sudo firewall-cmd --permanent --add-port=8080/tcp
4、若需开放UDP端口(如DNS),执行:sudo firewall-cmd --permanent --add-port=53/udp
5、重新加载防火墙配置使永久规则生效:sudo firewall-cmd --reload
6、验证端口是否成功加入规则列表:sudo firewall-cmd --query-port=8080/tcp
二、使用ufw命令开放端口(适用于ufw后端)
ufw(Uncomplicated Firewall)作为轻量级前端,通过简洁语法管理iptables规则,适合快速部署基础端口策略,常见于麒麟桌面版V10 SP1及以上版本。
1、检查ufw当前状态:sudo ufw status verbose
2、默认拒绝所有入站连接(推荐安全基线):sudo ufw default deny incoming
3、允许SSH服务(端口22):sudo ufw allow 22
4、开放自定义端口9030并指定协议:sudo ufw allow 9030/tcp
5、开放端口范围(如3000–3010):sudo ufw allow 3000:3010/tcp
6、启用ufw并应用全部规则:sudo ufw enable
三、使用kylin-firewall命令开放端口(适配KYSEC安全框架)
kylin-firewall是麒麟原生安全子系统KYSEC提供的专用命令行工具,直接对接内核安全策略模块,适用于信创合规环境或需审计留痕的场景。
1、确认kylin-firewall服务已启动:sudo systemctl status kylin-firewall
2、列出当前所有端口规则:sudo kylin-firewall --list-rules
3、添加一条允许TCP 6800端口的入站规则:sudo kylin-firewall --add-rule "allow tcp in port 6800"
4、添加带源IP限制的规则(仅允192.168.10.0/24网段访问80端口):sudo kylin-firewall --add-rule "allow tcp in port 80 from 192.168.10.0/24"
5、保存当前规则集至持久化配置:sudo kylin-firewall --save-rules
6、立即激活新规则而不重启服务:sudo kylin-firewall --apply-rules
四、通过iptables直接添加端口规则(底层通用方式)
iptables为Linux内核Netfilter框架的原始管理工具,不依赖上层服务,适用于所有麒麟OS版本,但需手动处理链顺序与持久化问题。
1、临时允许TCP 443端口入站:sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
2、插入规则至INPUT链第2位(避免被默认DROP规则拦截):sudo iptables -I INPUT 2 -p tcp --dport 8080 -j ACCEPT
3、保存当前iptables规则至文件(适用于非systemd-networkd环境):sudo iptables-save > /etc/sysconfig/iptables
4、在基于Debian的麒麟桌面版中,使用netfilter-persistent保存:sudo netfilter-persistent save
5、验证规则是否写入INPUT链:sudo iptables -L INPUT --line-numbers
五、配置端口映射实现低权限端口访问
当应用程序以普通用户身份运行且无法绑定1024以下端口(如80、443)时,可通过iptables NAT表将高权限端口流量重定向至应用实际监听端口。
1、启用IPv4转发功能:sudo sysctl -w net.ipv4.ip_forward=1
2、添加PREROUTING规则将80端口请求转发至8080:sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
3、添加OUTPUT规则确保本地回环访问也适用该映射:sudo iptables -t nat -A OUTPUT -p tcp -d 127.0.0.1 --dport 80 -j REDIRECT --to-port 8080
4、保存NAT规则(注意:必须单独保存nat表):sudo iptables-save -t nat > /etc/sysconfig/iptables-nat
5、验证端口映射是否生效:curl -I http://127.0.0.1










