麒麟系统默认拒绝所有入站连接,必须通过firewalld、ufw、kylin-firewall、iptables或预定义服务之一配置显式允许规则,否则外部无法访问web、文件共享或远程管理服务。

麒麟系统默认防火墙入站策略为拒绝,未添加显式允许规则时外部连接会被直接拦截;必须通过firewalld、ufw、kylin-firewall、iptables或预定义服务五种方式之一配置入站规则,否则Web服务、文件共享或远程管理均无法被访问。
用firewalld永久开放指定端口
该方式适用于需长期放行某端口的场景,比如部署Localsend(需53317端口)或自建HTTP服务(80端口)。临时规则在firewalld重启后会丢失,务必加--permanent参数。
第一步:确认firewalld服务正在运行:sudo systemctl status firewalld,若显示inactive (dead),先执行sudo systemctl start firewalld && sudo systemctl enable firewalld启用并设开机自启。
第二步:永久开放TCP 53317端口:sudo firewall-cmd --permanent --add-port=53317/tcp。这一步不能省略--permanent,否则重载后规则消失。
第三步:如需同时开放UDP协议(例如某些局域网发现协议),追加命令:sudo firewall-cmd --permanent --add-port=53317/udp。
第四步:重载配置使永久规则生效:sudo firewall-cmd --reload。注意:不执行此步,前面所有--permanent操作均不会实际生效。
第五步:验证端口是否已写入持久化规则:sudo firewall-cmd --query-port=53317/tcp,返回yes即成功。
用ufw设置最小权限入站基线
适合桌面用户快速建立安全防护起点,先拒绝对所有未知入站连接,再逐条放行必要服务。若跳过默认拒绝步骤,可能意外暴露高危端口。
方法一:启用ufw并设默认拒绝策略
执行sudo ufw enable,按提示输入y确认;紧接着运行sudo ufw default deny incoming。这一步是关键基线,【跳过会导致所有端口默认放行】。
方法二:放行SSH与HTTP等基础服务sudo ufw allow 22/tcp(SSH)→ sudo ufw allow 80/tcp(HTTP)→ sudo ufw allow 443/tcp(HTTPS)。每条命令单独执行,避免合并成一行导致某条失败时全部失效。
方法三:验证规则状态
运行sudo ufw status verbose,检查输出中Default: deny (incoming)和各端口ALLOW IN条目是否完整显示。
用kylin-firewall添加带源IP限制的规则
这是麒麟原生安全子系统KYSEC提供的专用工具,支持审计留痕且规则可追溯,适用于信创环境或需限制访问来源的生产场景。普通用户无需使用此方式。
① 确认服务已启动:sudo systemctl status kylin-firewall,若未运行则先执行sudo systemctl start 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"。注意引号必须保留,空格不能省略,否则解析失败。
③ 添加无源限制的TCP 6800端口规则:sudo kylin-firewall --add-rule "allow tcp in port 6800"。
④ 保存并立即应用:sudo kylin-firewall --save-rules → sudo kylin-firewall --apply-rules。不执行--apply-rules,规则仅存于内存,重启即丢。
用iptables直接操作INPUT链
绕过高层管理工具,直接控制内核netfilter INPUT链,适用于需精确匹配状态、协议标志或复杂条件的高级运维。普通用户不建议使用此方式,易误配导致本机失联。
执行sudo iptables -A INPUT -p tcp --dport 8080 -j ACCEPT添加一条允许TCP 8080端口的入站规则。
该规则仅当前会话有效,重启后清空。如需永久生效,必须将规则保存至配置文件:sudo mkdir -p /etc/iptables && sudo sh -c "iptables-save > /etc/iptables/rules.v4"。
验证规则是否写入:sudo cat /etc/iptables/rules.v4 | grep 8080,能看到对应ACCEPT行即保存成功。
用firewalld启用预定义服务
firewalld内置SSH、HTTP、FTP等标准服务定义,调用服务名即可批量放开对应端口与协议,避免手动记忆端口号出错。适用于快速部署常见服务。
永久允许HTTP服务:sudo firewall-cmd --add-service=http --permanent。这条命令会自动开放TCP 80端口,并兼容IPv4/IPv6双栈。
永久禁止SSH服务(慎用):sudo firewall-cmd --remove-service=ssh --permanent。执行前请确保已配置其他登录方式,否则远程连接将立即中断。
查看当前所有已允许的服务:sudo firewall-cmd --list-services,输出应包含http(若上步成功)。
重载规则使变更生效:sudo firewall-cmd --reload。











