Windows端VSCode无法连接WSL2 Ubuntu-22.04环境求助
在Windows 11 Pro(版本10.0.22631 Build 22631)笔记本搭建MOJO测试环境,因MOJO无Windows SDK,安装了WSL2 Ubuntu-22.04及VSCode Remote Development扩展包(VSCode版本1.91.0)。但Windows端VSCode无法连接WSL中的VSCode Server,具体现象及日志如下:
关键错误信息
- renderer.log错误:
[error] CodeExpectedError: WebSocket close with status code 1006
at WebSocket.(vscode-file://vscode-app/c:/Users/myW11userid/AppData/Local/Programs/Microsoft%20VS%20Code/resources/app/out/vs/workbench/workbench.desktop.main.js:694:4130)
- 运行
code .时VSCode终端输出:
[2024-07-10 22:14:23.674] Exec (0) stderr: Error: connect ETIMEDOUT 127.0.0.1:60847
at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1595:16)
- 补充现象:Windows侧能ping通WSL的IP地址,但连接超时。
当前.wslconfig配置
[wsl2] memory=4GB swap=0GB networkingMode=mirrored #[network] #generateHosts=true #generateResolvConf=true #localhostForwarding=true [mojo] modularHomePath=/home/myuserid/.modular
调整WSL网络模式:当前启用的
networkingMode=mirrored可能导致端口转发异常,建议暂时切换回默认NAT模式。修改.wslconfig的[wsl2]段,注释掉镜像模式配置:[wsl2] memory=4GB swap=0GB # networkingMode=mirrored保存后执行
wsl --shutdown重启WSL,再重新打开Ubuntu终端。启用localhost端口转发:取消
.wslconfig中[network]段的注释,确保localhostForwarding=true,修改后配置如下:[network] generateHosts=true generateResolvConf=true localhostForwarding=true重启WSL使配置生效。
重置VSCode WSL Server缓存:
- 关闭所有VSCode窗口;
- 在Windows终端执行
wsl --shutdown; - 打开Ubuntu终端,执行
rm -rf ~/.vscode-server删除缓存; - 重新运行
code .,让VSCode重新部署Server组件。
检查Windows防火墙规则:确认Windows Defender防火墙允许VSCode通过所有网络类型,或暂时关闭防火墙测试连接(测试完成后务必重新开启)。
更新相关组件:
- 在Windows终端执行
wsl --update更新WSL内核; - 将VSCode升级至最新版本,同时确保Remote Development扩展包处于最新状态。
- 在Windows终端执行
内容的提问来源于stack exchange,提问作者diagonjope

