GitHub Copilot "连接失败" 排查指南
当服务器上的 VS Code 出现 GitHub Copilot "连接失败" 时,请按以下步骤逐步排查网络与权限问题:
一、基础网络检查
-
服务器网络连通性测试
在终端执行以下命令:
bashping copilot-proxy.githubusercontent.com- 若超时 → 检查服务器防火墙设置
- 若正常 → 执行
telnet copilot-proxy.githubusercontent.com 443- 连接失败 → 443 端口被阻断
-
代理配置验证
在 VS Code 设置中检查:
json"http.proxy": "http://your-proxy:port", "https.proxy": "http://your-proxy:port"- 若使用代理 → 确保代理服务器可访问
*.github.com域名 - 无代理 → 跳过此步
- 若使用代理 → 确保代理服务器可访问
二、防火墙与端口排查
-
服务器防火墙规则
检查是否放行出站流量:
bashsudo ufw status # Ubuntu firewall-cmd --list-ports # CentOS- 需确保放行:443 (HTTPS) 和 80 (HTTP) 端口
-
企业级防火墙限制
-
联系运维确认是否屏蔽 GitHub 域名
-
关键域名白名单:
*.github.com *.githubusercontent.com api.github.com
-
三、权限与认证问题
-
GitHub 账户权限
- 访问 GitHub Copilot 订阅页面
- 确认账户状态为 Active
- 检查是否开启双重认证(2FA)
-
VS Code 认证重置
在 VS Code 执行:
bashCtrl+Shift+P > GitHub Copilot: Sign Out 重新登录 GitHub 账户 -
令牌有效性检查
- 访问 GitHub 个人令牌页面
- 确保
copilot_token未过期且具有repo和user权限
四、服务端诊断
-
Copilot 服务状态
访问 GitHub Status 查看 Copilot 服务是否正常
-
日志分析
在 VS Code 输出面板选择 GitHub Copilot 查看错误详情:
[ERROR] Connection failed: ETIMEDOUT 140.82.113.26:443常见错误码:
ETIMEDOUT→ 网络阻塞401 Unauthorized→ 令牌失效403 Forbidden→ IP 被限制
五、高级解决方案
-
强制刷新 DNS
bashsudo systemd-resolve --flush-caches # Linux ipconfig /flushdns # Windows Server -
修改 hosts 文件(临时)
添加解析:
140.82.113.26 copilot-proxy.githubusercontent.com -
使用 SSH 隧道绕过限制
通过本地机器建立隧道:
bashssh -L 8080:copilot-proxy.githubusercontent.com:443 user@server然后在 VS Code 中设置代理:
json"http.proxy": "http://localhost:8080"
最终验证
重启 VS Code 后执行测试:
- 新建
.js文件并输入function- 观察是否出现 Copilot 代码建议
- 检查输出面板是否有新错误日志
若仍失败,请提供以下信息进一步排查:
- 服务器操作系统版本
- VS Code 及 Copilot 扩展版本
- 完整的 Copilot 输出日志片段