如果你正在使用公司设备并且正连接到公司网络,则可能是通过 VPN 或 HTTP 代理服务器连接到 Internet。 在某些情况下,这些类型的网络设置可能会阻止 GitHub Copilot 连接到 GitHub 的服务器。 有关为 GitHub Copilot 设置代理的选项的更多信息,请参阅 为 GitHub Copilot 配置网络设置。
本文提供针对与 HTTP 代理和自定义证书相关的常见问题的指导。 如果使用防火墙,这也可能会干扰 GitHub Copilot 的连接。 有关详细信息,请参阅 GitHub Copilot 防火墙设置故障排除。
诊断网络问题
如果要排除网络问题,发出 curl 请求以测试连接可能会有所帮助。 如果你添加了 --verbose 标志,这些请求将为你提供更多信息用于诊断问题,或与你公司的 IT 部门或 GitHub 支持 共享。 可以通过 GitHub 支持 联系 GitHub 支持门户。
若要检查是否可以从您的环境中访问至少一部分的 GitHub 终结点,可以从命令行运行以下命令。
curl --verbose https://copilot-proxy.githubusercontent.com/_ping
curl --verbose https://copilot-proxy.githubusercontent.com/_ping
如果能够连接,你应该会收到 HTTP 200 响应。
如果你知道自己正在通过 HTTP 代理进行连接,则可以检查通过代理发出的请求是否成功。 在以下示例中,将 YOUR-PROXY-URL:PORT 替换为代理的详细信息。
curl --verbose -x http://YOUR-PROXY-URL:PORT -i -L https://copilot-proxy.githubusercontent.com/_ping
curl --verbose -x http://YOUR-PROXY-URL:PORT -i -L https://copilot-proxy.githubusercontent.com/_ping
如果收到与“吊销证书”相关的错误,可以使用 --insecure 标志再次尝试该请求。 如果请求仅在添加 --insecure 标志时成功,则这可能表示 GitHub Copilot 仅在忽略证书错误时才会成功连接。 有关更多信息,请参阅排查证书相关错误。
如果你在编辑器中使用 副驾驶聊天 时遇到特定问题,请运行上述 curl 命令,但使用 https://api.githubcopilot.com/_ping 代替 https://copilot-proxy.githubusercontent.com/_ping。
如果无法连接,且 curl 请求无法确定错误,则在编辑器中收集详细的诊断日志可能会有所帮助。 如果你正在与公司的 IT 部门或 GitHub 支持 合作,共享这些诊断信息可能有助于解决错误。 在编辑器中启用调试日志记录有助于共享更具体的信息。 有关详细信息,请参阅 查看环境中GitHub Copilot 的日志。
代理错误疑难解答
如果代理设置出现问题,可能会看到以下错误:GitHub Copilot could not connect to server. Extension activation failed: "read ETIMEDOUT" or "read ECONNRESET"。 此错误可能是由网络问题所致。
如果你知道自己正在通过代理进行连接,请确保在环境中正确配置了代理。 有关详细信息,请参阅 为 GitHub Copilot 配置网络设置。
注意
如果你是使用代理服务器的公司的员工,你的公司还必须在公司级别为 Copilot 配置代理设置。 请参阅 Copilot 允许列表参考。
GitHub Copilot 使用自定义代码连接到代理。 这意味着编辑器支持的代理设置不一定受 GitHub Copilot 支持。 导致代理相关错误的一些常见原因有:
- 如果代理的 URL 启动
https://,则表示 GitHub Copilot 当前不支持该 URL。 - 可能需要向代理进行身份验证。 GitHub Copilot 支持使用 Kerberos 进行基本身份验证或身份验证。 如果你使用的是 Kerberos,请确保你具有代理服务的有效票证,并且使用的是服务的正确服务主体名称。 有关详细信息,请参阅 为 GitHub Copilot 配置网络设置。
- GitHub Copilot 可能会拒绝自定义证书。 有关更多信息,请参阅排查证书相关错误。
排查证书相关错误
根据代理设置,你可能会遇到“证书签名失败”、“自定义证书”或“无法验证第一个证书”等错误。 这些错误通常是由使用自定义证书拦截和检查安全连接的公司代理设置引起的。
解决证书相关错误的一些可能方法有:
-
配置其他代理不截获安全连接。
-
如果你使用的是公司代理,请联系 IT 部门,了解他们是否可以将代理配置为不拦截安全连接。
-
请确保将自定义证书正确安装在操作系统的信任存储中。 有关详细信息,请参阅 为 GitHub Copilot 配置网络设置。 如果证书已安装在你的计算机上,但 GitHub Copilot 未检测到它们,则了解 GitHub Copilot 用于查找证书的机制可能会有所帮助。
-
配置 GitHub Copilot 以忽略证书错误。 在代理设置中,可以在 Visual Studio Code 中取消选择代理严格 SSL,或在 JetBrains IDE 中选择自动接受不受信任的证书。 有关详细信息,请参阅 为 GitHub Copilot 配置网络设置。
警告
忽略证书错误可能会导致安全问题,因此不建议这样做。
安全软件相关证书错误疑难解答
如果你或你的组织利用安全软件监控安全的 Web 流量,并且你收到“无法验证第一个证书”错误,则可能需要为 IDE 和/或 Copilot 扩展配置例外情况。
有关如何配置例外情况的更多信息,请咨询安全软件供应商。