参加你附近的 ,了解 VS Code 中的 AI 辅助开发。

使用远程隧道进行开发

Visual Studio Code 远程 - 隧道 扩展允许你通过安全隧道连接到远程计算机,例如台式电脑或虚拟机 (VM)。你可以在任何地方使用 VS Code 客户端连接到该计算机,无需 SSH。

隧道通过 Microsoft 开发隧道安全地将数据从一个网络传输到另一个网络。

这可以消除在 VS Code 客户端计算机上保存源代码的需要,因为该扩展直接在远程计算机上运行命令和其他扩展。该扩展将在远程操作系统上安装 VS Code Server;该服务器独立于远程操作系统上任何现有的 VS Code 安装。

Remote Tunnels architecture overview

VS Code 可以提供本地质量的开发体验——包括完整的 IntelliSense(代码补全)、代码导航和调试——无论你的代码托管在哪里

开始使用

你有两种方式使用隧道:

这两种方式都会产生相同的隧道功能——你可以使用最适合你的工具。如果你无法在远程计算机上安装完整的 VS Code 桌面版,CLI 是一个很好的选择。如果你已经在 VS Code 中进行一些工作,然后想为当前计算机启用隧道,使用 VS Code 桌面 UI 会很方便。

我们将在下面的章节中描述这两种方式。

使用“code”CLI

你可以通过 code CLI 创建和使用隧道。

  1. 在你希望从 VS Code 客户端进行开发的远程计算机上安装 code CLI。CLI 在 VS Code 客户端和你的远程计算机之间建立隧道。CLI 已自动内置到 VS Code 桌面版中——无需额外设置。

    替代下载方式

    另外,你也可以通过我们下载页面上的 独立安装程序 获取 CLI,该安装程序独立于 VS Code 桌面版安装。

    VS Code download options with CLI highlighted

    你也可以通过远程计算机的终端安装和解压 CLI。如果你的远程计算机没有 UI,这可能会特别有用。

    curl -Lk 'https://vscode.js.cn/sha/download?build=stable&os=cli-alpine-x64' --output vscode_cli.tar.gz
    
    tar -xf vscode_cli.tar.gz
    

    注意: 如果你使用独立安装或终端安装,以下章节中的命令将以 ./code 而非 code 开头。

  2. 使用 tunnel 命令创建安全隧道

    code tunnel
    

    此命令在此计算机上下载并启动 VS Code Server,然后创建一个隧道连接到它。

    注意: 当你第一次在一台机器上启动隧道时,系统会提示你接受服务器许可条款。你也可以在命令行中传递 --accept-server-license-terms 以避免提示。

  3. 此 CLI 将输出一个与此远程机器绑定的 vscode.dev URL,例如 https://vscode.dev/tunnel/<machine_name>/<folder_name>。你可以在你选择的客户端上打开此 URL。

  4. 当在此客户端上首次打开 vscode.dev URL 时,系统会提示你登录 GitHub 帐户,网址为 https://github.com/login/oauth/authorize...。这将验证你是否已获得隧道服务的访问权限,以确保你可以访问正确的远程计算机集。

使用 VS Code UI

  1. 在你希望开启隧道访问的远程计算机上打开 VS Code。

  2. 在 VS Code 帐户菜单中,选择 Turn on Remote Tunnel Access 选项,如下图所示。你也可以在 VS Code 中打开命令面板 (F1) 并运行命令 Remote Tunnels: Turn on Remote Tunnel Access...

    Turn on Remote Tunnel Access via the VS Code Account menu

  3. 系统将提示你登录 GitHub。登录后,隧道将在你当前的机器上启动,你将能够远程连接到这台机器。

    Prompt that remote tunnel access is enabled

  4. 在你选择的客户端中,你可以打开上述通知中的 vscode.dev 链接,然后开始编写代码!

注意: 只有当 VS Code 在远程计算机上保持运行时,才能通过隧道访问该远程计算机。一旦退出 VS Code,就无法通过隧道连接到它,除非你再次在该计算机上启动 VS Code 或运行 code tunnel CLI 命令。

远程隧道扩展

你通过 code CLI 或 VS Code UI 打开的 vscode.dev 实例预装了远程 - 隧道扩展。

如果你已经在 VS Code(桌面版或网页版)中工作,并且想要连接到远程隧道,你可以直接安装并使用 远程 - 隧道 扩展。安装扩展后,打开命令面板 (F1) 并运行命令 Remote Tunnels: Connect to Tunnel。你将能够连接到任何具有活动隧道的远程机器。

你也可以在远程资源管理器中查看你的远程机器,你可以通过命令 Remote Explorer: Focus on Remote View 来聚焦它。

Remote Explorer view with Tunnels

与其他的远程开发扩展一样,你的远程机器的名称将显示在左下角的绿色远程指示器中。点击此指示器是探索远程隧道命令的另一种方式,同时还有关闭远程连接或安装 VS Code 桌面版的选项。

VS Code remote indicator connected to a remote tunnel

在容器中打开远程隧道主机上的文件夹

你可以结合使用远程 - 隧道和 开发容器 扩展,在容器内部打开远程主机上的文件夹。你甚至无需在本地安装 Docker 客户端。

操作步骤如下:

  1. 遵循在远程主机上安装 Docker 以及在本地安装 VS Code 和开发容器扩展的 安装 步骤。
  2. 遵循远程 - 隧道扩展的 入门 说明,设置隧道,连接到它并在其中打开文件夹。
  3. 从命令面板(F1⇧⌘P (Windows, Linux Ctrl+Shift+P))使用 开发容器:在容器中重新打开 命令。

开发容器快速入门 的其余部分照常适用。你可以在 其文档 中了解有关开发容器扩展的更多信息。如果此模型不符合你的需求,你还可以查看 在远程 Docker 主机上开发 文章以获取其他选项。

常见问题

远程隧道、VS Code Server 和远程开发之间的关系是什么?

Visual Studio Code 远程开发 允许你将容器、远程机器或适用于 Linux 的 Windows 子系统 (WSL) 用作功能齐全的开发环境。

远程开发通过将某些命令的执行转移到“远程服务器”——VS Code Server——让你的本地 VS Code 安装透明地与源代码和运行时环境在其他机器(无论是虚拟还是物理)上进行交互。当你连接到远程端点时,VS Code 会快速安装 VS Code Server,并且该服务器可以托管直接与远程工作区、机器和文件系统交互的扩展。

我们已经将此 VS Code Server 后端组件作为一个可以自行运行的服务发布(你可以在 其文档 中阅读更多内容),而不仅仅是由远程开发扩展单独安装和管理。

访问 VS Code Server 涉及几个组件:

  • VS Code Server:使 VS Code 远程体验成为可能的后端服务器。
  • 远程 - 隧道扩展:促进连接到远程机器的扩展,在该机器上运行着服务器实例。

作为扩展作者,我需要做什么?

VS Code 扩展 API 抽象了本地/远程细节,因此大多数扩展无需修改即可工作。但是,考虑到扩展可以使用它们想要的任何节点模块或运行时,有时可能需要进行调整。我们建议你测试你的扩展,以确保不需要更新。有关详细信息,请参阅支持远程开发

多个用户或客户端可以同时访问同一个远程实例吗?

不能,服务器的一个实例设计为一次只能由一个用户或客户端访问。

我如何移除隧道或机器?

如果你想停止通过 CLI 运行的隧道,可以使用 Ctrl + C 结束活动的隧道。如果你已通过 VS Code UI 启用隧道,你可以在 VS Code 中运行命令 Remote Tunnels: Turn off Remote Tunnel Access...

你可以在该机器上运行 code tunnel unregister 来移除机器与隧道的关联。你也可以打开任何 VS Code 客户端,选择远程资源管理器视图,右键点击你想移除的机器,然后选择 unregister

隧道是如何安全的?

托管和连接隧道都需要在两端使用相同的 Github 或 Microsoft 帐户进行身份验证。在这两种情况下,VS Code 都将向 Azure 中托管的服务发出出站连接;通常不需要防火墙更改,并且 VS Code 不会设置任何网络监听器。

一旦你从远程 VS Code 实例连接,就会通过隧道建立 SSH 连接,以提供端到端加密。当前此加密的首选密码是 CTR 模式下的 AES 256,实现此功能的代码是 开源的

你可以在 其文档 中了解更多关于底层开发隧道服务的安全性信息。

隧道服务有使用限制吗?

为了避免滥用底层隧道服务,对隧道数量和带宽等资源设置了使用限制。我们预计大多数用户永远不会达到这些限制。

例如,目前你的帐户可以注册 10 个隧道。如果你想创建一个新隧道,并且已经注册了 10 个其他隧道,CLI 将随机选择一个未使用的隧道并删除它。请注意,此限制可能会更改。

我可以在我的组织中配置策略吗?

如果你所属的组织希望控制端口转发的访问,可以通过允许或拒绝访问域 global.rel.tunnels.api.visualstudio.com 来实现。

对于使用 Windows 设备的用户,您还可以配置并部署开发隧道的组策略设置。您可以在 开发隧道文档 中了解更多信息。

我如何确保我的隧道持续运行?

你有几个选择:

  • 使用 service 命令作为服务运行。你可以运行 code tunnel service installcode tunnel service uninstall 来安装和移除它们。
  • 使用 no-sleep 选项,即 code tunnel --no-sleep,以防止远程机器进入睡眠状态。

code CLI 文档 中所述,你可以通过 code tunnel --help 探索所有可能的 CLI 命令和选项。

在使用隧道时,我可以使用其他远程开发扩展或开发容器吗?

是的!目前,你可以通过远程 - 隧道连接到 WSL开发容器

© . This site is unofficial and not affiliated with Microsoft.