GitHub Copilot 连接超时?Clash 排查与修复方法

使用 GitHub Copilot 时遇到登录失败、连接超时或代码补全不响应?本文带你检查 Clash 模式、节点、规则和 TUN 配置,并通过逐步验证判断问题究竟来自本地设置还是代理服务。

先判断超时发生在哪一层

GitHub Copilot 出现登录失败、连接超时、代码补全长时间不响应时,不要一开始就反复更换节点或重装编辑器。一次 Copilot 请求通常会经过编辑器扩展、编辑器的代理设置、操作系统网络、Clash 入站端口、规则匹配、代理节点以及 GitHub 相关服务多个环节。任何一层没有正确传递流量,界面都可能只显示“Timed out”“Failed to connect”或“Network error”。

排查前先记录四项信息:使用的编辑器和版本、Copilot 扩展版本、Clash 客户端与 mihomo 内核版本、完整错误信息。还要注明问题发生在登录阶段、聊天阶段还是代码补全阶段。登录失败通常与认证页面、浏览器回调或 GitHub 相关域名无法访问有关;聊天可用但补全失败,可能是扩展连接的服务端域名、长连接或编辑器代理配置存在差异。

现象 优先检查位置 常见原因
登录页面打不开 浏览器、系统代理、Clash 日志 GitHub 域名未代理、节点不可用、系统代理未生效
登录成功但补全超时 编辑器代理设置、规则命中、扩展日志 编辑器没有使用系统代理,或相关连接被错误分流
补全偶尔出现、经常中断 节点质量、连接复用、TUN 与 DNS 丢包、延迟抖动、节点切换或长连接被重置
所有代理软件都无法登录 订阅服务、账号状态、网络环境 服务端异常、账号权限问题或当前网络限制

检查 Clash 模式、节点与规则

Copilot 需要访问多个 GitHub、认证和服务接口,不能只根据浏览器能否打开 github.com 判断整体正常。Clash 处于“直连”模式时,GitHub 主站可能可以访问,但其他相关域名仍可能被当前网络阻断。处于“全局”模式时,所有流量都经过代理,虽然便于验证,却可能让本地服务、企业内网或编辑器扩展出现新的问题。长期使用通常建议采用规则模式,并为相关域名选择稳定的代理策略。

确认内核确实正在运行

打开 FlClash 或其他客户端的运行状态页,确认配置已经启动,并记录实际的混合端口。常见端口是 7890,但端口可能被修改,也可能使用独立的 HTTP 与 SOCKS5 端口。控制接口常见为 127.0.0.1:9090,它用于客户端管理内核,不是给浏览器或编辑器填写的代理端口。

mixed-port: 7890
allow-lan: false
mode: rule
log-level: info
external-controller: 127.0.0.1:9090

如果编辑器代理设置填成了 127.0.0.1:9090,通常会导致连接失败或收到无法识别的响应。应用代理应填写 127.0.0.1:7890 以及正确的代理协议。使用 mixed-port 时,HTTP 与 HTTPS 请求通常都可以通过同一个混合端口转发;如果编辑器只支持 HTTP 代理,应确认客户端确实提供了 HTTP 入口,而不是只开启 SOCKS5。

用日志确认规则命中

测试 Copilot 时打开 Clash 的连接日志或实时请求列表。重新触发一次登录或代码补全,观察相关请求是否出现、命中了哪个规则、最终选择了哪个策略组。日志中如果完全没有请求,说明流量没有到达 Clash,优先检查系统代理、编辑器独立代理配置或 TUN 是否接管;如果请求出现但显示 REJECTDIRECT 或错误节点,则应调整规则和策略组。

规则匹配按照从上到下的顺序执行。某条过宽的直连规则可能在 GitHub 规则之前提前生效,某条拒绝规则也可能拦截扩展使用的域名。不要只添加一个主域名就结束排查,因为认证页面、扩展服务、资源下载和 API 请求可能使用不同的主机名。域名应以编辑器扩展日志和 Clash 连接记录为依据,不要直接复制来源不明的整套规则。

测试方式 观察结果 判断
浏览器打开 GitHub 登录页面 页面完全打不开 先处理节点、DNS、系统代理或基础规则
浏览器可登录,编辑器无请求 Clash 日志没有扩展连接 编辑器没有继承代理,或扩展使用独立网络设置
日志有请求但不断重试 同一主机多次连接失败 检查节点可用性、TLS、DNS 与连接稳定性
更换节点后立即恢复 规则不变但连接成功 原节点可能存在丢包、限速或对长连接支持较差

选择稳定节点而不是只看测速

Copilot 的代码补全并不只是一次短网页请求,扩展可能需要维持较长的 HTTPS 连接或反复发送小型请求。因此节点选择不能只看一次延迟测试。一个延迟为 80 ms 但丢包很低的节点,实际体验可能优于延迟为 45 ms、数十秒后频繁重连的节点。

校对编辑器代理与登录流程

浏览器可以正常访问 GitHub,并不代表 VS Code、JetBrains IDE 或其他编辑器一定使用同一条网络路径。部分编辑器继承操作系统代理,部分编辑器根据自身设置连接,还有一些扩展会读取编辑器的代理配置。若 Clash 日志中看不到 Copilot 请求,应先确认编辑器是否指向正确的本地代理端口。

VS Code 中的代理设置

在 VS Code 设置中搜索 proxy,检查 Http: ProxyHttp: Proxy Support 等选项。使用 Clash mixed-port 时,可以尝试填写:

http://127.0.0.1:7890

修改后完全退出并重新打开 VS Code,再观察 Clash 连接日志。不要把控制端口 9090 当作代理端口,也不要在没有必要时同时配置多个相互冲突的代理环境变量。若系统代理已经由 FlClash 设置,VS Code 的代理字段可以先保持自动或跟随系统;只有在自动模式没有请求进入 Clash 时,才使用明确的本地地址进行对照测试。

企业网络或本地开发环境可能依赖代理绕过列表。代理配置错误时,编辑器可以访问外网,却无法连接本机的扩展服务、远程开发主机或企业内网。排查时不要把所有地址都强制送入 Clash。先确认 Copilot 请求能够稳定进入代理,再逐项恢复本地开发所需的绕过项。

重新验证登录而不是反复改配置

登录失败时,先在编辑器中退出 GitHub 账号,再关闭编辑器并重启 Clash,确保代理状态稳定后重新登录。浏览器授权页面打开后,如果回调无法返回编辑器,可能是默认浏览器、编辑器进程权限或本机回调地址被代理规则影响。此时应查看编辑器的认证通知和扩展日志,不要仅凭网页显示“授权成功”就认为编辑器已经拿到令牌。

  1. 确认 Clash 已启动,并固定使用一个可用节点。
  2. 在浏览器中打开 GitHub 登录页,验证基础连接。
  3. 在编辑器中退出当前 GitHub 账号,避免旧会话持续报错。
  4. 重新执行登录,观察 Clash 日志是否出现认证相关连接。
  5. 授权完成后等待扩展初始化,再测试一段普通代码补全。

如果浏览器可以访问 GitHub,编辑器也已经产生请求,但仍然提示超时,可以临时把 Clash 模式切换为全局进行一次对照。全局模式下恢复正常,说明规则或直连路径存在问题;全局模式下仍然失败,则继续检查节点、TLS、DNS、扩展版本和账号状态。测试结束后应切回规则模式,不建议长期使用全局模式代替正确的分流配置。

排查 TUN 与 DNS 造成的连接异常

TUN 模式会通过虚拟网卡接管不遵循系统代理的程序,适合命令行工具、部分桌面应用和无法配置代理的客户端。但它也会引入自动路由、DNS 劫持、IPv6、系统 VPN 和权限等变量。Copilot 已经能够通过系统代理正常工作时,不必为了“覆盖更多程序”立即启用 TUN。先用最简单的系统代理完成验证,往往更容易定位。

关闭 TUN 进行对照测试

  1. 关闭 Clash 的 TUN 和增强模式,保留 mihomo 核心运行。
  2. 开启系统代理,确认系统代理端口与当前配置的 mixed-port 一致。
  3. 完全重启编辑器,再触发登录或补全。
  4. 如果恢复正常,再单独开启 TUN 复测。

关闭 TUN 后恢复,通常说明问题与路由或 DNS 接管有关。开启 TUN 后继续超时,可先关闭“严格路由”、自动重定向或 IPv6 相关选项进行对照,但每次只改一个设置。不同操作系统和 mihomo 版本的 TUN 选项名称可能不同,应以当前客户端界面和内核文档为准,不要直接套用其他平台的配置。

确认 DNS 能够解析实际请求

DNS 污染或解析结果不稳定时,浏览器可能偶尔可以打开 GitHub,编辑器却在连接阶段超时。尤其是在 fake-ip、redir-host、系统 DNS 和代理端 DNS 混用时,域名解析路径可能与普通浏览器不同。查看 Clash 日志时,关注请求失败前是否出现 DNS 超时、连接到异常 IP、IPv6 连接失败后长时间回退等信息。

dns:
  enable: true
  enhanced-mode: fake-ip
  nameserver:
    - https://1.1.1.1/dns-query
    - https://8.8.8.8/dns-query

上面的配置仅用于说明字段结构,不应直接覆盖现有订阅。实际 DNS 地址、监听方式和 fake-ip 过滤列表需要结合当前网络与客户端支持情况调整。修改前备份原配置,修改后重新启动核心,并确认规则集、代理组和本地服务仍然正常。若只在启用 IPv6 时失败,可以暂时禁用 IPv6 或让相关请求优先使用 IPv4,以判断是否为地址族兼容问题。

用逐步复测锁定根因

步骤 配置状态 结果说明
固定节点、规则模式、系统代理、关闭 TUN 建立最小可用基线
保持其他不变,只切换另一个节点 判断节点线路与稳定性
恢复原节点,只开启 TUN 判断路由、权限和 DNS 接管
恢复 TUN,再调整规则或 DNS 确认具体规则与解析行为

每次修改后都应完全重启编辑器或重新加载 Copilot 扩展,并记录是否能完成登录、是否出现补全、首次响应耗时以及 Clash 日志中的最终策略。这样可以避免多个变量同时变化,最后只能得到“好像恢复了”的模糊结论。

FlClash 下载入口 查看各平台客户端