You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WSL2环境下Docker部署的应用无法从Windows宿主机访问如何解决

排查与解决步骤

你遇到的是WSL2 NAT网络模式的常见端口转发异常问题,按以下顺序排查即可:

  1. 验证基础连通性
    在WSL终端执行 ip addr show eth0,找到inet对应的IPv4地址(格式一般为172.x.x.x),在Windows浏览器直接访问 http://<WSL的IP>:3000:
  • 如果能正常访问,说明是localhost转发规则异常,走步骤2
  • 如果还是无法访问,走步骤3
  1. 修复WSL localhost转发
  • 打开Windows用户目录(C:\Users\<你的用户名>\),新建/编辑.wslconfig文件,添加以下配置:
[wsl2]
localhostForwarding=true
  • 保存文件后,以管理员权限打开PowerShell执行 wsl --shutdown 重启WSL实例,再启动容器测试访问
  1. 排查端口绑定与防火墙问题
  • 先确认Docker端口绑定规则,在WSL执行 docker ps,查看PORTS列是否显示 0.0.0.0:3000->3000/tcp、0.0.0.0:3307->3306/tcp,如果仅显示:::3000->3000/tcp说明仅绑定了IPv6地址,需要修改docker-compose.yml的ports配置,强制绑定IPv4:
# app服务的ports配置
ports:
  - "0.0.0.0:3000:3000"
# db服务的ports配置
ports:
  - "0.0.0.0:3307:3306"

修改后重新执行 docker-compose up -d 启动容器

  • 临时关闭Windows防火墙测试,如果关闭后可以正常访问,就添加WSL网卡的入站放行规则,允许3000、3307端口的入站连接
  1. 排除第三方软件干扰
    如果开启了VPN、系统代理类软件,先完全退出再测试,这类软件会劫持本地路由导致WSL端口转发失效

注意:你之前尝试用docker inspect获取的容器IP是Docker内部子网地址,Windows宿主机默认没有对应路由,访问失败是正常情况,不需要尝试该方式访问

内容的提问来源于stack exchange,提问作者SANGEETH KUMAR S G

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 09:06:01