1. 为什么不是「再抄一遍 Gemini 网页分流」
浏览器场景里,你最常面对的是页面资源、账号跳转与可选的 QUIC 对照实验;而 Gemini CLI 往往落在 Node 运行时之上:扩展市场拉 manifest、npx 拉二进制、npm install 解析语义版本并与 package-lock.json 对齐。与此同时,CLI 还要维持发往 Google AI 端点的长生命周期 HTTPS。两类流量的主机名集合有交集(同属 Google 生态),但客户端栈完全不同:前者吃系统代理与浏览器 Flags,后者吃 shell 环境变量、可能的容器 DNS、以及是否启用 TUN 接管进程。
因此排障顺序应是:先在同一窗口内证明 npm 与 API 命中同一策略组,再讨论节点地区或账号配额。把 CLI 误当成「又一个 gemini.google.com」而忽略 registry.npmjs.org,会继续落入「换十个节点仍卡在 tarball」的循环。下文所有域名条目都应以你本机mihomo 日志为准做增减,而不是照搬截图──Google 与 npm CDN 都会调整边缘域名。
另请注意:条款与计费仍可能拒绝请求;本文只处理网络路径上的自洽性,不讨论规避地区限制。
2. 典型症状:TLS、registry 与间歇超时并存
用户侧叙述经常是模糊的「总超时」,拆开后常见三类组合:TLS handshake 迟迟完不成;npm ERR! 指向 ETIMEDOUT 或卡在「fetchMetadata」;以及 Google API 客户端报告间歇可用──同一命令第二次又恢复。三类同时出现时,优先怀疑分裂路由:两条主机链路的策略组、DNS 解析路径或 IPv6 优先级不一致。
「内置终端能用、系统终端不行」通常映射到环境变量继承差异或 IDE 沙箱未走 Clash 监听地址。「关掉 Clash 反而偶尔更快」则往往是双重代理或错误端口叠加:请求先到失效的中间层,再往上游 retries。请在复现时固定单一捕获方式(优先 TUN 或单一 mixed 端口),再对照日志。
若仅在高峰时段触发,也要区分节点质量与本地策略:前者换健康的同一地区节点即可验证;后者则需要你把npm相关域名从宽泛直连规则里解救出来。
3. 日志里优先对齐的主机名清单
下列为出发点,请在失败重现时用连接面板补齐真实 SNI 或等价主机字段。Google AI 常见包括 generativelanguage.googleapis.com、与你所用 SDK 对应的 *.googleapis.com 子域;登录链路仍可能涉及 accounts.google.com、oauth2.googleapis.com 等。若仅模型调用失败而浏览器登录正常,多半不是账号密码问题,而是CLI 进程未把这些主机放进与你期望一致的策略组。
npm 侧以 registry.npmjs.org 为元数据入口为主; tarball 往往落在 registry.npmjs.org 返回结果指向的 CDN 主机上(日志里会出现不同于首页域名的下载域名)。若你只分流了注册表 apex,而让 tarball 主机落到 DIRECT,仍会表现为下载进度冻结。扩展若从 github.com、objects.githubusercontent.com 拉源码或 release,也应一并观察是否被宽泛规则提前匹配。
命名上优先使用核对过的 DOMAIN-SUFFIX;慎用过大的 DOMAIN-KEYWORD,以免把无关流量捆进实验性节点,反过来拖慢日常浏览。
4. 为整段 CLI 会话准备专用策略组
建议新建一个可读性强的组(示例:🔮 Gemini+Dev),类型可用 select 便于手工锁定地区;若坚持用 url-test,请把容忍度与健康检查 URL 配到贴近 Google API 可达性,并避免过于频繁的切换打断长连接。尾部可再接 fallback;细节可参考 站内 url-test·fallback 教程。
该组的职责不是「全局翻墙」,而是编码会话桶:凡是你在日志里归为「本轮 gemini/npm 共存」的主机,都应落到同一桶,便于订阅更新后一眼看出是否被冲掉。不要把开发者规则藏在从不阅读的合并深层──那是周一还能装包、周二全员失联的常见触发器。
若机场订阅自带超大分类命中 GOOGLE 或 GITHUB,仍然建议保留一小段个人覆写把这些主机前置,否则排障时你无法判断究竟是通用分类还是你的专用组在生效。
5. YAML 示例:Google AI + npm 规则块
以下为示意,组名与条目请按你的 mihomo 配置文件对齐;插入位置须在宽泛 GEOIP、国内直连或兜底 MATCH 之前,并与 路由与规则参考中的优先级一致。
① 策略组
proxy-groups: - name: "🔮 Gemini+Dev" type: select proxies: - NODE-US-01 - NODE-SG-01 - DIRECT
② rules(按日志扩充 tarball 与 GitHub)
rules: - DOMAIN-SUFFIX,generativelanguage.googleapis.com,🔮 Gemini+Dev - DOMAIN-SUFFIX,googleapis.com,🔮 Gemini+Dev - DOMAIN-SUFFIX,accounts.google.com,🔮 Gemini+Dev - DOMAIN-SUFFIX,registry.npmjs.org,🔮 Gemini+Dev - DOMAIN-SUFFIX,npmjs.org,🔮 Gemini+Dev - DOMAIN-SUFFIX,github.com,🔮 Gemini+Dev - DOMAIN-SUFFIX,githubusercontent.com,🔮 Gemini+Dev # tarball CDN hostnames from failed installs go here # ... then GEOIP / MATCH ...
提示:整段 googleapis.com 可能影响其它依赖 Google API 的应用;若出现异常,请收紧为 CLI 实际用到的子域,而不是维持过宽后缀。
6. 规则顺序:压在 GEOIP、MATCH 之上
Clash按自上而下首次命中即停止。若某条 GEOIP,CN,DIRECT 或怀旧遗留的宽泛 MATCH 抢先匹配,你在文件后半精心编写的 DOMAIN-SUFFIX,registry.npmjs.org 将永远不执行──这不是 YAML 语法坏了,而是顺序语义如此。修复方式是机械地把开发者相关行整体上移,再在面板里确认命中顺序与预期一致。
订阅合并工具若支持 prepend/append,请明确个人覆写相对于机场片段的位置;「更新订阅后突然直连 npm」几乎都是合并层次问题而非节点集体阵亡。
对少量基于 IP 先行抵达的连接,若启用 Sniffer 还原 SNI,请与 DNS 段落交叉阅读 HTTPS/SNI Sniffer 专文,避免错误地把嗅探当作万能补丁。
7. DNS、Fake-IP 与「写得对却不命中」
Fake-IP模式下,应用看到的可能是内核分配的合成地址;只要解析与转发链路一致,域名类规则仍可命中。故障多见于旁路解析:容器内仍是运营商 DNS,宿主机却走 Clash;或浏览器/系统开启安全 DNS绕开本地监听。请先阅读 fake-ip 与 redir-host 对照,选用与场景相符的模式,并在改动后重启内核、清理缓存。
Windows 桌面还需留意 Chrome/Edge 的加密 DNS 叠加;共性处理见 安全 DNS 与系统代理。原则只有一个:同一台机器上的npm与Gemini CLI应讲述同一个 DNS 故事,而不是各讲各的。
若你愿意临时切换到 redir-host做对照实验,务必记录回滚点;两种模式的取舍是稳定性与可观测性的权衡,而不是「哪个更高级」。
8. 终端:mixed-port、TUN 与 npm 配置
终端代理常见误区是同时开启 TUN 又与 shell 导出旧的 HTTPS_PROXY,形成双跳或指向已废弃端口。npm config get proxy 与企业内部的 .npmrc 也可能覆盖环境变量。请先选定一种主要捕获方式:要么信托 TUN 接管进程,要么明确 mixed/HTTP 端口并在文档里写死端口数字。
Windows 场景下 npm/pnpm 与 AI CLI 分叉高度重叠,可直接对照 Windows npm·pnpm 与 Clash 中的变量表与 NO_PROXY写法;macOS/Linux 也要注意图形会话与 ssh 远程会话的环境继承差异。
语言服务器、任务运行器拉起的子进程往往不是你手动敲命令的那一个;若日志显示 npm 子调用走了意外的 UID/gid 或沙箱网络命名空间,请在 IDE 设置里关闭隔离网络或改为系统终端复测,以剥离变量。
9. 与 MCP、Claude Code 专文如何并排读
本站把相邻开发者栈拆成多篇,以便搜索意图清晰对齐。MCP 与 npm/GitHub侧重 Model Context 工具安装链路;Claude Code 终端篇演示另一类模型厂商 API 与 npm 共存时的范式。本篇换成 Google AI 主机名集合与Gemini CLI检索词;基础设施手法高度相似──学的是「日志驱动命名 + 前置规则 + DNS 自洽」,请勿把三篇文章的域名列表机械拼接成一个巨型关键字块。
若团队统一出口策略,请在内部 wiki 标明商业条款边界:哪些主机只为研发便利分流,哪些访问仍受组织合规约束。可运维的透明度比一次性魔法 YAML 更有价值。
10. 验证清单
客户端升级、订阅刷新或「只有周二坏」时,按序自检:
五项均满足仍收到明确的配额或权限错误,再转向账号与组织策略──而不是继续盲换节点。
11. 常见问题
Gemini CLI 排错和「Gemini 网页 + QUIC」文章有什么不同?
网页篇侧重浏览器 HTTP/3(QUIC)与前端域名;CLI 篇侧重终端里 Node/npm 与 Generative Language API 等同一会话内的分裂路由、registry 元数据与 tarball、以及环境变量与 TUN 是否一致。
为什么要把 npm registry 和 Google AI API 放进同一个策略组?
扩展与脚手架往往在短时间并发访问两类主机;若一条直连一条代理,会出现模型调用偶发成功而依赖安装卡住(或相反),容易被误判为服务商故障;同组便于日志对照与稳定会话。
Fake-IP 模式下规则写了却不命中怎么办?
检查解析是否全程经 Clash DNS、终端或容器是否绕过内核解析、以及 Sniffer 与 SNI 是否在 HTTPS 场景补齐主机名;必要时对照 fake-ip 与 redir-host 专文收紧 fallback。
Gemini CLI场景的痛点与多数开发者工具一致:协议之上还有 npm、GitHub、CDN 与 TLS。单靠「换一个全局 VPN」往往既不能精细到主机粒度,也难在终端里留下像 mihomo 这样可检索的连接轨迹;纯浏览器插件更是几乎覆盖不到 npm install 与本地子进程。相较之下,在 Clash 系客户端里维护一小段前置规则、配合图形面板观测DNS与Fake-IP是否自洽,通常能一次性消掉大量伪装成「CLI 坏了」的网络噪声,同时又保留你可审计的配置文件。若你仍在使用更新停滞、缺少连接视图或难以安全合并覆写的旧式客户端,往往会陷入反复改系统代理却看不到超时究竟落在哪一跳的困境。
相关阅读 · 同主题集群
按主题相关度匹配的延伸阅读,覆盖同分类下的实战配置文章。
Managed Agents 多线程并发总超时?Clash 分流 Anthropic 与工作流出站域名实测指南 2026
Managed Agents与Webhook并行总超时?mihomo分流Anthropic与工作流出站,DNS校准、同名策略桶、规则前置与连接日志链路。
阅读全文Claude Opus 4.7 API 总超时?Clash 分流 Anthropic 网关域名分步修复(2026)
Opus4.7 调用 Anthropic API 总超时?靠前分流网关与 DNS/Fake-IP,校准 mihomo 规则顺序并对照连接日志稳住调用。
阅读全文AWS MCP Server GA 之后 Agent 调 AWS 总超时?Clash 分流 API 网关与 MCP 出站域名实测(2026)
AWS MCP GA后Agent调STS、区域API超时?用mihomo分流amazonaws与STS域名,校准DNS和IAM。
阅读全文