連線疑難排解 · Clash 技術部落格

Clash Verge Rev Linux 切換大型訂閱後 GNOME 卡住怎麼辦?

Ubuntu GNOME 切換含大量節點與代理群組的訂閱後若桌面立即卡頓,先核對 AppIndicator 與 GJS 日誌,再停用系統匣代理群組選單;本文提供復原、驗證與還原步驟。

  • Clash Verge Rev
  • Linux
  • GNOME
  • AppIndicator
  • 大訂閱
本文目錄

先確認是不是 GNOME 系統匣選單卡死

本文只處理 Linux 桌面在切換節點和代理群組很多的訂閱後立刻卡頓,且日誌同時指向 GNOME Shell、Ubuntu AppIndicators、dbusMenu.js 或 GJS 垃圾回收的情況。只有 Clash Verge Rev 視窗變慢、節點超時或網頁打不開,不屬於同一問題。

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 更能說明問題。

切換後等待超過原本的觸發時間,再開啟主視窗的代理群組,完成一次節點選擇和實際 HTTPS 請求。不要只看延遲數字;桌面回應、系統匣結構、日誌和實際連線都要通過驗證。

驗證清單

  • 切換同一大型訂閱後頂部欄、視窗切換和快捷鍵仍然回應
  • 系統匣選單不再產生代理群組與節點子選單
  • 日誌沒有新增成片的 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 已包含這個顯示開關,但其發布說明沒有宣稱修復大型系統匣選單卡死,因此不能把設定存在寫成問題已經解決。

參考資料