Windows Docker 代理设置


问题描述:当我们在国内使用 docker 时,因为 GFW 的原因,有时会非常慢甚至连接不上。但是我配置了代理还是很慢,看了一下流量,根本没走代理。说明代理配置出了问题,但是我后续又进行了检验,确定不是机场的问题,因此肯定是 Docker 没配置好。

解决方法(此方法适配于使用clash进行代理,其他代理工具尚未进行测试)

  1. 在 Docker 代理设置中更换127.0.0.1:端口号重启 Docker 端口号是你们代理使用的端口号

  2. 可以看到终于走代理了

原因分析

原因是我使用的 Docker 后端基于 WSL 2,而WSL2 并不是与主机共用 ip ,因而代理无效。 Windows 的 WSL 网卡地址,比如:

❯ ipconfig

# output:
以太网适配器 vEthernet (WSL):

   连接特定的 DNS 后缀 . . . . . . . :
   本地链接 IPv6 地址. . . . . . . . : fe80::a99e:b411:2b0c:1ad6%47
   IPv4 地址 . . . . . . . . . . . . : 172.30.112.1
   子网掩码  . . . . . . . . . . . . : 255.255.240.0
   默认网关. . . . . . . . . . . . . :

此解决方法本质上是进行二次转发, WSL2 先以 127.0.0.1:… 为代理,而后再进行转发。
之所以不采用网上流行的配置为 WSL2 IP 的方法,是因为 WSL2 的 IP 会动态变化,不够稳定(每次开启都需要修改,而这个方法可以手动固定clash 的端口,从而不用反复更改端口)。


如果本文帮助到了你,帮我点个广告可以咩(o′┏▽┓`o)


文章作者: Anubis
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Anubis !
评论
  目录