尝试以扩展 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 设置同步服务 (Insiders)
  • 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 问题跟踪器中的问题

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

SSL 证书

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

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

旧版代理服务器支持

扩展尚不能从 VS Code 支持的相同代理支持中受益。您可以在 GitHub 上关注此问题的进展。

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

由于这两个限制,http.proxyhttp.proxyStrictSSLhttp.proxyAuthorization 变量仍然是 VS Code 设置的一部分,但它们仅在这两种情况下受到尊重。

故障排除

以下是一些有助于您解决 VS Code 中网络问题的有用链接