Visual Studio 代码服务器

Visual Studio Code Server 是一项可以在远程开发计算机(例如台式电脑或虚拟机 (VM))上运行的服务。它允许您通过本地 VS Code 客户端从任何地方安全地连接到该远程计算机,而无需 SSH。

什么是 VS Code 服务器?

在 VS Code 中,我们希望用户能够无缝地利用使他们最高效的环境。VS Code 远程开发扩展允许您直接从 VS Code 在适用于 Linux 的 Windows 子系统 (WSL)、通过 SSH 的远程计算机以及 Dev Containers 中工作。这些扩展在远程环境上安装服务器,允许本地 VS Code 与远程源代码和运行时顺利交互。

我们现在提供一个独立的“VS Code 服务器”,这是一项基于远程扩展使用的同一底层服务器构建的服务,以及一些附加功能,例如交互式 CLI 和促进与 vscode.dev 的安全连接。

vscode.dev 连接到 VS Code 服务器

建筑学

无论您如何使用编辑器,无论是本地还是远程、在桌面还是在浏览器中,我们都希望提供统一的 VS Code 体验。

对 VS Code 服务器的访问内置于现有的codeCLI中。

CLI 在 VS Code 客户端和远程计算机之间建立隧道。隧道将数据从一个网络安全地传输到另一个网络。

VS Code 服务器架构

VS Code Server 体验包括几个组件:

  • VS Code 服务器:使 VS Code 远程体验成为可能的后端服务器。
  • 远程 - 隧道扩展:自动加载到本地 VS Code 客户端中,它有助于连接到远程计算机。

应用场景

VS Code 服务器允许您以新的方式使用 VS Code,例如:

  • 在 SSH 支持可能有限的远程计算机上进行开发,或者您需要基于 Web 的访问。
  • 在不支持安装 VS Code 桌面的机器上进行开发,例如 iPad/平板电脑或 Chromebook。
  • 体验所有代码都可以在浏览器沙箱中执行的客户端安全优势。

入门

您可以从两条路径中进行选择来启用隧道,这在各自的文档内容中有更详细的描述:

值得尝试的事情

许可和其他命令

首次运行 VS Code 服务器时,系统会提示您许可证条款。您可以在此处查看 VS Code 服务器的许可证。

* Visual Studio Code Server
*
* By using the software, you agree to
* the Visual Studio Code Server License Terms (https://aka.ms/vscode-server-license) and
* the Microsoft Privacy Statement (https://privacy.microsoft.com/en-US/privacystatement).

您可以通过运行来探索 CLI 的其他命令code -h,特别是通过运行来探索隧道命令code tunnel -help

隧道帮助 CLI 命令的输出

扩展命令

与 CLI 一样,VS Code 远程隧道扩展具有其他命令,您可以通过F1在 VS Code 中打开命令面板 ( ) 并输入Remote Tunnels来探索。您可以在远程隧道文档中了解更多信息。

遥测

如果要禁用遥测,可以--disable-telemetry在启动 VS Code Server 时传入:code tunnel --disable-telemetry。或者,如果您想指定初始遥测级别(例如仅收集错误),则可以传入--telemetry-level后跟级别(例如error)。

如果未通过 CLI 禁用遥测,则 VS Code 服务器将在成功连接后开始遵循客户端遥测设置(vscode.dev 或桌面中的遥测设置)。

常见问题

VS Code 服务器是否设计用于多个用户访问同一远程实例?

不,服务器实例设计为由单个用户访问。

我可以将 VS Code 服务器作为服务托管吗?

不可以,根据VS Code 服务器许可证中的规定,不允许将其作为服务托管。

是否有 VS Code 服务器使用的端点列表?

如果您在受限环境中工作,您可能需要确保 VS Code 服务器可以访问以下端点:

  • https://vscode.github.net.cn/docs/setup/network#_common-hostnames
  • https://vscode.github.net.cn/docs/remote/ssh#_what-are-the-connectivity-requirements-for-the-vs-code-server-when-it-is-running-on-a-remote-机器虚拟机

还有其他扩展限制吗?

使用基于 Web 的 VS Code 实例时,不支持纯 UI 扩展,您可以在扩展作者远程开发指南中了解更多信息。

有浏览器限制吗?

在浏览器中工作时,需要考虑某些限制和配置步骤。您可以在VS Code for Web文档中阅读有关此内容的更多信息。

如何使 VS Code 服务器保持最新?

如果有可用更新,当您连接到远程计算机时,您将在 VS Code 中收到通知,并且您将能够通过此通知直接进行更新。

我看到有关密钥环存储的错误。我应该怎么办?

设置同步需要针对设置同步服务器进行身份验证。相应的秘密保存在服务器上。这需要在服务器上设置密钥环。如果未设置密钥环,VS Code 服务器将回退到存储在服务器上的内存中机密。在这种情况下,秘密仅在服务器的生命周期内保留。

此问题提供了更多背景信息,可能会帮助您排除故障。如果您仍然遇到问题,请随时在VS Code Remote GitHub 存储库中提交新问题。

我可以在哪里提供反馈或报告问题?

如果您有任何问题或反馈,请在VS Code Remote GitHub 存储库中提出问题。提交问题时,请包含详细日志记录,您可以通过使用以下标志启动 VS Code 服务器来启用该日志记录-vcode -v tunnel

您可以仅使用标签过滤 VS Code Servercode-server问题