Docker 更改地址段

先说解决方案

参考 Networking problems with WSL2 and Docker Desktop for windows,编辑 /etc/docker/daemon.json,加入 "bip": "192.168.200.1/24"(根据实际情况替换),然后 systemctl 重载配置、重启 Docker 一通操作后用 ip routeifconfig 验证一下变化。

为什么会有这个需求

WSL2 的网段是 172.17 开头的,这恰好和 Docker 的默认网段撞了,导致 Docker 不能直接使用 WSL2 的网关 ip 前缀的系统代理(会被认为是 Docker 内部的网址)。每次都要根据 Windows 实际的局域网 ip 来写 http 代理,太麻烦了。修改 Docker 网段之后就可以继续使用系统代理(虽然还是得传递,但是可以直接在命令行上写 --build-arg HTTP_PROXY=$http_proxy --build-arg HTTPS_PROXY=$http_proxy 之类)。另外,由于网络代理请求是统一从 WSL2 的网关发起的,只需要在 Clash for Windows 中设置 inbounds 就能仅允许这些连接请求,这样就不必冒着裸奔的风险开启局域网内代理了。

inbounds:
  - "http://172.17.xxx.yyy:zzz"

相关文章

Clash for Windows 相关