远程开发更上一层楼
2022 年 12 月 7 日,作者:Brigit Murtaugh,@BrigitMurtaugh
从本质上讲,Visual Studio Code 是一个代码编辑器,它通过我们的 远程开发体验 与其他环境集成,从而变得更加强大和灵活
您可能没有意识到,VS Code 具有内置的 命令行界面 (CLI),让您可以控制如何启动和管理编辑器 - 您可以通过命令行选项打开文件、安装扩展和输出诊断信息
CLI 在使用 VS Code 桌面工作流程中非常有用,但存在一个差距:您无法用它启动远程实例。因此,我们希望通过将本地和远程更紧密地结合在一起,使 CLI 变得更加强大,来弥合这一差距。
今天,我们很高兴地分享我们增强的 code
CLI,它让您既可以启动 VS Code,又可以从 VS Code 桌面或 vscode.dev 远程连接到一台机器。更新后的 CLI 已经内置到最新的 VS Code 版本中,并且也可以单独安装,这样您就可以创建到任何计算机的安全连接并远程连接到它,即使您无法在它上面安装 VS Code 桌面也是如此。
除了新的 CLI 之外,我们还对以下方面进行了更新,以改进远程开发
- 您可以直接从 VS Code UI 启用隧道。
- 隧道不再处于私人预览阶段 - 任何人都可以创建和使用隧道,无需注册。
- 我们重命名了两个远程扩展,以便更清楚地说明它们的工作原理以及它们可以帮助开发的领域
从一个工具到任何地方的隧道
隧道安全地将数据从一个网络传输到另一个网络。您可以使用安全隧道从 VS Code 桌面或 Web 客户端开发到您选择的任何机器,无需费心设置 SSH 或 HTTPS(尽管如果您愿意,也可以这样做 😊)。
您有两个很棒的选择可以从 VS Code 隧道到远程机器
- 使用新的增强型
code
CLI。 - 直接从 VS Code UI 启用隧道。
我们将在以下部分探讨这两种选择。
增强的 code
CLI
当我们发布 VS Code Server 时,我们 提到 过我们将其集成到 code
CLI 中的长期愿景。我们现在已经实现了这一点,并且还使其可以单独安装,以防您正在使用无法安装 VS Code 桌面的 VM 或锁定机器。
以下是安装 code
CLI 并使用它创建安全隧道的步骤。如果您尝试过 VS Code Server 的私人预览,这些步骤会非常相似。
注意:如果您在 VS Code Server 的私人预览期间使用的是独立的
code-server
CLI,则现在应该使用最新的code
CLI(通过最新的 VS Code 桌面或独立下载)代替。
-
在您想要在本地 VS Code 客户端中开发的远程机器上安装
code
CLI。这可以是远程桌面、VM,甚至可以是 适用于 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 UI 启用隧道
如果您在远程机器上安装了 VS Code,您也可以选择直接从 VS Code UI 创建隧道。如果您已经在 VS Code 中工作,这是一种快速、便捷的方式来启用对机器的远程访问。
在您的远程机器上打开 VS Code。在 VS Code 帐户菜单中,选择“打开远程隧道访问...”选项,如下图所示。您也可以打开命令面板 (F1) 并运行命令“远程隧道:打开远程隧道访问...”。
系统会提示您登录 GitHub。登录后,将在这台远程机器上启动一个隧道,您就可以连接到它了
在您选择的客户端中,您可以从上面的通知中打开 vscode.dev 链接并开始编码!
通过远程隧道连接
“远程 - 隧道”扩展管理着您的本地和远程机器之间的这些安全隧道。您通过 code
CLI 或 VS Code UI 打开的 vscode.dev 实例预安装了“远程隧道”扩展。
如果您已经在 VS Code 客户端(桌面或 Web)中工作,并且想要连接到远程隧道,您可以直接安装并使用 远程 - 隧道 扩展。安装扩展后,打开命令面板 (F1) 并运行命令“远程隧道:连接到隧道”。您将能够连接到任何具有活动隧道的远程机器
您也可以在远程资源管理器中查看您的远程机器,您可以通过命令“远程资源管理器:专注于远程视图”打开它
删除隧道或机器
如果您想停止通过 CLI 运行的隧道,请使用 Ctrl + C 结束活动连接。如果您已通过 VS Code UI 启用了隧道,请运行命令“远程隧道:关闭远程隧道访问...”。
您可以通过在该机器上运行 code tunnel unregister
来删除机器与隧道的关联。在 VS Code 中,选择“远程资源管理器”视图,右键单击您想要删除的机器,然后选择“注销”。
远程开发扩展
除了对隧道和 code
CLI 的更新之外,我们还对 远程开发 扩展进行了一些更新,这些扩展允许您使用开发容器、远程机器或 WSL 作为功能齐全的开发环境。
WSL 和开发容器
我们听到了您对“远程 - WSL”和“远程 - 容器”扩展名称的反馈。我们原本打算使用 Remote
来表示您是在“远程”或“独立的”WSL 发行版或开发容器中进行开发,而不是传统的本地开发。但是,这与许多人使用“远程”的含义不同,会导致混淆(例如,开发容器在我的本地机器上吗?)。
我们更新了这些扩展的命名和产品内命令,使其更清晰,将它们重命名为 WSL 和 开发容器。市场和文档中的扩展标识符等链接保持不变,因此您在当前使用这两个扩展时不会出现故障。
远程隧道
如上所述,您可以使用 远程 - 隧道 扩展通过安全隧道连接到远程机器,无需 SSH。我们已将扩展的名称从“远程服务器”更改为“远程 - 隧道”,因为我们认为这更清楚地表明了它的行为(毕竟,扩展用于通过安全隧道在远程机器上进行开发!)。
结束 - 感谢您!
多年来,我们一直在倾听您对我们的远程体验的反馈,最近也收到了您对 VS Code Server 的反馈 - 我们非常感谢您分享这些不断塑造我们产品体验的想法。我们很高兴看到您如何使用我们最新的远程功能,并期待您的反馈!
如果您想更深入地了解本文中描述的工具,我们创建了有关 主题 的 远程 - 隧道扩展,并更新了 VS Code 服务器 和 code
CLI 文档以反映最新更改。
请随时在我们的 vscode-remote-release GitHub 仓库中提交功能请求或错误报告,或者您也可以在 Twitter 上向我们分享您的想法 @code。
祝您编码愉快!
Brigit Murtaugh, @BrigitMurtaugh