规则链缺失导致的网络异常
容器网络突然异常,且防火墙规则里缺少 Docker 相关的链:常见于防火墙工具重置了规则,或守护进程曾以禁用规则管理的模式运行。表现是容器之间不通、端口映射失效。
基本信息
| 现象 | 容器互通断开、端口映射失效、报找不到链 |
|---|---|
| 检查 | 查看地址转换表与过滤表里的相关链 |
| 恢复 | 重启守护进程让它重新生成规则 |
| 长期做法 | 自定义规则写进专用链 |
| 影响范围 | 只影响网络转发链路 |
典型使用场景
- 安全加固脚本清空规则后容器网络异常
- 防火墙工具重启导致容器网络中断
- 端口映射突然失效时定位
- 确认守护进程是否以禁用规则管理的模式运行
- 恢复后回归验证既有服务的可达性
检查与恢复
检查与恢复
sudo iptables -t nat -S | grep -i docker | head -10 # 地址转换表里的相关规则
sudo iptables -S DOCKER-USER 2>/dev/null | head -5 # 专用链是否存在
sudo systemctl restart docker # 重新生成规则
sudo iptables -t nat -S | grep -i docker | head -5 # 恢复后复核现象与处理方向
| 现象 | 原因 | 处理方向 |
|---|---|---|
| 容器互相不通 | 转发规则缺失 | 重启守护进程重建 |
| 端口映射失效 | 地址转换规则丢失 | 重建后验证映射 |
| 报找不到链 | 规则被清空 | 检查防火墙工具的清理逻辑 |
| 部分网段异常 | 规则冲突或被覆盖 | 核对规则的加载顺序 |
自定义过滤规则应该写在专用链里:守护进程重建不会清掉它,而自动管理的链会被覆盖。
重启守护进程会重建链路并可能中断容器网络,要在变更窗口内执行并验证业务。
安全加固脚本清空防火墙规则后忘记放行容器相关链,是这类故障的常见来源。
排查时先确认规则是否存在,再查规则内容,顺序清晰能快速定位。
恢复后要回归验证端口映射与容器互通两类场景,避免只修好一半。
把容器相关规则纳入防火墙变更清单,能显著降低复发概率。