[TOC]
在如今公网IP稀缺以及国内商业带宽十分昂贵的情况下,自己搭建内网穿透的服务器不仅成本高同时带宽小,而使用微软提供的中继服务器(虽然有安全风险),但是可以节省不少操作和成本。
Visual Studio Code Remote - Tunnels 扩展允许你通过安全隧道连接到远程计算机,如台式电脑或虚拟机 (VM)。可以从任何位置的 VS Code 客户端连接到该计算机,而无需 SSH。
隧道将数据从一个网络安全地传输到另一个网络。
这可以消除源代码位于 VS Code 客户端计算机上的需要,因为扩展直接在远程计算机上运行命令和其他扩展。
VS Code 可以提供本地质量的开发体验,包括完整的智能感知(完成)、代码导航和调试,无论代码托管在何处。
您有两种使用隧道的路径:
我们将在下面的部分中介绍使用命令行的方式创建隧道。
您可以通过 CLI 创建和使用隧道。
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
开头。
使用以下命令创建安全隧道
code tunnel
此命令下载并启动此计算机上的 VS Code 服务器,然后创建到该服务器的隧道。
注意:首次在计算机上启动隧道时,系统将提示您接受服务器许可条款。您也可以传递命令行以避免提示。–accept-server-license-terms
https://vscode.dev/tunnel/
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