远程开发更上一层楼
2022年12月7日,由Brigit Murtaugh发布,@BrigitMurtaugh
Visual Studio Code 的核心是一个代码编辑器,它通过我们的远程开发体验与其他环境集成,从而变得更加强大和灵活:
你可能没有想过,但VS Code内置了一个命令行界面 (CLI),它允许你控制如何启动和管理编辑器 - 你可以通过命令行选项打开文件、安装扩展和输出诊断信息:
CLI 在使用 VS Code Desktop 的工作流程中非常有用,但存在一个差距:你无法用它启动远程实例。因此,我们希望通过将本地和远程更紧密地结合在一起,来弥补这一差距,使 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隧道连接到远程机器:
- 使用新的、增强的
code
CLI。 - 直接从VS Code UI启用隧道。
我们将在以下部分探讨这两个选项。
增强的 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。这可以是远程桌面、虚拟机,甚至是Windows Subsystem for Linux (WSL) 发行版。CLI 已自动包含在您现有的 VS Code 安装中——无需额外设置。如果您没有安装 VS Code 或无法在远程机器上安装它,您可以通过我们下载页面上的独立安装获取 CLI:
注意: 如果您使用的是独立安装,以下部分中的命令将以
./code
开头,而不是code
。 -
使用帮助命令再次确认CLI是否安装成功:
code -h
你可以通过以下方式探索隧道特定的命令:
code tunnel -h
现在你已经安装了CLI,让我们为这台机器设置隧道,以便你可以从任何VS Code客户端连接到它。
-
使用
tunnel
命令创建一个安全隧道:code tunnel
此命令下载并在此机器上启动VS Code服务器,然后创建一个隧道连接到它。
注意: 当您首次在机器上启动隧道时,系统会提示您接受服务器许可条款。您也可以在命令行中传递
--accept-server-license-terms
以避免提示。 -
此CLI将输出一个与此远程机器绑定的vscode.dev URL,例如
https://vscode.dev/tunnel/
。您可以从任何机器上打开此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)并运行命令Remote Tunnels: Turn on Remote Tunnel Access...。
您将被提示登录GitHub。一旦登录成功,远程机器上将启动一个隧道,您将能够连接到它:
在您选择的客户端中,您可以从上面的通知中打开vscode.dev链接并开始编码!
通过远程隧道连接
Remote - Tunnels 扩展管理着您的本地和远程机器之间的这些安全隧道。通过 code
CLI 或 VS Code UI 打开的 vscode.dev 实例预装了 Remote Tunnels 扩展。
如果您已经在使用 VS Code 客户端(桌面版或网页版)并希望连接到远程隧道,您可以直接安装并使用 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中,选择Remote Explorer视图,右键点击您想要移除的机器,然后选择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向我们发送您的想法。
编程快乐!
布里吉特·默托, @BrigitMurtaugh