远程开发更胜一筹
2022 年 12 月 07 日,作者 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 UI 启用隧道功能。
- 隧道功能不再处于私有预览阶段——任何人都可以创建和使用隧道,无需注册。
- 我们重命名了两个远程扩展,以便更清楚地说明它们的工作方式以及它们可以在哪里帮助开发
- “Remote - WSL”扩展现更名为WSL。
- “Remote - Containers”扩展更名为Dev Containers,以反映其用于创建开发环境的用途。
从一个工具隧道到任何地方
隧道安全地将数据从一个网络传输到另一个网络。您可以使用安全隧道从 VS Code 桌面版或 Web 客户端针对您选择的任何计算机进行开发,而无需费力设置 SSH 或 HTTPS(当然,如果您愿意,也可以这样做 😊)。
您有两种很棒的选择,可以通过 VS Code 隧道连接到远程计算机
- 使用新的、增强的
codeCLI。 - 直接从 VS Code UI 启用隧道功能。
我们将在以下部分探讨这两种选择。
增强的 code CLI
当我们发布 VS Code Server 时,我们提到了将它集成到 code CLI 的长期愿景。我们现在已经实现了这一点,并且也提供了独立安装的选项,以防您正在虚拟机或受限制的计算机上工作,而无法安装 VS Code 桌面版。
以下是安装 code CLI 并使用它创建安全隧道的步骤。如果您尝试了 VS Code Server 的私有预览版,步骤将非常相似。
注意: 如果您在 VS Code Server 的私有预览版期间使用了独立的
code-serverCLI,您现在应该使用最新的codeCLI(通过最新的 VS Code 桌面版或独立下载)代替。
-
在您希望在本地 VS Code 客户端进行开发的远程计算机上安装
codeCLI。这可能是一台远程桌面、虚拟机,甚至是适用于 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 时,系统会提示您登录 GitHub 帐户,链接为
https://github.com/login/oauth/authorize...。这会向隧道服务进行身份验证,以确保您有权访问正确的远程计算机集。
恭喜,您已成功安装并使用了 code CLI 的最新隧道功能!
从 VS Code UI 启用隧道功能
如果您的远程计算机上安装了 VS Code,您也可以选择直接从 VS Code UI 创建隧道。如果您已经在 VS Code 中工作,这是一种快速方便地启用对计算机的远程访问的方法。
在您的远程计算机上打开 VS Code。在 VS Code 账户菜单中,选择 Turn on Remote Tunnel Access… 选项,如下面的图像所示。您也可以打开命令面板(F1)并运行命令 Remote Tunnels: Turn on Remote Tunnel Access...。

系统会提示您登录 GitHub。登录后,此远程计算机上将启动一个隧道,您将能够连接到它

在您选择的客户端中,您可以打开上方通知中的 vscode.dev 链接,开始编码!
通过远程隧道连接
Remote - Tunnels 扩展管理本地和远程计算机之间的这些安全隧道。通过 code CLI 或 VS Code UI 打开的 vscode.dev 实例预装了 Remote Tunnels 扩展。
如果您已经在 VS Code 客户端(桌面版或 Web 版)中工作,并希望连接到远程隧道,您可以直接安装和使用 Remote - Tunnels 扩展。安装扩展后,打开命令面板(F1)并运行命令 Remote Tunnels: Connect to Tunnel。您将能够连接到任何具有活动隧道的远程计算机。

您也可以在远程资源管理器中查看您的远程计算机,可以通过命令 Remote Explorer: Focus on Remote View 打开它。

移除隧道或计算机
如果您想停止通过 CLI 运行的隧道,请使用 Ctrl + C 终止活动连接。如果您通过 VS Code UI 启用了隧道功能,请运行命令 Remote Tunnels: Turn off Remote Tunnel Access...。
您可以通过在该计算机上运行 code tunnel unregister 来移除计算机与隧道之间的关联。在 VS Code 中,选择远程资源管理器视图,右键单击您想要移除的计算机,然后选择 unregister。
远程开发扩展
除了对隧道功能和 code CLI 的更新之外,我们还对我们的远程开发扩展进行了一些更新,这些扩展允许您使用开发容器、远程计算机或 WSL 作为功能齐全的开发环境。
WSL 和开发容器
我们听取了您对 Remote - WSL 和 Remote - Containers 扩展名称的反馈。我们的本意是让 Remote 表示您正在“远程”或“单独”的 WSL 发行版或开发容器中进行开发,而不是传统的本地开发。然而,这对“远程”的用法与许多人使用的不同,可能会引起混淆(例如,开发容器是在我的本地计算机上吗?)。
我们更新了这些扩展中的命名和产品内命令,使其更清晰,将其重命名为WSL和Dev Containers。市场和文档中的链接(例如扩展标识符)保持不变,因此您当前使用这两个扩展时不应遇到中断。


远程隧道
如上所述,您可以使用 Remote - Tunnels 扩展通过安全隧道连接到远程计算机,而无需 SSH。我们将该扩展的名称从“Remote Server”更改为“Remote - Tunnels”,因为我们认为这更清楚地表明了它的行为(毕竟该扩展是用于通过安全隧道在远程计算机上进行开发的!)。

总结——谢谢!
多年来,我们听取了您对我们的远程体验的反馈,最近是对 VS Code Server 的反馈——我们非常感谢您分享的这些不断塑造我们产品体验的想法。我们很高兴看到您如何使用我们最新的远程功能,并期待您的反馈!
如果您想更深入地了解本文中介绍的工具,我们创建了一个关于 Remote - Tunnels 扩展的主题,并更新了 VS Code Server 和 code CLI 的文档以反映最新更改。
请随时在我们的 vscode-remote-release GitHub 仓库中提交功能请求或错误,或者您可以@code 发推特告诉我们您的想法。
编码愉快!
Brigit Murtaugh, @BrigitMurtaugh