手动升级 vscode ssh server
使用 vscode ssh 插件时,如果该插件需要升级的话,它会自动从 vscode 的远程地址拉取版本进行升级。但是由于不可抗力的因素,在国内的网络环境下基本无法下载成功。这时就需要进行手动升级。
- 首先用 vscode 远程到需要升级的主机,vscode 的右下角会自动提示正在升级,点击详情会打开升级的终端。在其中能够找到对应 server 版本的 commit id,如
8b617bd08fd9e3fc94d14adb8d358b56e3f72314。 - 有了 commit id 之后我们手动的去下载对应的安装包。地址如下:
对于 x86 平台,地址为 https://update.code.visualstudio.com/commit:${commitID}/server-linux-x64/stable。
对于 arm 平台,地址为 https://update.code.visualstudio.com/commit:${commitID}/server-linux-arm64/stable。
这里需要将 ${commitID} 对应的替换为 commit id。
- 将下载的
vscode-server-linux-*.tar.gz放到远程服务器上的.vscode-server/bin文件夹下。 - 执行
tar -zxf vscode-server-linux-*.tar.gz进行解压。 - 执行
mv vscode-server-linux-arm64 ${commitID}将解压后的文件夹重命名为对应的 commit id。 - 重新使用 vscode 连接服务器即可。
参考资料:
"Setting up SSH Host xxx: Downloading VS Code Server locally" State for More Than 10 Minutes
另外一种方法就是使用 http 代理,vscode 本质其实就是 Chrome 浏览器,因此可以和 Chrome 一样设置代理。不过根据 官方 network 文档 ,目前不支持 socks5 代理。设置代理的方法很简单,只需要在设置中搜索 proxy 就能找到相关的设置了,如果是通过 json 进行配置,配置项示例如下:
{
"http.proxySupport": "on",
"http.proxy": "http://user:passwd@192.168.1.6:3128",
"http.proxtStrictSSL": "false",
"http.proxyAuthorization": null
}
配置代理之后就不用每次麻烦的使用手动升级的方式了,主要是容器中开发无法使用如上的方法手动升级容器中的 vscode-server,通过代理的方式可以解决这个问题。另一种解决升级问题的方式就是不升级,根据 VS Code自动升级后,导致远程连接时间过长 中的步骤关闭自动升级功能即可。
更新:在实际使用的过程中,发现更新的速度依然很慢。通过在更新的过程中执行 ps aux | grep wget 发现更新实际上使用的是 wget 命令,因此只需要设置 wget 的代理即可。创建 ~/.wgetrc 文件内容如下,对应的代理服务器需要修改成自己的服务器:
https_proxy=http://10.86.24.15:11180
http_proxy=http://10.86.24.15:11180
ftp_proxy=http://10.86.24.15:11180
use_proxy=on
wait=15
重新启动 vscode 即可使用代理进行更新了。
参考资料:
- VS-behind-proxy
- 在 v2ray 中同时开启 socks 和 http 代理
- Linux设置wget下载http/https代理的两种方法
- vscode容器开发填坑记录remote-container
vscode 离线安装插件
首先在 Visual Studio Marketplace 搜索需要安装的插件,然后在右边栏找到 Download Extension。下载对应平台的插件。如下图所示:
然后在 vscode 中选择 install from VSIX...。如下图所示:
参考资料: