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