Appearance
在企业网络环境中,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 会按以下优先级读取环境变量:
HTTPS_PROXYhttps_proxyHTTP_PROXYhttp_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.COMSSL 证书配置
使用自定义证书的场景
当企业网络对 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 的代理配置。