Clash AI 路由健康监控

2026-10-24:用户授权通过脚本管理 Clash Verge,维持网络稳定。采用本地 Mihomo API,不操作 GUI、不更换订阅、不重启核心、不清空连接。

实现与边界

  • 脚本:${HOME}/.local/bin/clash-health-watch.py
  • 用户级服务/定时器:clash-health-watch.service、clash-health-watch.timer,每次结束后约 120 秒再运行。
  • 状态:~/.local/state/clash-health-watch/status.json;日志:journalctl --user -u clash-health-watch.service。
  • 从 Clash 运行配置在内存读取 API 凭据,不输出凭据;仅允许控制器 ${LOCALIP}:9097。
  • 并行通过 7890 代理探测 Discord gateway、ChatGPT Codex models、OpenAI OIDC discovery。未认证 models 返回 401 仅表示网络可达,不验证账号或推理权限。
  • 连续两次 OpenAI 目标异常或超过 8 秒、且距上次成功刷新至少 15 分钟时,对现有 AI-JP URLTest 组请求目标站健康重测。不会 PUT 切换节点或改写规则;不承诺重测一定改变节点或修复故障。
  • 现有 AI-JP 原配置用 gstatic 204 探测,不能代表 OpenAI 可用性。该脚本增加目标站观察,但没有更改该配置。

实际验证

  • systemd 服务 Result=success、ExecMainStatus=0;timer active。
  • 随后直接执行一次:Discord 200 / 0.88 秒,ChatGPT 未认证 401 / 7.94 秒,OIDC 200 / 1.39 秒;consecutive_bad=0,action=none。
  • 已验证探测和调度路径;异常触发的组重测与故障恢复效果尚未验收,不虚构成功切换。

运维

  • 查看:systemctl --user status clash-health-watch.timer。
  • 暂停:systemctl --user disable --now clash-health-watch.timer(不影响 Clash)。
  • 修改前读现状;不能把 403 HTML 直接归为账号失效,不能把 401 连通探测视为认证成功。

2026-10-24 变更记录(AI-JP 落地)

  • 为该 profile(ReWD5pdR3veG 良心云)新增独立 AI-JP 组(URLTest,15 个日本节点)并把 OpenAI 域名规则置顶到 profiles/rowtiBGeJUY.yaml,组写入 gE8K9oyST55e.yaml;全局 Merge.yaml 不生效(该 profile 用独立增强链)。
  • 良心云 持久选点改为 🇯🇵日本专线03|BGP|流媒体;OpenAI 不再受兜底组选点影响。
  • 改完必须重启 GUI 才重新生成配置:~/.local/bin/pskill /usr/bin/clash-verge; setsid nohup /usr/bin/clash-verge &。
  • soma 的 4 条 openai-codex 凭证 auth refresh 全部 ok(此前 403 为出口地区所致,非过期)。
  • 2026-10-25 08:14 复测:Discord/ChatGPT backend(401)/OIDC 全绿、~0.3s;hermes 最后一次 403 停在 10-24 16:01。