防火墙配
防火墙概
银河麒麟服务器默认使用Firewalld 管理防火墙。不同于传系统iptables,Firewalld 支持动态更新,并且使用"区域(Zone?的概念来划分信任级别
1. 基础服务管理
启动、开启及检查状
sudo systemctl enable firewalld --now
sudo firewall-cmd --state
查看当前活动的区
sudo firewall-cmd --get-active-zones
查看本区域详情(开放的端口及服务)
sudo firewall-cmd --list-all
2. 端口与服务开
⚠️ 所有修改建议添?--permanent 参数持久化,否则重启失效
1
常用操作示例
# 按服务名开放
sudo firewall-cmd --permanent --add-service=http
# 按端口开放
sudo firewall-cmd --permanent --add-port=8080/tcp
# 按端口范围开放
sudo firewall-cmd --permanent --add-port=10000-20000/tcp
2
重新加载配置(必须执行)
sudo firewall-cmd --reload
reload 操作不会断开已有的连接
3. 高级:富规则(Rich Rules
当需要更复杂的逻辑(如:只允许特定 IP 访问特定端口)时,使用富规则
限制只有 192.168.1.5 可以连接 MySQL (3306)
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.5" port protocol="tcp" port="3306" accept'
禁止某个 IP 段的所有访
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="10.0.0.0/24" reject'
常见问题解答
Q: 配置后服务仍无法访问
A:
1. 检查服务本身是否运行:ss -tulnp | grep 端口
2. 检查公有云控制台(安全组)是否也开启了端口
3. 尝试暂时关闭防火墙排查:systemctl stop firewalld
Q: 如何将防火墙规则全部清空回到初始状态?
A: 通常不建议清空。如误操作,可手动删除规则文件:/etc/firewalld/zones/public.xml
并重启服务,系统会恢复默认配置
Q: 禁止 Ping (ICMP) 如何配置
A:
sudo firewall-cmd --permanent --add-icmp-block=echo-request ?
reload 生效。