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 链接转发服务vscode.blob.core.windows.net
- Visual Studio Code blob 存储,用于远程服务器marketplace.visualstudio.com
- Visual Studio Marketplace*.gallery.vsassets.io
- Visual Studio Marketplace*.gallerycdn.vsassets.io
- Visual Studio Marketplacerink.hockeyapp.net
- 崩溃报告服务bingsettingssearch.trafficmanager.net
- 产品内设置搜索vscode.search.windows.net
- 产品内设置搜索raw.githubusercontent.com
- GitHub 存储库原始文件访问vsmarketplacebadges.dev
- Visual Studio Marketplace 徽章服务az764295.vo.msecnd.net
- Visual Studio Code 下载 CDN (已弃用)vscode.download.prss.microsoft.com
- Visual Studio Code 下载 CDNdownload.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 网络设置。
身份验证的代理
身份验证的代理应在 VS Code 中无缝工作,并添加了 PR #22369。
支持的身份验证方法是
- 基本
- 摘要
- NTLM
- 协商
在经过身份验证的 HTTP 代理后面使用 VS Code 时,应出现以下身份验证弹出窗口
请注意,尚未实现 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.proxy、http.proxyStrictSSL 和 http.proxyAuthorization 变量仍是 VS Code 设置的一部分,但它们仅在这两种情况下受到尊重。
故障排除
以下是一些有用的链接,可能有助于您对 VS Code 中的网络问题进行故障排除