跳至主要内容

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 聊天的具体问题,请运行上述 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 的网络设置”。

注意

如果您是拥有代理服务器的公司员工,您的公司还必须在公司级别为 Copilot 配置代理设置。请参阅“为 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 的网络设置”。

    警告

    忽略证书错误可能会导致安全问题,因此不建议这样做。

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

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