前言
- 新版WSL2已经支持镜像模式网络 可以将WSL2的IP固定为与主机相同 镜像模式网络
- 但是在启用后WSL2中Docker运行的服务本机无法访问 issues 10494
- 结合上述issues给出自己的使用心得帮助大家避坑
环境
- Win11 23H2
win + r > winver
- WSL 2.1.5.0
win + r > cmd > wsl --version
步骤
- 编辑wslconfig开启镜像网络 wsl-config
- win + r 输入 %UserProfile% 新建 .wslconfig 建议内容如下
[wsl2] memory=8GB #内存最大值 swap=8GB #虚拟内存最大值 processors=4 #cpu核最大值 networkingMode=mirrored # 开启镜像网络 dnsTunneling=true # 开启 DNS Tunneling firewall=true # 开启 Windows 防火墙 autoProxy=true # 开启自动同步代理 [experimental] sparseVhd=true # 开启自动释放 WSL2 虚拟硬盘空间 autoMemoryReclaim=gradual # 开启自动回收内存 hostAddressLoopback=true # 允许容器通过分配给主机的 IP 地址连接到主机
- 开放防火墙 管理员权限打开PowerShell运行
Set-NetFirewallHyperVVMSetting -Name ‘{40E0AC32-46A5-438A-A0B2-2B479E8F2E90}’ -DefaultInboundAction Allow
- 重启WSL2之后本机和局域网即可通过本机IP访问WSL2中的服务
开启Docker并使其可访问
- 按照官方步骤安装WSL2 install
- 安装Docker(docker-ce)
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun # 等待20s自动安装Docker
- 编辑/etc/docker/daemon.json文件添加如下内容
{ "iptables": false }
- 重启WSL2之后WSL2中Docker运行的服务本机和局域网内都可以访问到了