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

Win11主机无法连接WSL2中Ruby容器的问题排查

WSL2 Docker容器端口无法从Win11主机访问的解决办法

1. 确认Docker端口映射配置

打开你的docker-compose.yml,检查端口映射是否正确绑定到所有网卡。正确配置示例:

services:
  ruby-app:
    ports:
      - "0.0.0.0:3000:3000"
      # 简化写法"3000:3000"默认绑定0.0.0.0,也可以用

如果之前未指定0.0.0.0,修改后重启容器重试。

2. 验证WSL2内端口监听状态

在WSL2终端执行以下命令,查看Docker是否在监听3000端口:

sudo netstat -tulpn | grep 3000

如果看不到docker-proxy进程监听0.0.0.0:3000或你的WSL2 IP(10.5.0.2)的3000端口,说明端口映射未生效,重启Docker服务:

sudo service docker restart

3. 修复WSL2网络缺失eth0的问题

WSL2无eth0通常是网络配置异常导致,按以下步骤重置:

  • 在Win11的PowerShell中关闭所有WSL实例:
    wsl --shutdown
    
  • 用管理员权限打开PowerShell,重置网络栈:
    netsh interface ipv4 reset
    netsh winsock reset
    
  • 重新启动WSL2,执行ip addr检查,正常情况下会出现eth0网卡。

4. 先在WSL2内部测试连通性

先跳过主机浏览器,在WSL2终端用curl测试容器端口:

curl http://localhost:3000

如果能得到正常响应,说明容器服务没问题,问题出在WSL2与Win11的网络转发;如果仍提示连接拒绝,需检查Puma实际监听地址——部分场景下日志显示监听0.0.0.0,但实际启动命令或配置文件绑定的是127.0.0.1,此时要修改Puma启动参数或配置,确保绑定0.0.0.0。

5. 检查Win11防火墙设置

确认Win11防火墙未拦截3000端口:可以添加入站规则允许3000端口,或临时关闭防火墙测试(测试后记得重新开启)。


内容的提问来源于stack exchange,提问作者Iridio

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 13:05:58