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

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

相关推荐
遨翔在知识的海洋里20 分钟前
nest(5)-文件上传和静态资源
后端
遨翔在知识的海洋里30 分钟前
nest(3)-jwt和RBAC
后端
遨翔在知识的海洋里33 分钟前
nest(5)-Middleware
后端
程序员梅雨1 小时前
Linux & Shell 实用干货
linux·运维·服务器·后端·面试·php
大牧师1 小时前
TypeORM 入门教程
后端·sql·mysql·orm·nest·typeorm
IT_陈寒1 小时前
Vite静态资源路径这个大坑害我调了一下午
前端·人工智能·后端
oliver_sys_log1 小时前
绕过 Yearning 查询体验限制:我做了一个 DataGrip 只读 SQL 代理
后端·mysql
水深火乐1 小时前
golang-jwt v5 入门
后端
carson9551 小时前
基于springboot和vue的文本文件上传下载在线编辑功能
后端
n8n1 小时前
Spring AI 提示词工程进阶:System / User / Assistant 角色、Prompt Template 动态拼装与多角色人设切换
后端