事情是这样的。我一个同事刚入行,听说 GitHub Copilot 很好用,就在 VS Code 里装上了。结果装完后 Copilot 一直显示「Loading…」,等了五分钟还是转圈。点开右下角的 Copilot 状态栏,显示「Disconnected: GitHub Copilot is not connected to the server.」
他在群里问我:「哥,Copilot 装完了怎么一直在加载?」
我第一反应是:你网络被墙了。他人在国内,宽带是电信,VS Code 的插件市场虽然能访问,但 Copilot 的连接需要访问 GitHub Copilot 的 API 服务,这个服务在国内直连极其不稳定。
(实测)Copilot 一直「Loading…」的核心问题就一个——它在尝试连接 GitHub Copilot 的认证和补全服务,但你的网络连不到。不是装错了,不是插件坏了,就是网络问题。这篇文章就是写给国内用户看的——从最简单到最彻底的方案全列出来。
关于 Copilot 激活失败的另一种情况(认证阶段就报错),我写过另一篇 GitHub Copilot 激活失败 Request signin failed 修复指南。如果你连登录都没过,先看那篇。
在动配置之前,先花 10 秒确认问题是不是出在网络。
# 方法 1:看 VS Code 状态的输出(最直接)
# 按 Ctrl+Shift+P → 输入 Developer: Toggle Developer Tools
# 切换到 Console 面板,如果看到类似下面的报错:
#
# Failed to fetch https://api.githubcopilot.com/...
# net::ERR_CONNECTION_TIMED_OUT
# net::ERR_NAME_NOT_RESOLVED
#
# 100% 是网络问题
# 方法 2:用 curl 测试 Copilot API 的连接
curl -I https://api.githubcopilot.com 2>&1 | findstr "HTTP"
# 如果没反应或者报错:
# curl: (28) Failed to connect to api.githubcopilot.com port 443 after 30002 ms: Connection timed out
# 说明 Copilot 的服务在国内走不通,需要代理
(实测)我同事跑完 curl,显示「Connection timed out」。确认是网络问题后,我开始配代理。如果 curl 返回的是 HTTP/2 200,说明网络正常,问题在别的地方(比如 Cookie 过期、token 失效),按上面那篇激活失败的指南排查。
| 方案 | 操作难度 | 有效性 | 是否需要挂代理工具 |
|---|---|---|---|
| 方案 1:VS Code 全局代理设置 | ⭐(一行配置) | ⭐⭐⭐⭐⭐ | 是 |
| 方案 2:环境变量代理 | ⭐⭐(两行命令) | ⭐⭐⭐⭐⭐ | 是 |
| 方案 3:系统级代理 | ⭐⭐(系统设置) | ⭐⭐⭐⭐ | 是 |
| 方案 4:Git 代理设置 | ⭐(一行配置) | ⭐⭐⭐ | 是 |
| 方案 5:换不使用 Copilot(终极方案) | ⭐⭐⭐(装插件) | ⭐⭐⭐⭐ | 否 |
这是最优解。 VS Code 提供了一个全局代理配置项,设好后 VS Code 的所有网络请求(包括 Copilot、插件市场、Git 操作)都走你这个代理。
VS Code 设置 → Ctrl+,(逗号)
搜索 proxy
找到「Http: Proxy」设置项 → 填入你的代理地址
// VS Code settings.json
{
// ✅ 如果你用 Clash / V2Ray 等 HTTP 代理
"http.proxy": "http://127.0.0.1:7890",
// ✅ 如果你只有 SOCKS5 代理
// "http.proxy": "socks5://127.0.0.1:1080",
// ✅ 关闭 SSL 验证(如果你的代理截取了 HTTPS 流量)
"http.proxyStrictSSL": false,
// ✅ 代理支持的系统代理配置(如果你的代理设置了系统代理)
// "http.proxySupport": "on"
}
| 工具 | HTTP 端口 | SOCKS5 端口 | 推荐哪种方式 |
|---|---|---|---|
| Clash for Windows | 7890 | 7891 | HTTP(简单) |
| V2RayN | 10809 | 10808 | SOCKS5(更稳) |
| Shadowsocks | 不支持 HTTP | 1080 | SOCKS5(唯一选择) |
| Sing-Box | 7890 | 1080 | HTTP |
| Hiddify | 10809 | 10808 | SOCKS5 |
(实测)我同事用的是 Clash for Windows,默认端口是 7890。他配好后 Copilot 从「Loading…」直接变成正常补全。关键一步:他必须确认 Clash 开了「全局模式」而不是「规则模式」——规则模式下代理规则没有配 api.githubcopilot.com 的走代理,即使设了 proxy 也没用。
# Windows 系统代理端口查询
# 打开 PowerShell
Get-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings" | Select-Object ProxyServer, ProxyEnable
有些 VS Code 的插件不读取 VS Code 的 http.proxy 设置,它们直接读系统的环境变量。比 VS Code 配置更底层。
# PowerShell(管理员模式)
# 临时设置(只对当前窗口生效)
$env:HTTP_PROXY = "http://127.0.0.1:7890"
$env:HTTPS_PROXY = "http://127.0.0.1:7890"
# 永久设置(写入用户环境变量)
[Environment]::SetEnvironmentVariable("HTTP_PROXY", "http://127.0.0.1:7890", "User")
[Environment]::SetEnvironmentVariable("HTTPS_PROXY", "http://127.0.0.1:7890", "User")
# 验证
echo $env:HTTP_PROXY
# CMD
set HTTP_PROXY=http://127.0.0.1:7890
set HTTPS_PROXY=http://127.0.0.1:7890
# 永久设置(系统属性 → 环境变量)
# 或者用命令行:
setx HTTP_PROXY "http://127.0.0.1:7890"
setx HTTPS_PROXY "http://127.0.0.1:7890"
(实测)设完环境变量后必须重启 VS Code。因为 VS Code 启动时读一次环境变量,后面改的不会生效。我同事设完没重启又说「还是没用」,重启就好了。
# 重新打开 PowerShell 或 CMD
echo %HTTP_PROXY%
# 如果是空的,说明没写进去
# 检查你是不是在同一个窗口里运行的 set
如果你的代理工具支持系统代理模式,直接打开 Windows 的系统代理开关。
Windows 设置 → 网络和互联网 → 代理
手动设置代理 → 开启「使用代理服务器」
地址:127.0.0.1
端口:7890(按你的代理工具端口)
(实测)系统代理是最底层的方案,所有应用(浏览器、VS Code、Edge、微信等)都会走这个代理。但要注意:如果关了代理工具但是忘了关系统代理,所有应用都会断网。 建议只在测试时用这个,不建议长期开。
Copilot 的认证流程有一部分是通过 Git 完成的。如果 Git 连不上 GitHub,也会导致 Copilot 一直加载。
# 设置 Git 全局代理
git config --global http.proxy http://127.0.0.1:7890
git config --global https.proxy http://127.0.0.1:7890
# 验证
git config --global --get http.proxy
(实测)这一步不是必须的——如果你已经设了 VS Code 的 http.proxy,Copilot 的认证会走 VS Code 的代理,不用重复设 Git。但如果你在 VS Code 终端里跑 Git 命令连不上 GitHub,那就是 Git 层面需要设代理。
如果上面所有方案你都试了还是没用——可能是你所在地区的网络环境对代理工具也不友好(比如公司内网、或者限制使用代理软件)。
这种情况下我不建议继续折腾 Copilot 了。有一个不需要网络、不需要代理、不需要激活的替代方案:
# 搭一套完全离线的 AI 代码补全
# 只需要三个东西:
# 1. Ollama(本地大模型运行器)
# 2. Continue(VS Code 插件,支持本地模型)
# 3. Qwen2.5-Coder 7B(编程模型)
# 第一步:装 Ollama
curl -fsSL https://ollama.com/install.sh | sh
# 第二步:拉编程模型
ollama pull qwen2.5-coder:7b
# 第三步:VS Code 装 Continue 插件
# 在 Extensions 搜索 Continue,安装
Continue 插件安装完成后,在它的设置里添加 Ollama 作为模型后端:
// Continue 插件配置(~/.vscode/settings.json)
{
"continue.models": [
{
"title": "Local Qwen Coder",
"provider": "ollama",
"model": "qwen2.5-coder:7b",
"apiBase": "http://localhost:11434"
}
],
"continue.tabAutocompleteModel": {
"title": "Local Qwen Coder",
"provider": "ollama",
"model": "qwen2.5-coder:7b"
}
}
(实测)我同事最后没有修好 Copilot——他那边的网络环境太复杂,代理工具也跑不起来。我让他直接装了 Continue + Ollama。到现在用了两个月,他说:「习惯了,没感觉比 Copilot 差多少,最关键是不用管激活的事了。」
明确观点:如果你的网络环境实在不适合用云端的 AI 工具,本地方案是更好的选择。有网时用 DeepSeek API(国内直连,不需要代理),没网时用 Ollama 本地。
| 问题 | 原因 | 解法 |
|---|---|---|
| 设了 http.proxy 还在转圈 | 代理工具没开「全局模式」 | 切到全局模式,或给规则加 api.githubcopilot.com |
| Clash 开了全局还是不行 | Clash 端口不是 7890 | 确认 Clash 的 HTTP 端口号 |
| 设完代理后重启 VS Code 还在转圈 | 环境变量没设 | 用方案 2 设环境变量 |
| Copilot 偶尔能用偶尔转圈 | 代理不稳定 | 换一个代理节点,或改成本地模型 |
| Edge 浏览器正常,VS Code 不行 | VS Code 代理没设 | 确认 VS Code 的 http.proxy 配了 |
| 公司网络不允许装代理工具 | 网络策略限制 | 直接转本地方案(方案 5) |
本文基于博主和多位国内开发者解决 GitHub Copilot 网络连接问题的实测经验写成。代理配置参考了 VS Code 官方文档。Copilot API 域名
api.githubcopilot.com的连通性测试方法参考了 GitHub 社区讨论。