关于docker容器内部无法联网的解决方案之一

Docker 容器访问外部网络的流程是:容器流量 → 宿主机的 Docker 桥接网络(172.18.0.0/16)→ 宿主机的 FORWARD 链转发 → 宿主机网关(192.168.13.1)→ 外部网络

问题现象与环境说明

基本环境

  • 宿主机系统:Linux(Ubuntu/Debian 系)
  • 宿主机内网 IP:192.168.13.2,网关:192.168.13.1
  • Docker 网络:通过 1Panel 创建的1panel-network(bridge 模式)
  • 网络配置:子网172.18.0.0/16,网关172.18.0.1,容器 IP 均为此网段(如172.18.0.2172.18.0.3等)

这是我的容器默认使用的docker网络,先确定网络的子网是啥,然后配置流量转发就可以了。

我的解决流程:(改成你自己的子网ip) 执行以下命令,允许容器子网(172.18.0.0/16)通过宿主机转发访问外部网络,并允许返回流量:

bash 复制代码
# 允许容器子网(172.18.0.0/16)访问外部网络(新连接和相关返回连接)
sudo iptables -I FORWARD -s 172.18.0.0/16 -j ACCEPT
sudo iptables -I FORWARD -d 172.18.0.0/16 -m state --state RELATED,ESTABLISHED -j ACCEPT

• 第一条规则:允许容器主动发起的新连接(如访问 www.bing.com)。

• 第二条规则:允许外部网络对容器的返回流量(如网页响应)。

相关推荐
我是华为OD~HR~栗栗呀18 分钟前
华为OD-Java面经-21届考研
java·c++·后端·python·华为od·华为·面试
考虑考虑27 分钟前
流收集器
java·后端·java ee
野犬寒鸦2 小时前
从零起步学习MySQL || 第十章:深入了解B+树及B+树的性能优势(结合底层数据结构与数据库设计深度解析)
java·数据库·后端·mysql·1024程序员节
上进小菜猪2 小时前
智能信创新范式:浙江省人民医院的全栈国产化与智能数据底座实践
后端
没有bug.的程序员3 小时前
Spring 常见问题与调试技巧
java·后端·spring·动态代理·1024程序员节
黎燃3 小时前
构筑自主可控医疗生态-数智融合新引擎-医疗全栈信创跃迁
后端
R.lin4 小时前
OSS服务模块-基于数据库配置的Java OSS服务解决方案,支持MinIO、七牛云、阿里云和腾讯云
java·数据库·后端·mysql
R.lin4 小时前
使用 Undertow 替代 Tomcat
java·后端·tomcat
Mintopia4 小时前
🇨🇳 Next.js 在国内场景下的使用分析与实践指南
前端·后端·全栈
程序员三明治5 小时前
Spring AOP:注解配置与XML配置双实战
java·后端·spring·代理模式·aop·1024程序员节