远程开发更臻完善
2022 年 12 月 7 日,作者 Brigit Murtaugh,@BrigitMurtaugh
Visual Studio Code 的核心是一个代码编辑器,它通过我们的远程开发体验与其他环境集成,变得更加强大和灵活。
您可能没有注意到,但 VS Code 内置了命令行界面 (CLI),让您控制如何启动和管理编辑器——您可以通过命令行选项打开文件、安装扩展和输出诊断信息。
CLI 在使用 VS Code 桌面版的流程中非常有用,但存在一个空白:您无法用它启动远程实例。因此,我们希望通过将本地和远程更紧密地结合,来弥补这一空白,让 CLI 变得更加强大。
今天,我们很高兴分享我们增强的 code
CLI,它允许您从 VS Code 桌面版或 vscode.dev 启动 VS Code 并远程连接到机器。更新后的 CLI 内置于最新的 VS Code 版本中,并且也提供独立安装包,因此您可以安全地连接到任何计算机并进行远程连接,即使无法在其上安装 VS Code 桌面版。
除了新的 CLI,我们还进行了以下更新以改进远程开发
- 您可以直接从 VS Code 用户界面启用隧道。
- 隧道不再是私有预览版——任何人都可以创建和使用隧道,无需注册。
- 我们重新命名了两个远程扩展,以便更清楚地说明它们的工作方式以及它们如何帮助开发
从一个工具隧道连接到任何地方
隧道安全地将数据从一个网络传输到另一个网络。您可以使用安全隧道从 VS Code 桌面版或 Web 客户端针对您选择的任何机器进行开发,无需繁琐地设置 SSH 或 HTTPS(当然,如果您愿意,也可以这样做 😊)。
您有两种出色的方法可以从 VS Code 隧道连接到远程机器
- 使用新的增强型
code
CLI。 - 直接从 VS Code 用户界面启用隧道。
我们将在以下部分探讨这两种选项。
增强型 code
CLI
当我们发布 VS Code Server 时,我们提到了我们将其集成到 code
CLI 的长期愿景。我们现在已经实现了这一点,并且还提供了独立安装包,以防您在无法安装 VS Code 桌面版的虚拟机或受限机器上工作。
以下是安装 code
CLI 并使用它创建安全隧道的步骤。如果您尝试过 VS Code Server 的私有预览版,这些步骤将非常相似。
注意:如果您在 VS Code Server 的私有预览期间使用过独立的
code-server
CLI,您现在应该改用最新的code
CLI(通过最新的 VS Code 桌面版或独立下载)。
-
在您希望在本地 VS Code 客户端中进行开发的远程机器上安装
code
CLI。这可以是一台远程桌面、虚拟机,甚至是适用于 Linux 的 Windows 子系统 (WSL) 发行版。CLI 已自动包含在您现有的 VS Code 安装中——无需额外设置。如果您没有安装 VS Code 或无法在远程机器上安装,可以通过我们的下载页面上的独立安装包获取 CLI
注意:如果您使用的是独立安装包,以下部分中的命令将以
./code
而非code
开头。 -
使用帮助命令双重检查 CLI 是否成功安装
code -h
您可以使用以下命令探索隧道专用命令
code tunnel -h
既然您已经安装了 CLI,接下来让我们设置这台机器以进行隧道连接,这样您就可以从任何 VS Code 客户端连接到它。
-
使用
tunnel
命令创建安全隧道code tunnel
此命令会在此机器上下载并启动 VS Code Server,然后创建连接到它的隧道。
注意:当您首次在机器上启动隧道时,系统将提示您接受服务器许可条款。您也可以在命令行中传递
--accept-server-license-terms
以避免此提示。 -
此 CLI 将输出一个与此远程机器关联的 vscode.dev URL,例如
https://vscode.dev/tunnel/<machine_name>/<folder_name>
。您可以从任何您想要的机器上打开此 URL。 -
当您首次在客户端打开 vscode.dev URL 时,系统将提示您在
https://github.com/login/oauth/authorize...
URL 登录您的 GitHub 帐户。这将对您进行隧道服务身份验证,以确保您有权访问正确的远程机器集。
恭喜,您已成功安装并使用了 code
CLI 的最新隧道功能!
从 VS Code 用户界面启用隧道
如果您的远程机器上安装了 VS Code,您也可以选择直接从 VS Code 用户界面创建隧道。如果您已经在 VS Code 中工作,这是一种快速、方便的方式来启用对您机器的远程访问。
在您的远程机器上打开 VS Code。在 VS Code 帐户菜单中,选择“打开远程隧道访问…”选项,如下图所示。您也可以打开命令面板 (F1) 并运行命令“远程隧道: 打开远程隧道访问...”。
系统将提示您登录 GitHub。登录后,此远程机器上将启动一个隧道,您将能够连接到它
在您选择的客户端中,您可以从上述通知中打开 vscode.dev 链接并开始编码!
通过远程隧道连接
远程 - 隧道扩展管理您本地机器和远程机器之间的安全隧道。您通过 code
CLI 或 VS Code 用户界面打开的 vscode.dev 实例会预安装远程隧道扩展。
如果您已经在 VS Code 客户端(桌面版或 Web 版)中工作并希望连接到远程隧道,您可以直接安装和使用远程 - 隧道扩展。安装扩展后,打开命令面板 (F1) 并运行命令“远程隧道: 连接到隧道”。您将能够连接到任何具有活动隧道的远程机器
您还可以在远程资源管理器中查看您的远程机器,您可以通过命令“远程资源管理器: 聚焦到远程视图”打开它
移除隧道或机器
如果您想停止通过 CLI 运行的隧道,请使用 Ctrl + C 结束活动连接。如果您通过 VS Code 用户界面启用了隧道,请运行命令“远程隧道: 关闭远程隧道访问...”。
您可以通过在该机器上运行 code tunnel unregister
来移除机器与隧道的关联。在 VS Code 中,选择“远程资源管理器”视图,右键单击您想要移除的机器,然后选择“注销”。
远程开发扩展
除了对隧道和 code
CLI 的更新,我们还对我们的远程开发扩展进行了一些更新,这些扩展允许您使用开发容器、远程机器或 WSL 作为功能齐全的开发环境。
WSL 和开发容器
我们听取了您对“远程 - WSL”和“远程 - 容器”扩展名称的反馈。我们原意是让 Remote
表示您在“远程”或“独立”的 WSL 发行版或开发容器中进行开发,而非传统的本地开发。然而,这与许多人使用的“远程”含义不同,可能会引起混淆(例如,开发容器是在我的本地机器上吗?)。
我们更新了这些扩展的命名和产品内命令,使其更清晰,将它们重命名为WSL和开发容器。市场中的扩展标识符和文档等链接保持不变,因此您在使用这两个扩展时不会出现问题。
远程隧道
如上所述,您可以使用远程 - 隧道扩展通过安全隧道连接到远程机器,无需 SSH。我们已将此扩展从“远程服务器”重命名为“远程 - 隧道”,因为我们认为这更清楚地表明了其行为(毕竟,该扩展用于通过安全隧道在远程机器上进行开发!)。
结语 – 感谢!
多年来,我们听取了您对我们的远程体验的反馈,最近也听取了您对 VS Code Server 的反馈——对于您持续分享塑造我们产品体验的宝贵想法,我们不胜感激。我们很高兴看到您如何使用我们最新的远程功能,并期待您的反馈!
如果您想更深入地了解本文中描述的工具,我们创建了一个关于远程 - 隧道扩展的主题,并更新了VS Code Server和code
CLI 文档以反映最新更改。
请随时在我们的vscode-remote-release GitHub 存储库中提交功能请求或错误报告,或者您可以在 @code 上将您的想法推文给我们。
愉快的编码!
Brigit Murtaugh, @BrigitMurtaugh