Visual Studio Code Server
Visual Studio Code Server 是一种可以运行在远程开发机器(例如您的台式电脑或虚拟机 (VM))上的服务。它允许您通过本地 VS Code 客户端从任何地方安全地连接到该远程机器,而无需 SSH。
什么是 VS Code Server?
在 VS Code 中,我们希望用户能够无缝地利用让他们最高效的环境。VS Code 远程开发扩展 允许您直接在 VS Code 中使用适用于 Linux 的 Windows 子系统 (WSL)、通过 SSH 连接的远程机器和开发容器。这些扩展会在远程环境中安装一个服务器,使本地 VS Code 能够顺畅地与远程源代码和运行时进行交互。
现在我们提供一个独立的“VS Code Server”,它是一种基于远程扩展所使用的相同底层服务器构建的服务,并增加了一些附加功能,例如交互式 CLI 以及促成与 vscode.dev 的安全连接。
架构
无论您以何种方式使用编辑器(无论是本地还是远程,桌面版还是浏览器版),我们都希望提供统一的 VS Code 体验。
对 VS Code Server 的访问已内置到现有的 code
CLI 中。
CLI 会在 VS Code 客户端和您的远程机器之间建立隧道。隧道技术可以安全地将数据从一个网络传输到另一个网络。
VS Code Server 体验包含几个组件:
- VS Code Server:使其 VS Code 远程体验成为可能的后端服务器。
- Remote - Tunnels 扩展:自动加载到您的本地 VS Code 客户端中,它有助于连接到远程机器。
场景
VS Code Server 允许您以新的方式使用 VS Code,例如:
- 在 SSH 支持可能受限或需要基于 Web 的访问的远程机器上进行开发。
- 在不支持安装 VS Code 桌面版的机器上进行开发,例如 iPad / 平板电脑或 Chromebook。
- 体验所有代码都可以在浏览器沙盒中执行的客户端安全优势。
入门
您可以选择以下两种方式来启用隧道,这些方式在其各自的文档内容中有更详细的描述:
可以尝试的内容
许可和其他命令
首次运行 VS Code Server 时,系统会提示您接受许可条款。您可以在此处查看 VS Code Server 的许可。
* 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).
您可以通过运行 code -h
来探索 CLI 的其他命令,并通过运行 code tunnel -help
来专门探索隧道命令。
扩展命令
与 CLI 一样,VS Code Remote Tunnels 扩展也有其他命令供您探索,只需在 VS Code 中打开命令面板 (F1
) 并输入 Remote Tunnels 即可。您可以在 Remote Tunnels 文档中了解更多信息。
遥测
如果要禁用遥测,可以在启动 VS Code Server 时传入 --disable-telemetry
参数:code tunnel --disable-telemetry
。另外,如果您想指定初始遥测级别,例如只收集错误,可以传入 --telemetry-level
参数,后跟级别(例如,error
)。
如果未通过 CLI 禁用遥测,VS Code Server 将在成功连接后开始遵守客户端的遥测设置(您在 vscode.dev 或桌面版中的遥测设置)。
常见问题
VS Code Server 是否设计用于多个用户访问同一个远程实例?
否,服务器的实例设计为由单个用户访问。
我可以将 VS Code Server 作为服务托管吗?
否,根据 VS Code Server 许可的规定,不允许将其作为服务托管。
是否有 VS Code Server 使用的终结点列表?
如果您在受限环境中工作,可能需要确保 VS Code Server 可以访问以下文章中列出的终结点:
- https://vscode.js.cn/docs/setup/network#_common-hostnames
- https://vscode.js.cn/docs/remote/ssh#_what-are-the-connectivity-requirements-for-the-vs-code-server-when-it-is-running-on-a-remote-machine-vm
是否还有其他扩展限制?
使用基于 Web 的 VS Code 实例时,不支持纯 UI 扩展,您可以在扩展作者的 远程开发指南中了解更多信息。
是否存在浏览器限制?
在浏览器中工作时,需要考虑一些限制和配置步骤。您可以在 Web 版 VS Code 文档中阅读更多相关信息。
如何保持 VS Code Server 最新?
如果有更新可用,当您连接到远程机器时,会在 VS Code 中收到通知,并且您将能够直接通过此通知进行更新。
我看到一个关于密钥环存储的错误。我该怎么办?
设置同步需要对 Settings Sync 服务器进行身份验证。相应的密钥会保留在服务器上。这需要在服务器上设置密钥环。如果未设置密钥环,VS Code Server 会回退到存储在服务器内存中的密钥。在这种情况下,密钥仅在服务器的生命周期内保留。
此问题提供了更多背景信息,可能有助于您排除故障。如果您仍然遇到问题,请随时在 VS Code Remote GitHub 仓库中提交新问题。
我可以在哪里提供反馈或报告问题?
如果您有任何问题或反馈,请在 VS Code Remote GitHub 仓库中提交问题。提交问题时,请包含详细日志,您可以通过使用 -v
标志启动 VS Code Server 来启用详细日志:code -v tunnel
。
您可以使用 code-server
标签来筛选仅 VS Code Server 相关的问题。