WSL执行code命令启动VSCode报accept4 failed 110错误排查
问题根因
手动在.zshrc中追加Windows侧VSCode的bin目录到PATH是错误操作,会覆盖WSL环境下Remote-WSL扩展自动注入的code命令软链。直接调用Windows原生的code程序时,WSL与Windows宿主之间的跨环境通信没有走Remote-WSL的专用vsock通道,就会触发UtilAcceptVsock:244: accept4 failed 110的连接超时报错。
修复步骤
- 打开WSL环境下的
.zshrc配置文件,删除你手动添加的export PATH=$PATH:'/mnt/d/install/work/Microsoft VS Code/bin'这行配置,保存后执行source ~/.zshrc让配置立即生效。 - 切到Windows端打开VSCode,在扩展面板搜索并安装微软官方的WSL扩展(原Remote-WSL扩展),安装完成后重启VSCode。
- 回到WSL终端执行
which code校验路径,正常情况下返回值应为/usr/local/bin/code,不存在/mnt/开头的Windows挂载路径即为正确。 - 在目标项目目录下执行
code .,首次运行会自动在WSL内部署Remote-WSL服务端组件,等待数秒即可正常唤起VSCode打开对应目录,不会再出现vsock相关报错。
异常排查
- 如果执行
which code仍然返回/mnt/开头的Windows路径,先执行sudo rm -f /usr/local/bin/code清理错误的软链,之后在Windows端VSCode中按F1调出命令面板,选择Remote-WSL: Open Folder in WSL任选一个WSL内的目录打开,扩展会自动重新注入正确的code命令映射。 - 打开Windows PowerShell执行
wsl --version确认WSL版本,若版本号低于0.58,先执行wsl --update升级WSL,老版本WSL存在vsock通信兼容bug,也会触发同类报错。 - 后续不要手动往WSL的PATH配置中硬加Windows侧VSCode的路径,Remote-WSL扩展会自动处理跨环境的命令映射,手动追加路径反而会引发命令冲突。
内容的提问来源于stack exchange,提问作者nankiesof
相关产品推荐
相关产品推荐

