VS Code远程连接原理简介

举报
sunnysnowhi 发表于 2022/07/08 16:17:03 2022/07/08
【摘要】 VS Code远程连接简介VS Code使用SSH协议进行远程主机连接。本地用户经过简单配置后,即可连接到远程的服务器进行开发调测,解决了本地调测环境不足的问题,极大地方便了开发者。官方的介绍文档 连接原理介绍从官方介绍文档中的这张原理图我们可以看到,用户本地的VS Code是通过SSH通道连接到远程主机的。用户的开发代码、运行环境、调试环境都是在远程主机上。远程连接是基于Visual S...

VS Code远程连接简介

VS Code使用SSH协议进行远程主机连接。本地用户经过简单配置后,即可连接到远程的服务器进行开发调测,解决了本地调测环境不足的问题,极大地方便了开发者。官方的介绍文档

连接原理介绍

从官方介绍文档中的这张原理图我们可以看到,用户本地的VS Code是通过SSH通道连接到远程主机的。用户的开发代码、运行环境、调试环境都是在远程主机上。
远程连接是基于Visual Studio Code Remote - SSH这个扩展来实现的。
image.png

当进行远程连接时,VS Code会在远程主机上安装一个server包,这个安装过程是在首次连接时自动完成的。由于Server包是安装和运行在远端服务器上,而本地的VS Code只是编辑和展示的窗口,两者之间通过SSH Tunnel通信,因此实际的工作环境完全是在远端,如果需要使用第三方的扩展,也可以直接安装在远端服务器环境。

具体的连接过程如下:

  1. 首次连接时,下载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中查看
image.png

确定好下载链接后,VS Code会去下载包到远端服务器,如果第二次连接时,检测到已经下载过了就不会再重复执行下载操作。

下载时,也有几种方法:
1) 直接从远端服务器连网下载
2) 从本地连网下载好后,scp传输到远端服务器
采用何种方式,是根据Remote-SSH扩展的Remote.SSH: Local Server Download这个配置参数决定的:
image.png
如果不配置,默认值代表先尝试直接从远端服务器下载,如果失败了再从本地下载后传输到远端。
因此对于远程服务器不能连网的情况,它的下载时间就会长一些,因为它会尝试两次。
image.png

当本地下载好后往远端传输时,使用的是scp传输,scp需要本地和远端都安装了scp命令才能成功, 因此如果远端服务器不支持scp命令,就会传输失败导致远程连接失败。

  1. 解压并运行server
    server包下载好后,会解压到用户的目录下,默认是用户的家目录下的~/.vscode-server/bin,文件路径和解压后的文件内容:
    image.png
    运行的server进程:
    image.png

  2. 管理Server进程
    通常情况下我们不需要干预VS Code Server,但是当VS Code Server包下载解压失败等特殊场景下,VS Code Server包可能有残留会导致再次连接时候一直失败,此时可以使用ctrl + shift + p调出命令行,使用kill命令杀死Server进程,再重新进行远程连接。
    image.png

应用在华为云ModelArts开发环境

华为云ModelArts提供的开发环境支持使用VS Code远程连接,非常方便本地开发者使用。处理常规的手工配置方式连接和使用ModelArts VS Code Toolkit工具连接之外,还提供了非常便捷的一键打开VSCode功能,只需点击按钮就可以自动配置并连接,省去了手工配置的复杂繁琐操作。

image.png

这篇博客写了VS Code一键打开ModelArts开发环境,可以体验一下。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。