关于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)。

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

相关推荐
OlahOlah2 分钟前
Go 入门实战:音乐专辑管理 API
后端
黛琳ghz5 分钟前
用 Rust 打造高性能 PNG 压缩服务
开发语言·后端·rust
回家路上绕了弯13 分钟前
订单超时自动取消:从业务场景到技术落地的完整设计方案
分布式·后端
shengjk115 分钟前
一张图 + 五条时间线,彻底拆透 StarRocks 主键表 UPSERT 链路
后端
该用户已不存在31 分钟前
告别终端低效,10个让同事直呼卧槽的小技巧
后端·命令行
m0_5951998543 分钟前
Django Rest Framework 和 JWT 身份验证
后端·python·django
m***567244 分钟前
【玩转全栈】----Django制作部门管理页面
后端·python·django
嘿嘿1 小时前
使用 Gin 框架加载 HTML 模板:`LoadHTMLGlob` 和 `LoadHTMLFiles` 的比较与优化
后端·go·gin
iOS开发上架哦1 小时前
App Store 上架条件全解析,开发者必备资质、技术要求与跨平台工具指南
后端
月弦笙音2 小时前
【AI】👉提示词入门基础篇指南
前端·后端·aigc