一、先確認消失的是視窗,還是代理核心

視窗消失,不一定代表程式當機。Clash 類用戶端通常包含圖形介面和代理核心兩部分:前者負責按鈕、設定清單和選項,後者負責實際接收連線並執行規則。mihomo 是部分用戶端採用的代理核心,也常稱為 Clash Meta。兩部分可能各自發生問題,排查時請先確認是哪一部分出狀況。

  1. 查看系統匣是否還有用戶端圖示。Windows 的圖示可能藏在工作列的隱藏圖示區;如果圖示仍在,先從系統匣重新開啟主視窗,確認是否設定了啟動後最小化。
  2. 按 Ctrl + Shift + Esc 開啟工作管理員,在「詳細資料」中查看用戶端及其核心處理程序。記下處理程序名稱,不要只憑圖示判斷。
  3. 如果視窗能開啟,但顯示核心未執行,請優先查看核心日誌;如果圖形介面處理程序也立即消失,則先查看用戶端日誌和系統當機記錄。
  4. 先結束其他代理用戶端,再啟動一次發生問題的用戶端。兩套程式同時執行,可能會搶用本機連接埠或虛擬網卡。

二、找出日誌:保留啟動前後的第一筆錯誤

日誌位置取決於用戶端,而不是「Clash」這個統稱。安裝資料夾、使用者資料資料夾和核心工作目錄可能各在不同位置。不要從網路上複製某個資料夾路徑,就認定自己的日誌一定在那裡。

視窗還能停留幾秒時

優先使用用戶端設定中的「開啟日誌資料夾」或「開啟設定資料夾」功能;名稱和位置會因用戶端而異。開啟後複製整個日誌資料夾,並記下啟動時間,例如 09:42:10。接著重新啟動一次,查看該時間之後新增的日誌,不要反覆查看上次留下的舊錯誤。

視窗完全無法開啟時

查看日誌時,先找出第一筆導致啟動中斷的錯誤,再檢查前後各 20 行。最後出現的「連線遭拒」可能只是核心已經退出的結果。故障模組指向圖形執行環境,也不能直接證明是顯示卡驅動程式的問題,還需要搭配用戶端日誌判斷。

日誌線索優先檢查項目下一步
address already in use監聽連接埠遭占用查出占用的處理程序,先別急著重新安裝
yaml、unmarshal設定結構或欄位型別測試實際載入的設定檔
no such file、not found核心或必要資源不存在確認錯誤路徑和安裝內容
permission denied資料夾、執行權限或服務權限檢查目前帳戶與資料夾權限
access is denied權限、連接埠排除範圍或安全防護攔截依完整錯誤訊息判斷,不能一概視為連接埠遭占用

三、連接埠遭占用:找出 7890 和 9090 的使用者

連接埠衝突通常會影響核心啟動,不一定會讓整個介面閃退。7890 常用作本機代理連接埠,9090 常用作控制介面連接埠,但兩者都可以修改。請以日誌和目前設定為準;如果錯誤訊息顯示 7897,就查詢 7897。

在 Windows PowerShell 中執行以下命令,查看範例連接埠的 TCP 監聽程序。沒有輸出只代表查詢當下沒有對應的監聽程序,無法排除相關程序剛好已退出。

Get-NetTCPConnection -State Listen -LocalPort 7890,9090 -ErrorAction SilentlyContinue |
  Select-Object LocalAddress,LocalPort,OwningProcess

假設輸出中的處理程序編號是 4321,再查詢該處理程序的資訊。4321 僅為示範數值,執行時請換成查詢到的編號。

Get-Process -Id 4321 | Select-Object Id,ProcessName,Path
  1. 如果占用連接埠的是另一套代理工具,請從該工具的系統匣選單正常退出,避免直接終止不明的系統處理程序。
  2. 如果占用連接埠的是同一用戶端留下的核心,請先退出用戶端及其背景服務,確認沒有連線正在使用後,再處理殘留的處理程序。
  3. 如果確實需要同時使用兩套程式,可以將其中一套的代理連接埠改為未占用的 7893,控制連接埠改為未占用的 9093。也要更新應用程式中手動填寫的代理位址,不能只改設定而保留舊連接埠。

如果沒有監聽程序,但 Windows 顯示連接埠存取遭拒,可以使用 netsh interface ipv4 show excludedportrange protocol=tcp 查看 TCP 排除連接埠範圍。不要直接刪除系統保留範圍,請改用範圍以外的空閒連接埠。若是 UDP 綁定錯誤,則需另外檢查 UDP 端點,不能只憑 TCP 查詢下結論。

四、還原設定:先測試 YAML,再檢查用戶端合併設定

還原設定時應恢復整份可用設定,不要隨意刪除欄位。YAML 是以縮排表示層級的文字格式。混入定位字元、數字型別錯誤,或引用不存在的策略群組,都可能導致設定載入失敗。成功下載訂閱內容,也不代表下載的內容一定適用目前的核心。

依最近一次變更縮小排查範圍

使用目前的核心測試設定

mihomo 的 -t 用來測試設定後退出,-f 用來指定設定檔,-d 用來指定工作目錄。以下假設已將目前用戶端搭配的核心和待測設定放入 D:\ClashRecovery,檔名分別為 mihomo.exe 和 candidate.yaml;若實際路徑不同,請相應調整。

Set-Location 'D:\ClashRecovery'
.\mihomo.exe -t -d 'D:\ClashRecovery' -f 'D:\ClashRecovery\candidate.yaml'

工作目錄可能還需要地理資料或規則資源。如果提示缺少資源,應先補齊與目前設定相符的資源,不要直接認定是縮排錯誤。測試通過只代表該核心可以載入這份設定,不保證節點能連線、遠端規則能下載,更不保證圖形介面一定正常。

五、核心遺失、架構不符與執行環境錯誤

只有日誌明確指出檔案或載入失敗時,才處理程式檔案。「核心未執行」也可能是設定錯誤造成,不代表核心檔案遺失。請先核對錯誤訊息中的完整路徑,再檢查檔案是否存在、是否曾被移動,以及目前使用者是否有讀取和執行權限。

確認安裝檔與裝置架構相符

在 Windows 中前往「設定」→「系統」→「系統資訊」查看系統類型;Linux 可執行 uname -m。請依裝置架構及用戶端支援情況選擇 x64 或 ARM64 安裝檔。不要直接把另一款用戶端的核心改名覆蓋,因為啟動參數、控制介面和配套資源可能不同。

依安全性記錄與相依性提示處理

如果一般模式可以啟動,只有啟用 TUN 才失敗,就應改查虛擬網卡、服務安裝狀態和權限。請暫時關閉 TUN 進行比對;不要把「一律以系統管理員身分執行」當成所有閃退問題的通用解法。

六、安全重新安裝:分開確認程式與使用者資料

重新安裝前先保留資料,安裝後不要立刻全部還原。只覆蓋安裝檔案,可能會保留造成故障的使用者設定;直接刪除整個資料目錄,又可能遺失本機規則和訂閱記錄。較穩妥的方式是先備份、隔離,再逐項還原。

  1. 記錄目前狀況:記下用戶端名稱和版本、核心版本、作業系統版本、上次成功啟動的時間,以及最近執行的更新或設定變更。
  2. 備份資料:等程式和相關服務完全退出後,複製設定、訂閱記錄、本機規則、覆寫指令碼和日誌。備份中若含有憑證,請存放在受保護的本機資料夾。
  3. 隔離舊資料夾:確認實際的使用者資料資料夾後,將它重新命名為附有日期的備份資料夾,例如在原名稱後加上 -backup-20261015。如果資料夾仍被占用,請先處理背景處理程序,不要強行刪除。
  4. 重新安裝:依用戶端文件解除安裝程式;若使用服務模式,請依專案說明解除安裝對應服務。安裝符合裝置架構的穩定版本,不要混裝不同專案的程式檔案。
  5. 先以空白設定啟動:確認新執行個體使用新的資料資料夾,且未還原舊訂閱、指令碼和 TUN 設定,然後開啟視窗。部分用戶端在未選取設定時不會啟動核心,這和介面閃退是兩回事。
  6. 逐項還原:先匯入一份已知可用的設定,啟動並查看日誌;接著再還原本機規則、覆寫、系統 Proxy 和 TUN。每次只變更一項,方便找出問題的觸發條件。

如果使用空白資料仍會閃退,排查重點應轉向系統相容性、執行階段、安裝完整性或用戶端本身的缺陷。如果空白資料正常,還原舊資料後才重現問題,請保留新資料夾,分批還原舊內容,不要直接用整份備份覆蓋。

七、修復後的驗證與求助資訊

看得到視窗只是第一步,還要確認設定和連線都已恢復。讓用戶端保持開啟 2 分鐘,查看核心是否反覆重新啟動;確認目前選取的設定、代理模式和策略群組是否正確。規則模式會依規則選擇連線方式,因此特定網站直連不一定代表代理失效。

整體排查流程可以很簡單:先確認退出的是哪個部分,再查看日誌;出現連接埠錯誤就查連接埠,設定錯誤就還原設定,檔案錯誤再處理安裝。每一步都保留可還原的備份,通常比不斷重新安裝更容易找到真正的問題原因。