连接排障 · Clash 技术博客

Clash Verge Rev Linux 大订阅卡死怎么修?

Ubuntu GNOME 切换到节点、代理组很多的订阅后立刻卡顿时,检查 AppIndicator 与 GJS 日志,禁用托盘代理组菜单。复测桌面响应、节点选择和联网,保留恢复原设置的方法。

  • Clash Verge Rev
  • Linux
  • GNOME
  • AppIndicator
  • 大订阅
本文目录

切换订阅后,卡住的是整个桌面还是只有应用窗口,处理方向不同。桌面仍能响应时,先保存工作并正常退出客户端;已无法操作时,要先恢复桌面,再查托盘菜单和对应时段的日志。重新进入桌面后,可以保留同一订阅,只对照代理组菜单的显示设置。

切换大订阅后整个 GNOME 桌面卡顿,可能是托盘菜单负载

记录切换到大型订阅的时间,确认顶部栏与窗口切换是否同时卡顿,并核对 GNOME Shell、Ubuntu AppIndicators、dbusMenu.js 或 GJS 垃圾回收错误。AppIndicator 用于把应用菜单放进系统托盘;只有应用窗口变慢或节点超时,不属于同一种现象。

Clash Verge Rev issue #7779 的报告环境是 Ubuntu 22.04.5、GNOME 42.9 与 X11,使用 347 个节点、14 个代理组且单组最多 349 个节点的订阅。普通订阅正常,切换到大型订阅约一秒后开始大量重复报错,整个桌面卡顿。

报告者把现象归因于托盘中生成的巨大代理组子菜单,并用同一系统、同一订阅做了 A/B 对照;禁用托盘代理组显示后不再复现。Issue 仍处于开放状态,这个解释是可重复的排查线索,不是维护者已经确认的普遍根因。

整桌面、应用窗口与连接故障的区别

现象更可能的方向下一步
切换大订阅后顶部栏、窗口切换和桌面一起卡顿GNOME Shell 或 AppIndicator 菜单负载核对会话与系统日志
只有 Clash Verge Rev 窗口卡住应用界面或 WebView不要直接套用本文结论
桌面正常,但网页和节点超时节点、DNS、规则或 TUN按连接记录排查
未切换订阅也会周期性冻结其他扩展、显卡或桌面问题做关闭客户端的对照

桌面无响应时怎样正常重启,避免强制断电?

桌面仍能响应时,先不要点击托盘图标或反复切换 Profile。保存正在编辑的文件,从 Clash Verge Rev 主窗口关闭系统代理和 TUN,再正常退出客户端;确认系统直连可用后重启桌面会话或系统。

若 GNOME Shell 已基本无响应,但 Ctrl+Alt+F3 仍能进入文本终端,可登录后使用正常重启命令。强制断电可能损坏未写完的文件,只能作为键盘、终端和系统电源菜单都不可用时的最后选择。

从文本终端请求正常重启
sudo systemctl reboot

重新进入桌面后

  1. 先保持系统直连

    不要立即启用 TUN、系统代理或刚才的大型订阅,先确认桌面与基础网络稳定。

  2. 从主窗口打开设置

    不要从托盘展开代理组菜单;直接打开 Clash Verge Rev 主窗口。

  3. 先改托盘显示模式

    完成禁用设置后,才重新选择同一大型订阅做受控复测。

  4. 保留失败时间点

    记下切换订阅和桌面开始卡顿的时间,后面只截取对应日志。

记录会话、版本与 AppIndicator 错误

先记录发行版、GNOME、会话类型和 Clash Verge Rev 版本,再导出故障前后几分钟的系统日志。X11 与 Wayland 的恢复方式不同,不能只写“Ubuntu 最新版”。

下面的查询只读取本次启动日志。若输出出现 ubuntu-appindicators、dbusMenu.js、JSAPI during、already disposed 或 PopupSubMenuMenuItem,并且时间紧跟订阅切换,才与 issue #7779 的模式接近。

日志可能含用户名、主机名、订阅或节点信息,公开前必须脱敏。只保留复现前后几分钟,不要上传完整系统日志。

记录桌面与会话版本
printf 'session=%s\n' "$XDG_SESSION_TYPE"
gnome-shell --version
clash-verge --version 2>/dev/null || true
筛选本次启动中的相关日志
journalctl -b --no-pager | grep -E 'gnome-shell|ubuntu-appindicators|dbusMenu\.js|JSAPI during|already disposed|PopupSubMenuMenuItem'

会话与订阅规模记录

  • 发行版、GNOME、X11 或 Wayland 会话类型已记录
  • Clash Verge Rev 的实际版本与安装来源已记录
  • 普通订阅不会触发同样卡顿
  • 大型订阅的节点数、代理组数和最大组规模已记录
  • 故障时间点与对应日志已保存并脱敏
  • 系统代理和 TUN 关闭时桌面能够稳定运行

禁用托盘代理组菜单再切换订阅

在 Clash Verge Rev 主窗口进入“设置 → 界面设置”,把“托盘代理组显示模式”改为“禁用”。v2.5.2 的官方类型定义支持 default、inline 与 disable,中文设置资源也把这一项显示为默认、一级菜单和禁用。

这个改动只是不再把代理组和大量节点展开到系统托盘菜单;订阅、规则、节点和主窗口里的代理组仍然保留。之后从主窗口选择节点,不要为了确认设置而反复点击旧托盘子菜单。

若图形界面无法保存,可先从设置中的应用目录入口找到 verge.yaml,完整退出客户端并复制整个目录作为备份,再把 tray_proxy_groups_display_mode 明确设为 disable。不要猜测数据目录,也不要在应用运行时覆盖文件。

verge.yaml 中只改这一项
tray_proxy_groups_display_mode: disable

同一大订阅下,桌面响应、主窗口选节点与实际请求应正常

保持系统、客户端版本和订阅不变,只改变托盘代理组显示模式,然后从主窗口切换到原来会触发卡顿的大型订阅。这个单变量对照比同时删节点、换内核和关闭 TUN 更能说明问题。

验证清单

  • 切换同一大型订阅后顶部栏、窗口切换和快捷键仍然响应
  • 托盘菜单不再生成代理组与节点子菜单
  • 日志没有新增成片的 dbusMenu.js、JSAPI during 或 already disposed 错误
  • 主窗口仍能查看代理组并切换节点
  • 真实 HTTPS 请求成功且 Connections 中能看到对应连接
  • 完整退出并重新启动后禁用设置仍然生效

禁用托盘代理组后仍卡顿,检查窗口、扩展或连接错误

托盘子菜单已消失,但只有应用窗口无响应

检查 WebView、渲染和应用日志,不把它归因于 GNOME Shell 菜单。

关闭 Clash Verge Rev 后桌面仍周期性冻结

检查其他 GNOME 扩展、显卡与系统日志,本文规避不适用。

桌面正常,只有连接失败

转查节点、DNS、规则、系统代理或 TUN,不恢复巨大托盘菜单。

仍出现大量重复的 AppIndicator/GJS 错误

保留禁用设置,记录是否还有其他应用提供超大托盘菜单,并向项目提交完整对照。

不要先卸载 Ubuntu AppIndicators、删除大型订阅或重装整个桌面。它们会改变太多变量,也可能影响其他应用。先用关闭 Clash Verge Rev、普通订阅和禁用托盘代理组这三个对照,确认究竟是哪一步触发。

确需托盘菜单时,切回已验证的小订阅再启用

如果必须恢复托盘代理组菜单,先在主窗口切回已验证的小订阅,再把显示模式改回“默认”或“一级菜单”。不要在大型订阅仍生效时恢复菜单;若卡顿重现,立即回到 disable,并继续从主窗口选节点。

向官方反馈时,应提供发行版、GNOME 与会话类型、Clash Verge Rev 版本、订阅规模、触发时间、脱敏日志,以及 default 与 disable 的同条件结果。不要上传订阅链接、节点地址、认证信息或完整配置。

截至 2026 年 9 月 8 日,issue #7779 仍开放且没有关联的正式修复。报告使用的是 2.5.3 AutoBuild;官方最新稳定版仍是 v2.5.2。v2.5.2 已包含这个显示开关,但其发布说明没有宣称修复大型托盘菜单卡死,因此不能把设置存在写成问题已经解决。

参考资料