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 市场*.gallery.vsassets.io
- Visual Studio 市场*.gallerycdn.vsassets.io
- Visual Studio 市场rink.hockeyapp.net
- 崩溃报告服务bingsettingssearch.trafficmanager.net
- 产品内设置搜索vscode.search.windows.net
- 产品内设置搜索raw.githubusercontent.com
- GitHub 存储库原始文件访问vsmarketplacebadges.dev
- Visual Studio 市场徽章服务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 设置同步服务(内部人员)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 中无缝工作。
支持的身份验证方法是
- 基本
- 摘要
- NTLM
- 协商
在经过身份验证的 HTTP 代理后面使用 VS Code 时,应出现以下身份验证弹出窗口
请注意,尚未实现 SOCKS5 代理身份验证支持;您可以关注 Chromium 问题跟踪器中的问题。
请参阅 Chromium HTTP 身份验证 以详细了解 VS Code 中的 HTTP 代理身份验证。
SSL 证书
HTTPS 代理通常会重写传入请求的 SSL 证书。Chromium 被设计为拒绝由其不信任的证书签名的响应。如果您遇到任何 SSL 信任问题,您可以选择以下几种选项
- 由于 Chromium 使用操作系统的证书信任基础结构,因此首选选项是将代理的证书添加到操作系统的信任链中。请参阅 Chromium 根证书策略 文档以了解更多信息。
- 如果您的代理在
localhost
上运行,您始终可以尝试 --allow-insecure-localhost 命令行标志。 - 如果所有其他方法都失败,您可以告诉 VS Code 使用 --ignore-certificate-errors 命令行标志忽略所有证书错误。警告:这很危险并且不建议,因为它会打开安全漏洞。
传统代理服务器支持
扩展尚未从 VS Code 支持的相同代理支持中受益。您可以在 GitHub 中关注此问题的开发。
与扩展类似,VS Code 的一些其他功能尚未完全支持代理网络,即 CLI 界面。CLI 界面是您从命令提示符或终端运行 code --install-extension vscodevim.vim
时获得的界面。您可以在 GitHub 中关注此问题的开发。
由于这两个限制,http.proxy、http.proxyStrictSSL 和 http.proxyAuthorization 变量仍然是 VS Code 设置的一部分,但它们仅在这两种情况下受尊重。
故障排除
以下是一些可能有助于您解决 VS Code 中网络问题的有用链接