麒麟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 只做基础保护
✔ 不会再出现“规则失效 / 端口混乱”
这类结构才是稳定生产配置。