Skip to content

在企业网络环境中,Copilot 需要通过代理才能访问 GitHub。本页介绍如何配置 HTTP 代理(含 Kerberos 认证)、添加自定义 SSL 证书、以及配置防火墙白名单,确保 Copilot 在内网受限或有流量审查的环境下正常使用。

GitHub Copilot 网络设置:企业代理、证书与防火墙配置指南

默认连接方式

默认情况下,Copilot 直接与 GitHub 服务端建立加密连接,不需要特别的网络配置。但在以下常见企业网络场景中,需要额外配置:

  • 公司网络强制要求所有出站流量走代理
  • 中间设备(如安全网关)进行 SSL 解密,使用内部 CA 签发证书
  • 防火墙限制了对特定域名的访问

HTTP 代理配置

代理 URL 格式要求

  • 代理 URL 必须以 http:// 开头(不是 https://
  • 支持基础认证(用户名/密码)和 Kerberos 认证
  • 格式示例:http://username:password@proxy.company.com:8080

配置方式

方式一:IDE 内配置(推荐)

在编辑器的 Copilot 设置中直接设置代理 URL。

方式二:环境变量

如果编辑器内未设置,Copilot 会按以下优先级读取环境变量:

  1. HTTPS_PROXY
  2. https_proxy
  3. HTTP_PROXY
  4. http_proxy

注意:Copilot 对 HTTP 和 HTTPS 请求会使用同一代理配置,不做区分。

Kerberos 认证代理

使用 Kerberos 认证的企业代理需要额外配置:

前置条件

  • 系统已安装 krb5 库
  • 当前用户有代理服务对应的活跃 Kerberos ticket

设置 Kerberos SPN(服务主体名称)

在 VS Code 或 JetBrains 中,设置环境变量:

bash
export AGENT_KERBEROS_SERVICE_PRINCIPAL=HTTP/proxy.company.com@COMPANY.COM

SSL 证书配置

使用自定义证书的场景

当企业网络对 HTTPS 流量进行 SSL 解密时(常见于安全审计、流量监控场景),需要将企业内部 CA 证书信任链告知 Copilot。

配置方法

Copilot 默认使用操作系统的证书信任库(Windows 的受信任根证书颁发机构、macOS 的 Keychain)。

追加额外证书

设置环境变量 NODE_EXTRA_CA_CERTS,指向 PEM 格式的证书文件:

bash
export NODE_EXTRA_CA_CERTS=/etc/ssl/certs/company-ca-bundle.pem

这样 Copilot 在与代理建立 TLS 连接时,会将该证书视为受信任的 CA。

JetBrains 用户注意

JetBrains IDE 有独立的证书管理机制,需要在 IDE 的"证书"设置里单独添加企业 CA 证书,而不仅仅依赖系统信任库。

防火墙白名单

如果防火墙限制了出站连接,需要允许 Copilot 访问以下类型的端点:

  • GitHub 主域名(api.github.com、github.com)
  • Copilot API 端点(copilot-proxy.githubusercontent.com)
  • 用于遥测和模型推断的 GitHub 子域

完整的允许域名列表见 GitHub 官方文档的 "Allowlist reference" 页面,列表会随功能更新而变化,建议定期检查。

常见问题

Q: 设置了代理但 Copilot 仍然连接失败,怎么排查?

A: 按以下步骤排查:① 确认代理 URL 以 http:// 开头;② 在浏览器中测试代理是否可以访问 github.com;③ 检查是否有防火墙还在拦截 copilot-proxy.githubusercontent.com;④ 如用 Kerberos,确认 ticket 未过期(klist 命令查看)。

Q: 公司使用 SSL 解密网关,Copilot 报证书错误,怎么办?

A: 需要把公司 CA 根证书导出为 PEM 格式,然后通过 NODE_EXTRA_CA_CERTS 环境变量告诉 Copilot 信任该证书。Windows 下也可以把证书安装到系统的受信任根证书颁发机构列表,Copilot 会自动读取系统信任库。

Q: VS Code 和 JetBrains 的代理配置位置在哪里?

A: VS Code 中在 设置 → 扩展 → GitHub Copilot → Proxy 设置代理 URL;JetBrains 中在 设置 → 外观与行为 → 系统设置 → HTTP 代理,Copilot 会沿用 IDE 的代理配置。