跳至主要内容

GitHub Copilot 网络错误的故障排除

解决与代理和自定义证书相关的常见错误。

谁可以使用此功能?

GitHub Copilot 个人版或 GitHub Copilot 企业版。

如果您在公司设备上工作并连接到公司网络,您可能通过 VPN 或 HTTP 代理服务器连接到互联网。在某些情况下,这些类型的网络设置可能会阻止 GitHub Copilot 连接到 GitHub 的服务器。有关使用 GitHub Copilot 设置代理的选项的更多信息,请参阅 "为 GitHub Copilot 配置网络设置"。

本文档提供了有关 HTTP 代理和自定义证书的常见问题的指导。如果您使用防火墙,这也会干扰 GitHub Copilot 的连接。有关更多信息,请参阅 "GitHub Copilot 防火墙设置的故障排除"。

诊断网络问题

如果您正在排查网络问题,发出 curl 请求以测试您的连接可能会有所帮助。如果您添加 --verbose 标志,这些请求会提供更多信息来诊断问题,或与您公司的 IT 部门或 GitHub 支持部门共享。您可以通过 GitHub 支持门户 联系 GitHub 支持部门。

要检查您是否可以从您的环境访问 GitHub 的至少一些端点,您可以在命令行中运行以下命令。

Shell
curl --verbose https://copilot-proxy.githubusercontent.com/_ping

如果您能够连接,您应该收到一个 HTTP 200 响应。

如果您知道您是通过 HTTP 代理连接的,您可以检查请求是否通过代理成功发出。在以下示例中,将 YOUR-PROXY-URL:PORT 替换为您的代理详细信息。

Shell
curl --verbose -x http://YOUR-PROXY-URL:PORT -i -L https://copilot-proxy.githubusercontent.com/_ping

如果您收到与“证书吊销”相关的错误,您可以尝试使用 --insecure 标志再次发出请求。如果请求仅在添加 --insecure 标志时才成功,这可能表明 GitHub Copilot 只有在您忽略证书错误的情况下才能成功连接。有关更多信息,请参阅“解决证书相关错误”。

如果您在编辑器中特别难以使用 Copilot Chat,请运行上述 curl 命令,但使用 https://api.githubcopilot.com/_ping 而不是 https://copilot-proxy.githubusercontent.com/_ping

如果您无法连接并且 curl 请求无法帮助识别错误,收集编辑器中的详细诊断日志可能会有所帮助。如果您与公司的 IT 部门或 GitHub 支持 合作,共享这些诊断信息可能有助于解决错误。在您的编辑器中启用调试日志将帮助您共享更具体的信息。有关更多信息,请参阅“查看您环境中的 GitHub Copilot 日志”。

解决代理错误

如果您的代理设置存在问题,您可能会看到以下错误:GitHub Copilot 无法连接到服务器。扩展激活失败:“read ETIMEDOUT” 或 “read ECONNRESET”。此错误可能是由各种网络问题引起的。

如果您知道您是通过代理连接的,请确保代理在您的环境中配置正确。有关更多信息,请参阅“配置 GitHub Copilot 的网络设置”。

GitHub Copilot 使用自定义代码连接到代理。这意味着您的编辑器支持的代理设置不一定受 GitHub Copilot 支持。与代理相关的错误的一些常见原因是

  • 如果您的代理的 URL 以 https:// 开头,则目前不受 GitHub Copilot 支持。
  • 您可能需要对代理进行身份验证。GitHub Copilot 支持基本身份验证或 Kerberos 身份验证。如果您使用的是 Kerberos,请确保您拥有代理服务的有效票证,并且您正在使用服务的正确服务主体名称。有关更多信息,请参阅“配置 GitHub Copilot 的网络设置”。
  • GitHub Copilot 可能会拒绝自定义证书。有关更多信息,请参阅“解决证书相关错误”。

根据您的代理设置,您可能会遇到诸如“证书签名失败”、“自定义证书”或“无法验证第一个证书”之类的错误。这些错误通常是由使用自定义证书拦截和检查安全连接的企业代理设置引起的。

解决证书相关错误的一些可能方法是

  • 配置不拦截安全连接的不同代理。

  • 如果您使用的是企业代理,请联系您的 IT 部门,看看他们是否可以将代理配置为不拦截安全连接。

  • 确保自定义证书已正确安装在您的操作系统信任存储中。有关更多信息,请参阅“配置 GitHub Copilot 的网络设置”。如果证书已安装在您的机器上,但 GitHub Copilot 未检测到它们,那么了解 GitHub Copilot 用于查找证书的机制可能会有所帮助。

    • 在 Windows 上,Copilot 使用 win-ca 包
    • 在 macOS 上,Copilot 使用 mac-ca 包
    • 在 Linux 上,Copilot 检查标准 OpenSSL 文件 /etc/ssl/certs/ca-certificates.crt/etc/ssl/certs/ca-bundle.crt
  • 配置 GitHub Copilot 忽略证书错误。在您的代理设置中,您可以在 Visual Studio Code 中取消选中“代理严格 SSL”,或在 JetBrains IDE 中选择“自动接受不受信任的证书”。有关更多信息,请参阅“配置 GitHub Copilot 的网络设置”。

    警告:忽略证书错误会导致安全问题,不建议这样做。

如果您或您的组织使用监控安全网络流量的安全软件,并且收到“无法验证第一个证书”错误,您可能需要为您的 IDE 和/或 Copilot 扩展配置例外。

有关如何配置例外的更多信息,请咨询您的安全软件供应商。