记录一次WSL修改networkingMode导致Docker端口无法访问的问题

最近踩了一个挺隐蔽的坑,简单记录一下。

一、问题现象

本地用 Docker Desktop(Windows + WSL2) 跑服务:

  • 容器正常运行,端口映射正常,本机也能正常访问
  • 其他人 / 局域网访问不了

Docker配置和防火墙看了一圈,都没发现问题。

二、原因

后来才发现,是自己之前改过WSL的网络配置 ,在 C:\Users\qianccc\.wslconfig

ini 复制代码
[wsl2]
networkingMode=mirrored

这个配置把WSL2的网络模式从默认的NAT 改成了mirrored(镜像宿主网络)

问题在于:Docker Desktop是跑在WSL2里的,而Docker的端口映射依赖WSL2默认的NAT转发机制,改成 mirrored 后,这套转发链路被绕开,导致端口只在本机可用,外部访问不到

然后查了一下自己可能改掉WLS默认的网络配置的原因:

  • 自己电脑ip经常变,导致Docker和本机经常网络不通
  • 在使用VPN的时候,WSL和Docker的网络经常异常

三、解决方案

把 WSL 网络模式改回默认即可。

修改 .wslconfig

ini 复制代码
[wsl2]
networkingMode=nat

然后执行:

bash 复制代码
wsl --shutdown

最后重启 Docker Desktop,端口对外访问就恢复正常了🎉

相关推荐
Sheffield7 小时前
Alpine是什么,为什么是Docker首选?
linux·docker·容器
马艳泽8 小时前
win10下运行Start Broker and Proxy报错解决
docker
舒一笑1 天前
程序员效率神器:一文掌握 tmux(服务器开发必备工具)
运维·后端·程序员
NineData1 天前
数据库管理工具NineData,一年进化成为数万+开发者的首选数据库工具?
运维·数据结构·数据库
用户13573999256601 天前
Windows 从 0 搭建 WSL2 原生 AI 开发环境:Codex + Docker + VSCode
docker
vi_h1 天前
在 macOS 上通过 Docker 安装并运行 Ollama(详细可执行教程)
macos·docker·ollama
黑心老魔1 天前
通过 Docker 创建开发环境
docker·开发环境
冬奇Lab2 天前
一天一个开源项目(第41篇):Workout.cool - 现代化开源健身教练平台,训练计划与进度追踪
docker·开源·资讯
梦想很大很大2 天前
拒绝“盲猜式”调优:在 Go Gin 项目中落地 OpenTelemetry 链路追踪
运维·后端·go
Sinclair2 天前
内网服务器离线安装 Nginx+PHP+MySQL 的方法
运维