VS Code远程连接原理简介
VS Code远程连接简介
VS Code使用SSH协议进行远程主机连接。本地用户经过简单配置后,即可连接到远程的服务器进行开发调测,解决了本地调测环境不足的问题,极大地方便了开发者。官方的介绍文档
连接原理介绍
从官方介绍文档中的这张原理图我们可以看到,用户本地的VS Code是通过SSH通道连接到远程主机的。用户的开发代码、运行环境、调试环境都是在远程主机上。
远程连接是基于Visual Studio Code Remote - SSH这个扩展来实现的。
当进行远程连接时,VS Code会在远程主机上安装一个server包,这个安装过程是在首次连接时自动完成的。由于Server包是安装和运行在远端服务器上,而本地的VS Code只是编辑和展示的窗口,两者之间通过SSH Tunnel通信,因此实际的工作环境完全是在远端,如果需要使用第三方的扩展,也可以直接安装在远端服务器环境。
具体的连接过程如下:
- 首次连接时,下载VS Code Server
VS Code Server包的版本取决于你本地使用的VS Code的版本,下载地址为:
x86: https://update.code.visualstudio.com/commit:${commit_id}/server-linux-x64/stable
arm: https://update.code.visualstudio.com/commit:${commit_id}/server-linux-arm64/stable
其中commit_id是变化的,每个不同版本的VS Code的commit_id都不同,可以在VS Code的Help -> About中查看
确定好下载链接后,VS Code会去下载包到远端服务器,如果第二次连接时,检测到已经下载过了就不会再重复执行下载操作。
下载时,也有几种方法:
1) 直接从远端服务器连网下载
2) 从本地连网下载好后,scp传输到远端服务器
采用何种方式,是根据Remote-SSH扩展的Remote.SSH: Local Server Download这个配置参数决定的:
如果不配置,默认值代表先尝试直接从远端服务器下载,如果失败了再从本地下载后传输到远端。
因此对于远程服务器不能连网的情况,它的下载时间就会长一些,因为它会尝试两次。
当本地下载好后往远端传输时,使用的是scp传输,scp需要本地和远端都安装了scp命令才能成功, 因此如果远端服务器不支持scp命令,就会传输失败导致远程连接失败。
-
解压并运行server
server包下载好后,会解压到用户的目录下,默认是用户的家目录下的~/.vscode-server/bin,文件路径和解压后的文件内容:
运行的server进程:
-
管理Server进程
通常情况下我们不需要干预VS Code Server,但是当VS Code Server包下载解压失败等特殊场景下,VS Code Server包可能有残留会导致再次连接时候一直失败,此时可以使用ctrl + shift + p调出命令行,使用kill命令杀死Server进程,再重新进行远程连接。
应用在华为云ModelArts开发环境
华为云ModelArts提供的开发环境支持使用VS Code远程连接,非常方便本地开发者使用。处理常规的手工配置方式连接和使用ModelArts VS Code Toolkit工具连接之外,还提供了非常便捷的一键打开VSCode功能,只需点击按钮就可以自动配置并连接,省去了手工配置的复杂繁琐操作。
这篇博客写了VS Code一键打开ModelArts开发环境,可以体验一下。
- 点赞
- 收藏
- 关注作者
评论(0)