VS Code Tunnel 使用

​[TOC]

Tunnel简介

在如今公网IP稀缺以及国内商业带宽十分昂贵的情况下,自己搭建内网穿透的服务器不仅成本高同时带宽小,而使用微软提供的中继服务器(虽然有安全风险),但是可以节省不少操作和成本。

Visual Studio Code Remote - Tunnels 扩展允许你通过安全隧道连接到远程计算机,如台式电脑或虚拟机 (VM)。可以从任何位置的 VS Code 客户端连接到该计算机,而无需 SSH。

隧道将数据从一个网络安全地传输到另一个网络。

这可以消除源代码位于 VS Code 客户端计算机上的需要,因为扩展直接在远程计算机上运行命令和其他扩展。

VS Code Tunnel 使用_第1张图片
VS Code 可以提供本地质量的开发体验,包括完整的智能感知(完成)、代码导航和调试,无论代码托管在何处。

开始

您有两种使用隧道的路径:

  • 运行命令行界面 (CLI) 的命令。tunnel code
  • 通过 VS 代码桌面 UI 启用隧道。
    这两种路径会产生相同的隧道功能 - 您可以使用最适合您的工具。如果无法在远程计算机上安装完整的 VS Code 桌面,CLI 是一个不错的选择。如果你已经在 VS Code 中执行一些工作,然后想要为当前计算机启用隧道,则使用 VS Code 桌面 UI 非常方便。

我们将在下面的部分中介绍使用命令行的方式创建隧道。

使用“代码”CLI

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

  1. 在要从 VS Code 客户端进行开发的远程计算机上安装 CLI。CLI 在 VS Code 客户端和远程计算机之间建立隧道。CLI 自动内置到 VS Code Desktop 中 – 无需额外设置。
    或者,您可以通过下载页面上的独立安装获取 CLI,该页面独立于 VS Code 桌面安装:
    VS Code Tunnel 使用_第2张图片
    还可以通过远程计算机的终端安装和解压缩 CLI。如果您的VS Code没有 UI,这可能特别有用:
curl -Lk 'https://code.visualstudio.com/sha/download?build=stable&os=cli-alpine-x64' --output vscode_cli.tar.gz

tar -xf vscode_cli.tar.gz

ll //这里可以看到有一个名为 code 的可执行文件。

注意:如果使用的是CLI安装,则下面的命令将以 ./code 开头,而不是以 code 开头。

  1. 创建安全隧道

使用以下命令创建安全隧道

code tunnel

此命令下载并启动此计算机上的 VS Code 服务器,然后创建到该服务器的隧道。

VS Code Tunnel 使用_第3张图片

注意:首次在计算机上启动隧道时,系统将提示您接受服务器许可条款。您也可以传递命令行以避免提示。–accept-server-license-terms

  1. 此 CLI 将输出与此远程计算机绑定的 vscode.dev URL,例如 。您可以在您选择的客户端上打开此 URL

https://vscode.dev/tunnel//

  1. 首次在此客户端上打开 vscode.dev URL 时,系统会提示您通过 URL 登录您的 GitHub 帐户。这会对隧道服务进行身份验证,以确保您可以访问正确的远程计算机集。

https://github.com/login/oauth/authorize...

后台启动

在学习使用tunnel的时候,查找到了这篇文章[VSCode] VSCode Tunnel - VSCode隧道安装篇,里面有详细说明如何设置自启动和后台运行,我没有使用该方法,而是使用nohup命令。

常见问题

远程隧道、VS 代码服务器和远程开发之间的关系是什么?
Visual Studio Code Remote Development 允许您使用容器、远程计算机或 Windows Linux 子系统 (WSL) 作为功能齐全的开发环境。

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

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

访问 VS 代码服务器涉及几个组件:

VS 代码服务器:使 VS Code 远程体验成为可能的后端服务器。
远程 - 隧道扩展:便于连接到远程计算机的扩展,其中正在运行服务器实例。
作为扩展作者,我需要做什么?
VS Code 扩展 API 抽象出本地/远程详细信息,因此大多数扩展无需修改即可工作。但是,鉴于扩展可以使用它们想要的任何节点模块或运行时,在某些情况下可能需要进行调整。建议测试扩展以确保不需要更新。有关详细信息,请参阅支持远程开发。

多个用户或客户端是否可以同时访问同一个远程实例?
否,服务器实例设计为一次由一个用户或客户端访问。

如何移除隧道或机器?
如果要停止通过 CLI 运行的隧道,可以使用 Ctrl + C 结束活动隧道。如果已通过 VS Code UI 启用隧道,则可以在 VS Code 中运行命令“远程隧道:关闭远程隧道访问…”。

您可以通过在该计算机上运行来删除计算机与隧道的关联。还可以打开任何 VS Code 客户端,选择“远程资源管理器”视图,右键单击要删除的计算机,然后选择“注销”。code tunnel unregister

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

从远程 VS Code 实例连接后,将通过隧道创建 SSH 连接,以提供端到端加密。此加密的当前首选密码是 CTR 模式下的 AES 256,实现此加密的代码是开源的。

如果您是想要控制对远程隧道的访问的组织的一部分,则可以通过允许或拒绝对域的访问来实现。global.rel.tunnels.api.visualstudio.com

参考

  1. Developing with Remote Tunnels

你可能感兴趣的:(服务器,网络,运维)