在 VS Code 中试试

Visual Studio Code 中的网络连接

Visual Studio Code 构建于 Electron 之上,并受益于 Chromium 的所有网络堆栈功能。这也意味着 VS Code 用户可以获得 Google Chrome 中提供的许多网络支持。

常见主机名

VS Code 中的少数功能需要网络通信才能工作,例如自动更新机制、查询和安装扩展以及遥测。为了使这些功能在代理环境中正常工作,必须正确配置产品。

如果您位于需要允许 VS Code 使用的特定域的防火墙后面,以下是您应该允许通信通过的主机名列表

  • update.code.visualstudio.com - Visual Studio Code 下载和更新服务器
  • code.visualstudio.com - Visual Studio Code 文档
  • go.microsoft.com - Microsoft 链接转发服务
  • marketplace.visualstudio.com - Visual Studio Marketplace
  • *.gallery.vsassets.io - Visual Studio Marketplace
  • *.gallerycdn.vsassets.io - Visual Studio Marketplace
  • rink.hockeyapp.net - 崩溃报告服务
  • bingsettingssearch.trafficmanager.net - 产品内置设置搜索
  • vscode.search.windows.net - 产品内置设置搜索
  • raw.githubusercontent.com - GitHub 仓库原始文件访问
  • vsmarketplacebadges.dev - Visual Studio Marketplace 徽章服务
  • *.vscode-cdn.net - Visual Studio Code CDN
  • vscode.download.prss.microsoft.com - Visual Studio Code 下载 CDN
  • download.visualstudio.microsoft.com - Visual Studio 下载服务器,为某些 VS Code 扩展(C++、C#)提供依赖项
  • vscode-sync.trafficmanager.net - Visual Studio Code 设置同步服务
  • vscode-sync-insiders.trafficmanager.net - Visual Studio Code 设置同步服务(内测版)
  • vscode.dev - 用于通过 GitHub 或 Microsoft 登录以使用扩展或设置同步
  • *.vscode-unpkg.net - 用于加载 Web 扩展
  • default.exp-tas.com - Visual Studio Code 实验服务,用于提供实验性用户体验

代理服务器支持

VS Code 的代理服务器支持与 Google Chromium 完全相同。以下是摘自 Chromium 文档 的片段

"The Chromium network stack uses the system network settings so that users and administrators can control the network settings of all applications easily. The network settings include:

 - proxy settings
 - SSL/TLS settings
 - certificate revocation check settings
 - certificate and private key stores"

这意味着您的代理设置应该会自动获取。

否则,您可以使用以下命令行参数控制您的代理设置

# Disable proxy
--no-proxy-server

# Manual proxy address
--proxy-server=<scheme>=<uri>[:<port>][;...] | <uri>[:<port>] | "direct://"

# Manual PAC address
--proxy-pac-url=<pac-file-url>

# Disable proxy per host
--proxy-bypass-list=(<trailing_domain>|<ip-address>)[:<port>][;...]

要了解有关这些命令行参数的更多信息,请参阅 Chromium 网络设置

经过身份验证的代理

随着 PR #22369 的添加,经过身份验证的代理应该能在 VS Code 中无缝工作。

支持的身份验证方法包括

  • 基本 (Basic)
  • 摘要 (Digest)
  • NTLM
  • 协商 (Negotiate)

当在经过身份验证的 HTTP 代理后面使用 VS Code 时,应该会出现以下身份验证弹出窗口

proxy

请注意,SOCKS5 代理身份验证支持尚未实现;您可以在 Chromium 的问题跟踪器 中跟踪此问题。

有关 VS Code 中 HTTP 代理身份验证的更多信息,请参阅 Chromium HTTP 身份验证

SSL 证书

通常,HTTPS 代理会重写传入请求的 SSL 证书。Chromium 被设计为拒绝由其不信任的证书签名的响应。如果您遇到任何 SSL 信任问题,有以下几种选项可供您选择

  • 由于 Chromium 使用操作系统的证书信任基础设施,首选选项是将您的代理证书添加到您操作系统的信任链中。请参阅 Chromium 根证书策略 文档了解更多信息。
  • 如果您的代理在 localhost 中运行,您可以随时尝试 --allow-insecure-localhost 命令行标志。
  • 如果所有其他方法都失败了,您可以使用 --ignore-certificate-errors 命令行标志告诉 VS Code 忽略所有证书错误。警告: 这是危险的,不推荐这样做,因为它会带来安全问题。

旧版代理服务器支持

扩展尚未获得与 VS Code 相同的代理支持。您可以在 GitHub 中跟踪此问题的开发进展。

与扩展类似,其他一些 VS Code 功能也尚未完全支持代理网络,特别是 CLI 界面。当您从命令提示符或终端运行 code --install-extension vscodevim.vim 时,您将获得 CLI 界面。您可以在 GitHub 中跟踪此问题的开发进展。

由于这些限制,http.proxyhttp.proxyStrictSSLhttp.proxyAuthorization 变量仍然是 VS Code 设置的一部分,但它们仅在这些两种场景下才会被尊重。

故障排除

以下是一些可能帮助您排查 VS Code 中网络问题的有用链接