1、背景
想用vscode远程调试虚拟机中代码,vscode怎么也连接不上虚拟机,一直报错"XHR failed";用xshell工具或cmd命令行都可以ssh连接成功的,说明虚拟机端没有问题。
AI回复"当前报错XHR failed是VSCode 本地下载 Server 包时网络请求失败,本质是本地 VSCode 无法从官方服务器下载对应版本的 Server 文件",
建议用离线安装vscode server,强制跳过下载步骤,试了下可行。
【经过此步骤也有了解学习到vscode和虚拟机建立连接时步骤】
通过 Remote - SSH 插件连接远程 Linux 虚拟机时,本地(Windows)的VSCode 会:
1、检测远程主机是否已安装对应版本的 VS Code Server;
2、如果没有,本地 VS Code 会从微软官方服务器下载一个匹配当前 VS Code 客户端版本的 VS Code Server 压缩包(如 vscode-server-linux-x64.tar.gz);
3、然后通过 SSH 将该压缩包上传到远程主机,并解压、启动。
4、vscode客户端和vscodeserver建立连接
2、步骤
1、进入虚拟机,删除文件,命令如下
bash
rm -rf ~/.vscode-server
2、查看本地VSCode版本
打开 VSCode → 帮助 → 关于 → 复制版本号(到txt文本中)

3、下载对应Server包(替换版本号和系统架构,虚拟机是 Linux 的话选linux-x64)
bash
https://update.code.visualstudio.com/commit:${版本号}/server-linux-x64/stable
本文:(将url粘贴到浏览器中下载对应包)
bash
https://update.code.visualstudio.com/commit:7db1a2b88f7557e0a43fec75b6ba7e50b3e9f77e/server-linux-x64/stable

4、将下载的vscode-server-linux-x64.tar.gz上传到虚拟机
5、虚拟机中执行:创建目录
bash
mkdir -p ~/.vscode-server/bin/[提交id]
本文:
bash
mkdir -p ~/.vscode-server/bin/7db1a2b88f7557e0a43fec75b6ba7e50b3e9f77e
6、虚拟机中执行:解压
bash
tar -zxvf vscode-server-linux-x64.tar.gz -C ~/.vscode-server/bin/[提交id] --strip-components 1
本文:
bash
tar -zxvf vscode-server-linux-x64.tar.gz -C ~/.vscode-server/bin/7db1a2b88f7557e0a43fec75b6ba7e50b3e9f77e --strip-components 1
7、虚拟机中执行:创建0大小的0文件(让 VSCode 识别为已安装)
bash
touch ~/.vscode-server/bin/[提交id]/0
本文:
bash
touch ~/.vscode-server/bin/7db1a2b88f7557e0a43fec75b6ba7e50b3e9f77e/0

8、重新连接,连接成功
