服务器要获取和本地相同版本的vscode-server,需要 wget 向 update.code.visualstudio.com 获取资源下载。
然而没有代理服务器又连不上这个地方,就报一个超时的错误。
错误解决
看vscode中输出的内容有一个commit-id,这个id也对应了github上vscode某个release版本的id。直接用本地电脑访问 https://update.code.visualstudio.com/commit:/server-linux-x64/stable 或https://update.code.visualstudio.com/commit:/server-linux-x64/insider(注意把前面链接中的替换成对应版本的)
然后你会下载得到一个 vscode-server-linux-x64.tar.gz 文件,这个就是上面 wget 求之而又不得的文件,我这里下载这个文件可以10M/s的下载。
然后把这个文件传到服务器上( scp mobaxterm jupyter-notebook winscp 等方法自己选择),放到 ~/.vscode-server/bin/ 目录下,解压到 当前文件夹 即可。
Linux/VS Code-正在本地下载 VS Code 服务器
VS Code在使用SSH连接到Linux服务器时,会出现停留在“设置SSH主机:XXX:正在本地下载VS Code服务器”时间过长的情况。这是由于下载服务器的文件来自外网,导致下载速度非常缓慢,甚至可能需要等待半小时以上,但其实该文件实际大小不大,此文章将给出这一情况的解决方案。
在VS Code界面上打开底端面板,找到“输出”,然后查看远程插件“Remote-SSH”的输出,会发现输出栏会有如下信息:
Deleting old install from /home/username/.vscode-server/bin/6445d93c81ebe42c4cbd7a60712e0b17d9463e97
Deleting old log file from /home/username/.vscode-server/.6445d93c81ebe42c4cbd7a60712e0b17d9463e97.log
Installing to /home/username/.vscode-server/bin/f1b07bd25dfad64b0167beb15359ae573aecd2cc…
等,也可能是其他类似输出,但是这些输出都不重要,重要的在于其最后的这一串字符,我们称之为commit_id,也就是说,可能由于网络环境或者软件版本不同,该界面具体执行的命令可能不同,导致输出信息不局限于上述信息。但是,重要的是commit_id,只要你能看得懂英语,你就能知道当前软件正在下载的VS Code Server对应的是哪一串commit_id。
使用Shell通过SSH连接目标服务器,进入~/.vscode-server/bin文件夹。
使用国内的服务器下载VS Code Server
wget https://vscode.cdn.azure.cn/stable/ c o m m i t i d / v s c o d e − s e r v e r − l i n u x − x 64. t a r . g z 在该命令中,把 {commit_id}/vscode-server-linux-x64.tar.gz 在该命令中,把 commitid/vscode−server−linux−x64.tar.gz 在该命令中,把{commit_id}关键字段替换成你刚刚获得的那一串字符,然后等待下载完成。
解压解压你刚刚下载到的“vscode-server-linux-x64.tar.gz”
tar zxvf vscode-server-linux-x64.tar.gz
需要注意,由于你已经启动过VS Code来下载对应的Server,因此当前文件夹下可能是存在一个以你当前${commit_id}为名的文件夹,需要提前确认,如果存在,使用 rm -rf命令删除该文件夹。
确认当前文件夹下没有以 c o m m i t i d 为名的文件夹后,把你刚刚解压出来的文件夹改名为 {commit_id}为名的文件夹后,把你刚刚解压出来的文件夹改名为 commitid为名的文件夹后,把你刚刚解压出来的文件夹改名为{commit_id}。
mv -f ./vscode-server-linux-x64 ./${commit_id}
4. 清理
删掉你刚刚下载的“vscode-server-linux-x64.tar.gz”即可。
重新启动VS Code,现在即可直接连上Linux主机了。