镜像网络模式是唯一能让WSL2与Windows共享网络栈的官方方案,要求Win11 22H2+及WSL 0.58.0+,配置.wslconfig启用mirrored networking后,二者IP和localhost完全等价,实现宿主机及局域网直连。

在 Win11 下让 WSL2 里的服务能被 Windows 主机直接通过 localhost 访问、局域网设备也能直连 WSL2 启动的 Web 服务,必须打破默认 NAT 模式下“WSL2 是藏在 Windows 身后的虚拟机”这一隔离结构,而镜像网络模式(mirrored networking)正是微软官方提供的唯一能真正共享网络栈的方案,它让 WSL2 的 localhost 和 Windows 的 localhost 完全等价,IP 地址也与宿主机一致。
确认前提条件是否满足
镜像网络模式不是开箱即用的功能,它有硬性版本要求:【Windows 11 22H2 及以上 + WSL 版本 0.58.0+】。低于这些版本的系统即使写入配置也不会生效。打开 PowerShell 执行 wsl --version,若提示“未识别命令”,说明 WSL 尚未安装或未升级;若显示版本号但低于 0.58.0,请先运行 wsl --update 并重启电脑。
创建并编辑 .wslconfig 配置文件
按 Win+R 打开运行框,输入 notepad %USERPROFILE%\.wslconfig 回车。系统会弹出记事本,若提示“找不到文件”,点“是”新建。
在空白文档中,严格按以下格式逐行输入(注意中括号和等号前后无空格):
[wsl2]
networkingMode=mirrored
dnsTunneling=true
autoProxy=true
[experimental]
autoMemoryReclaim=gradual
保存文件(Ctrl+S),关闭记事本。这一步不能用 Word 或 VS Code 等编辑器另存为,必须确保文件名是 “.wslconfig”(开头带英文点),且编码为 UTF-8 无 BOM——记事本默认保存即符合要求。
停用并重启 WSL 实例
第一步:在 PowerShell(无需管理员权限)中执行:wsl --shutdown
第二步:等待约 3 秒,确保所有 WSL 进程已退出。可执行 wsl -l -v 查看状态,所有发行版应显示为“Stopped”。
第三步:直接输入 wsl 启动默认发行版。此时终端第一行会显示类似 WSL2 is using mirrored networking mode. 的提示,说明镜像模式已激活。
验证镜像网络是否生效
方法一:检查 IP 地址一致性
在 WSL 中运行 ip addr | grep "inet " | head -n1,记录输出的 IPv4 地址(如 192.168.1.105);再在 Windows 的 PowerShell 中运行 ipconfig | findstr "IPv4",对比两者的地址是否完全相同。若一致,说明镜像模式已接管网络栈。
方法二:测试 localhost 互通
在 WSL 中启动一个简单 HTTP 服务:python3 -m http.server 8000;然后立刻在 Windows 的浏览器中访问 http://localhost:8000。页面成功加载即证明宿主机可直通 WSL2 的 localhost 服务。
方法三:检查代理继承(如你开了系统代理)
在 WSL 中执行 curl -I https://www.baidu.com,若返回 200 OK 且无连接超时,说明 autoProxy=true 已生效,无需手动配置 http_proxy 环境变量。

















