VSCode连接WSL Ubuntu报错:无法获取远程环境及WebSocket 1006错误
解决WSL Ubuntu与VSCode连接失败的问题
以下是针对你遇到的Could not fetch remote environment和websocket close with status code 1006错误的可行排查方案:
检查WSL网络连通性
- 在WSL终端执行
ping baidu.com,确认网络是否正常。若不通,按以下步骤重置网络:- Windows端打开管理员命令提示符,执行
wsl --shutdown关闭WSL; - 依次执行
netsh winsock reset和netsh int ip reset; - 重启电脑后重新启动WSL。
- Windows端打开管理员命令提示符,执行
- 修复WSL DNS配置:编辑
/etc/resolv.conf,将DNS改为nameserver 8.8.8.8或nameserver 114.114.114.114,执行sudo chattr +i /etc/resolv.conf防止文件被自动覆盖。
- 在WSL终端执行
手动部署VSCode Server
- 打开VSCode命令面板(Ctrl+Shift+P),执行
Remote-WSL: Connect to WSL,此时VSCode会在WSL的~/.vscode-server/bin/目录下生成一个以哈希值命名的空文件夹,记录该哈希值(即commit-id)。 - 前往VSCode官网下载对应版本的Linux x64 Server包(版本需与本地VSCode一致)。
- 将下载的zip包传到WSL的
~/.vscode-server/bin/<commit-id>目录下,执行unzip <包名>.zip -d ./解压,将解压出的vscode-server-linux-x64内的所有文件移到当前目录,清理多余文件。
- 打开VSCode命令面板(Ctrl+Shift+P),执行
修复目录权限
在WSL终端执行chmod -R 755 ~/.vscode-server,确保VSCode对该目录拥有读写权限。排除代理与防火墙干扰
- 暂时关闭Windows防火墙,或为VSCode、WSL添加防火墙允许规则。
- 打开VSCode设置JSON(命令面板执行
Preferences: Open Settings (JSON)),检查并修正代理配置:- 将
http.proxy和https.proxy设为空字符串""(若无需代理); - 设置
remote.allowLocalServerAccess为true。
- 将
重置WSL用户权限
在WSL终端执行sudo usermod -aG sudo $USER,确保当前用户拥有sudo权限,之后重启WSL。
内容的提问来源于stack exchange,提问作者Chris
相关产品推荐
相关产品推荐

