copilot不可达极大概率是isp dns劫持所致,需通过curl和dig比对ip验证;可采用修改resolv.conf、hosts直连或https代理隧道三种方案绕过,最终以copilot实时补全函数体为修复确认标志。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

当你在VS Code远程开发时看到“Copilot is unreachable”错误,且已排除账号、网络连通性、代理配置等常见原因,需重点排查ISP运营商DNS劫持——部分国内宽带运营商会劫持.githubcopilot.com、copilot-proxy.githubusercontent.com等域名解析,返回虚假IP或重定向到广告页,导致Copilot客户端无法建立合法TLS连接。
验证是否被DNS劫持
在远程服务器终端执行以下命令:
curl --verbose https://copilot-proxy.githubusercontent.com/_ping
观察响应头中的Server字段和真实IP地址。若返回Server: nginx但IP属于114.114.114.114、223.5.5.5等国内公共DNS,或IP段归属为某宽带运营商(如117.136.x.x属联通北京),而非GitHub官方IP(如140.82.112.0/20),则【极大概率存在DNS劫持】。
再执行:dig copilot-proxy.githubusercontent.com +short
对比本地电脑(非同一网络)的相同命令结果。若远程服务器返回的IP与本地不一致,且远程IP明显不属于GitHub ASN(AS23429),即可确认劫持发生。
绕过劫持的三种实操方案
方法一:强制指定可信DNS服务器
在远程服务器的/etc/resolv.conf顶部插入:
nameserver 8.8.8.8
nameserver 1.1.1.1
⚠️注意:某些云主机或容器环境会覆盖该文件,需配合systemd-resolved或resolvconf服务持久化设置。
方法二:修改hosts文件直连GitHub官方IP
生成周报:读取本机 Git 仓库最近一周的提交记录,按项目分类提炼总结,生成标准周报格式,通过微信推送并返回给用户。触发词:周报、weekly report、git总结、提交记录总结、工作周报。
第一步:从GitHub官方文档或权威IP库获取当前有效IP(截至2026年5月,copilot-proxy.githubusercontent.com稳定解析为140.82.113.18)
第二步:执行命令写入hosts:
echo "140.82.113.18 copilot-proxy.githubusercontent.com" | sudo tee -a /etc/hosts
第三步:同样处理api.githubcopilot.com(当前IP:140.82.112.26)
方法三:在VS Code中启用HTTPS代理隧道
打开远程服务器的~/.vscode-server/data/User/settings.json,添加:
"http.proxy": "http://127.0.0.1:8080",
"http.proxyStrictSSL": false
然后在远程服务器上运行轻量代理(如squid或mitmproxy),将所有对githubcopilot.com的请求转发至未被劫持的出口网络(例如通过手机热点拨号的树莓派中转)。此法适用于企业级封锁场景。
验证修复是否生效
① 执行 curl -I https://copilot-proxy.githubusercontent.com/_ping,确认返回HTTP/2 200且Server字段为GitHub.com
② 在VS Code远程窗口中按Ctrl+Shift+P → 输入“GitHub Copilot: Check Status”,状态栏应显示“Ready”且无ERR_CONNECTION_REFUSED日志
③ 新建一个.py文件,输入def hello():后按Tab,Copilot必须实时弹出完整函数体建议——这一步成功即表示劫持已被彻底绕过。








