Skip to main content

麒麟v10 kylin v10 清除firewall所有策略恢复原始

你这个报错是正常的,因为:

firewall-cmd --reset-default-zone 在 firewalld 里根本不存在这个参数

(很多网上资料是错的或旧版本误传)


🚨 你现在真实状态分析

你的 public zone 已经是:

sources: 10.2.2.0/24   ← 关键
ports: 一大堆已开放
masquerade: no

说明:

❗ 你现在不是“默认状态”

而是:

⚠️ zone 被人工改造过(不是 reset 可恢复)


🧹 正确“恢复默认状态”方法(Kylin V10 可用)

⭐ 方法1(推荐):清空 zone + 恢复默认策略

1️⃣ 清空所有 ports

for p in 80 443 8070 20881 8082 20853 8086 20835 4443; do
  firewall-cmd --permanent --zone=public --remove-port=${p}/tcp
done

2️⃣ 删除 source(关键)

你现在这个:

sources: 10.2.2.0/24

执行:

firewall-cmd --permanent --zone=public --remove-source=10.2.2.0/24

3️⃣ 恢复 ssh / 默认服务

firewall-cmd --permanent --zone=public --add-service=ssh

4️⃣ reload

firewall-cmd --reload

⭐ 方法2(最干净):删除 public zone 配置文件

如果你想“一键回出厂默认”,用这个:

systemctl stop firewalld

rm -f /etc/firewalld/zones/public.xml

systemctl start firewalld

👉 这会让 firewalld 自动重建默认 public zone


🔍 方法3(推荐生产):重新初始化 firewalld

systemctl stop firewalld
rm -rf /etc/firewalld
yum reinstall firewalld -y   # 或 dnf
systemctl start firewalld

👉 最彻底(等同“恢复出厂设置”)


⚠️ 你现在最关键问题其实是这个

sources: 10.2.2.0/24

这意味着:

🔥 你 firewall 已经被改成“只信任内网网段”

所以表现会是:

  • 外部访问异常

  • 端口行为不一致

  • Docker + firewalld 混乱


🧠 一句话总结

操作 是否有效
reset-default-zone ❌ 不存在
remove-port + reload ✔ 部分恢复
删除 zone XML ✔ 推荐
重装 firewalld ✔ 最彻底

🚀 建议你下一步做这个(最稳)

如果你是生产环境:

👉 我建议直接做:

rm -f /etc/firewalld/zones/public.xml
systemctl restart firewalld

然后再重新只加:

  • ssh

  • 需要暴露的 80/443


如果你愿意,我可以帮你把你这台:

麒麟 V10 + Docker + 多微服务

整理成一套:

✔ 不互相冲突
✔ DOCKER-USER 控制流量
✔ firewalld 只做基础保护
✔ 不会再出现“规则失效 / 端口混乱”

这类结构才是稳定生产配置。