WSL相关问题记录

WSL的mirrored模式下docker部分容器启动失败(Already use)

  1. 检查是否指定容器IP
    因为如果指定了容器IP而该IP已被使用的话,将会报错。
  2. 检查端口占用
    wsl中使用命令:netstat -ap | grep {port}来查看端口占用情况
    win中使用命令:netstat -ano | findStr {port}
    如果存在端口占用,酌情关闭占用程序或是使用别的端口
  3. 检查win的系统保留端口
    Win将会保留一部分端口作为系统预留,如果需要的端口未被占用但是依旧提示Already use,则考虑是被系统保留了。
    使用命令:netsh interface ipv4 show excludedportrange protocol=tcp查看被保留的端口,检查自己需要使用的端口是否在范围内(带*的被排除,无需关注)。
    如果需要使用的端口被保留,可以考虑:
    • 使用别的端口
    • 调整win的动态端口范围(动态的端口范围中的端口才可能会被选择为保留端口)
      使用命令netsh interface ipv4 show dynamicportrange tcp查看动态端口范围
      使用命令netsh interface ipv4 set dynamicportrange protocol=tcp startport=10000 numberofports=20000修改动态端口的起始和个数
      重启生效
    • 添加排除保留端口
      使用命令netsh int ip add excludedportrange protocol=tcp startport=3121 numberofports=1修改排除保留端口的起始和个数

WSL的mirrored模式下无法访问网络

  1. ping 127.0.0.1是否可以访问回环
    如果不能访问可能是防火墙的问题?现在不太清楚。
    解决方案 :在.wslconfig文件中添加(为什么这样做可以也不清楚):
[experimental]
firewall=true
  1. ping 宿主机是否可以访问
    如果宿主机无法访问可能是不在一个子网中?
  2. ping baidu.com无法访问
    可能是路由问题
    使用route查看路由表,default一般是默认路由,flag为UG的指向网关,一般是这条路由的问题。ping这条路由的Gateway,如果不通则需要替换:
    1. 在win中使用命令tracert baidu.com来追踪路由,分析win使用的网关ip
    2. 在wsl中ping网关ip,应该是可以通的
    3. 使用命令route del default gw {route命令中显示的default的gateway}删除默认路由
    4. 使用命令route add default gw {win中分析得到的网关ip}添加路由
  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dis2017

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值