故障排除 預計閱讀 12 分鐘

Clash 用戶端一開就閃退?啟動崩潰的六大原因與排除方法

整理設定檔語法錯誤、連接埠占用、核心檔案遺失、權限不足、系統元件缺漏及快取損毀等六大原因,提供各平台的檢查與修復步驟。

先分辨是視窗關閉,還是核心停止

Clash 一開就閃退,先別急著重裝。桌面用戶端通常由圖形介面、代理核心和背景服務組成。視窗消失,可能只是收到「縮到系統匣」的指令;視窗仍可開啟但連線無法使用,也可能是核心啟動失敗。這兩種情況要查看的記錄並不相同。

  1. 先查看 Windows 通知區域或 macOS 選單列是否仍有圖示。點選圖示開啟主視窗,若能正常顯示,就不算啟動崩潰。
  2. 在 Windows「工作管理員」→「詳細資料」中檢查用戶端與核心處理程序;macOS 則用「活動監視器」搜尋 App 名稱。不要只根據視窗是否顯示來判斷處理程序狀態。
  3. 記下點擊啟動的確切時間,保留前後一分鐘內的 App 記錄和系統崩潰記錄。優先查看第一筆錯誤;最後出現的「處理程序已結束」通常只是結果。

以下依六大原因逐項檢查。表中的錯誤訊息僅供判斷方向,各用戶端顯示的文字不一定完全相同。

線索優先檢查項目
yaml: line …設定檔語法與用戶端覆寫內容
address already in use代理連接埠、控制連接埠或 DNS 監聽衝突
no such file / exec format error核心路徑與處理器架構
permission denied資料目錄、執行權限與 TUN 服務
缺少 DLL 或動態程式庫用戶端所需的系統元件
更新後介面無法還原視窗狀態、前端快取或設定資料庫

一、設定檔語法錯誤

若問題是在更新訂閱、編輯覆寫檔或切換設定後出現,請先檢查設定。YAML 縮排必須使用空格,同一層級也要對齊;冒號後漏空格、清單項目少了連字號,都可能造成剖析失敗。另一個常見原因是將 mihomo 專用設定交給舊版 Clash 核心:即使 YAML 語法正確,欄位和規則功能也未必相容。

先確認實際載入的檔案

用戶端可能會將訂閱、覆寫內容和介面設定合併成執行設定。因此,訂閱原始檔能通過剖析,不代表最終設定一定能啟動。請根據記錄中的設定檔路徑確認目標;若仍能開啟介面,可在設定或設定檔管理頁面尋找資料目錄、執行設定或記錄檔入口。不同用戶端的按鈕名稱不一,別直接覆蓋安裝目錄中剛好名為 config.yaml 的檔案。

以 Windows 上的 mihomo 為例,請在實際核心所在目錄開啟 PowerShell。假設設定檔存放於 C:\ClashData\config.yaml,資料檔也位於同一目錄,可執行:

.\mihomo.exe -t -d "C:\ClashData" -f "C:\ClashData\config.yaml"

-t 用來測試設定後結束;-f 指定設定檔;-d 指定工作目錄。請將路徑換成實際位置,並使用用戶端配套的核心。這行命令並非所有圖形介面的啟動參數。地理資料庫或規則提供者檔案遺失也可能導致測試失敗,請依錯誤內容進一步判斷。

  • 記錄指向第 20 行時,也要檢查第 19 行;上一行的引號未閉合,也會讓下一行報錯。
  • 若出現「找不到策略」,請逐字檢查規則目標與策略群組名稱,包括空格和大小寫。
  • 若出現不支援的規則類型,請確認目前執行的是哪個核心,不要只看用戶端名稱。

修復時先停用最近新增的覆寫內容,或切回最後一份可用設定。不確定欄位用途時,可參閱設定欄位文件,不要一次刪除整段 DNS 或規則設定。

二、連接埠占用導致核心停止

同時啟動兩個代理用戶端、舊核心未正常結束,或背景服務與手動啟動的核心重複執行,都可能造成連接埠衝突。7890 常用作混合代理連接埠,9090 常見於控制介面,但並非所有用戶端都固定使用這些連接埠。排查時請以記錄中實際出現的位址和連接埠為準。

查出占用連接埠的程式,別直接結束不明處理程序

Windows 可在終端機執行以下命令,最後一欄是處理程序 PID:

netstat -ano | findstr :7890
netstat -ano | findstr :9090

優先查看本機位址中對應連接埠且狀態為 LISTENING 的記錄,再到「工作管理員」→「詳細資料」依 PID 確認程式。macOS 可使用:

lsof -nP -iTCP:7890 -sTCP:LISTEN
lsof -nP -iTCP:9090 -sTCP:LISTEN

Linux 可用 ss -lntp 查看 TCP 監聽狀態;若要查看其他使用者的處理程序資訊,可能需要相應權限。若錯誤涉及 DNS 的 UDP 監聽,也要檢查 UDP,不能只查 TCP。

  1. 確認占用者是舊用戶端後,透過它的結束選單正常停止,並確認背景服務是否仍在執行。
  2. 若確實需要同時執行兩組設定,請為代理和控制介面分別指定不同連接埠,例如將其中一組的混合連接埠改為 7893。
  3. 變更後也要同步調整系統代理和瀏覽器手動代理設定。核心已監聽新連接埠,但應用程式仍連線到舊連接埠時,就會出現「啟動成功但無法上網」的情況。

若記錄顯示的是繫結通訊端被拒絕,卻找不到監聽中的程式,也應檢查 Windows 保留連接埠範圍和安全性原則。並非所有繫結失敗都是程式占用所致。

三、核心檔案遺失或架構不符

圖形介面已顯示,接著卻提示核心啟動失敗,常見原因包括壓縮檔未完整解壓縮、只複製主程式、App 更新後仍指向舊路徑,或安全軟體將核心移至隔離區。有些用戶端會另外下載核心,若下載中斷,也可能造成介面正常但核心遺失。

  • no such file or directory:先核對記錄中的完整路徑及檔案是否存在;在 Linux 上,也可能是所需的動態載入器不存在。
  • exec format error:優先核對架構和檔案格式,例如將 ARM64 Linux 核心用於 x86_64 Linux。
  • 「找不到指定的檔案」:檢查對象可能是核心或其相依檔案,不一定是主程式本身。

請從原專案的發布管道重新取得符合系統與架構的完整安裝套件,再依用戶端提供的修復或重新安裝流程處理。macOS 可透過「蘋果選單」→「關於這台 Mac」查看晶片類型;Windows 可在「設定」→「系統」→「系統資訊」查看系統類型;Linux 則使用 uname -m 區分 x86_64 與 aarch64。

若系統有隔離記錄,請先確認檔案來源與觸發原因,再依系統提示處理。不要關閉整套安全防護,也別從不明雲端硬碟下載同名執行檔替換。用戶端與核心之間有介面相容性要求,隨意混用可能讓啟動錯誤更難查明。

四、權限不足與 TUN 服務異常

一般系統代理通常不需要用戶端持續以管理員身分執行;建立 TUN 裝置、修改路由或安裝背景服務則可能需要額外權限。若關閉 TUN 後便能正常啟動,應優先檢查服務狀態、虛擬網卡與權限,而不是反覆修改訂閱。

依平台縮小權限排查範圍

  • Windows:先結束所有重複執行的用戶端,再透過用戶端提供的服務管理功能檢查服務是否已安裝、能否啟動。只有安裝或修復服務確實需要提升權限時,才確認管理員授權。另外也要檢查 App 資料目錄是否設為唯讀。
  • macOS:先將 App 移至「應用程式」資料夾,再啟動。若出現輔助工具授權或系統安全性提示,請先確認開發者與來源,再依系統畫面允許相關操作;不要用批次移除安全屬性的命令來掩蓋錯誤。
  • Linux:從終端機啟動,以查看標準錯誤輸出。若可信來源下載的核心缺少執行權限,可只對該檔案設定執行權限;TUN 則另行確認 /dev/net/tun 是否存在,以及服務是否具備所需權限。
  • Android:首次啟用 VPN 模式時,必須確認系統連線要求。同一使用者或工作資料夾通常只能有一個作用中的 VPN,請先停止其他 VPN App,再嘗試連線。

還要分清楚「無法寫入設定」和「無法建立網卡」。前者通常會在記錄中出現設定檔、資料庫或記錄目錄寫入失敗;後者多半發生在 TUN 初始化階段。長期以管理員身分執行整個介面,無法取代修正目錄權限。

五、系統元件或執行環境缺漏

若連 App 記錄都來不及產生,啟動程式就直接提示缺少 DLL、WebView 或共用程式庫,應先檢查介面的執行環境。不同 Clash 用戶端使用的介面技術不一:採用 Electron、Tauri 或 Flutter 的 App,其相依項目各不相同,不能照著另一款用戶端的教學把所有執行環境都安裝一遍。

  1. Windows:依提示記下完整元件名稱。若明確缺少 WebView2,請從 Microsoft 官方管道安裝相應執行階段;若明確缺少 Microsoft Visual C++ 執行階段,請依專案需求選擇架構。不要單獨下載 DLL 並放進系統目錄。
  2. macOS:在「主控台」→「崩潰報告」中搜尋對應處理程序,確認是否因系統版本不受支援或架構載入失敗。最低系統需求請以該用戶端目前版本的發布說明為準。
  3. Linux:從終端機啟動,查看缺少的共用程式庫;若程式來源可信,可使用 ldd 檢查動態相依項目。優先使用符合發行版的套件,並透過系統套件管理員補齊相依項目,不要手動替換系統核心程式庫。

Windows 也可按 Win + R,輸入 perfmon /rel 開啟可靠性監視器,查看同一時間的應用程式失敗記錄。請保留故障模組名稱和例外狀況代碼;但只看到系統 DLL 名稱,並不能直接證明該 DLL 已損毀。

六、快取或 App 狀態損毀

更新中斷、突然斷電或跨版本移轉,都可能損毀視窗狀態、介面快取或本機資料庫。常見症狀包括視窗空白、啟動後立刻結束,或每次還原上次頁面時就崩潰。清除快取可以列為後續步驟,但不應一開始就做。

桌面版:先備份再重建,別刪除整個資料夾

  1. 結束介面、核心及背景服務,並確認沒有處理程序仍在寫入資料。
  2. 依專案文件或記錄找到實際資料目錄,完整複製一份備份。不同用戶端即使名稱相近,也未必使用相同路徑。
  3. 優先使用用戶端提供的清除快取或重設介面功能。若無法進入介面,只將文件明確標示的快取或視窗狀態檔重新命名保留。
  4. 若必須重建整個 App 資料目錄,請先確認訂閱和自訂規則都已備份,再將目錄重新命名為備份資料夾,讓程式建立新的資料目錄。
  5. 確認空白狀態下能正常啟動後,再逐一還原訂閱和覆寫內容;不要立刻把舊目錄整個複製回去。

Windows App 資料可能位於 %APPDATA% 或 %LOCALAPPDATA%,macOS 常見位置是 ~/Library/Application Support/,Linux 則常見於 ~/.config/;這些只是上層路徑,不是可直接刪除的目標資料夾。

Android:清除快取與清除資料要分開

在 Android「設定」→「應用程式」→ 選擇對應用戶端 →「儲存空間與快取」中,先嘗試「清除快取」。不同廠牌的系統名稱可能略有差異。「清除儲存空間」或「清除資料」會重設 App 資料,訂閱、設定和授權狀態可能一併遺失,務必先備份。若安裝套件架構不符或系統版本不符合需求,清除快取無法解決根本原因。

修復後依序確認

能開啟視窗只是第一步。建議依序恢復「介面穩定、核心監聽、代理連線、TUN」,每完成一項再進行下一項,避免同時變更多個因素。

  • 連續開啟並結束用戶端兩次,確認沒有新增崩潰記錄。
  • 先使用已確認可用的設定,暫時關閉 TUN,檢查記錄中是否仍有載入失敗或連接埠繫結錯誤。
  • 啟用系統代理,確認代理連接埠與目前核心的監聽連接埠一致,再測試應用程式是否能連線。
  • 最後再恢復 TUN、覆寫規則和自動更新。問題在哪個步驟重現,就回到相應模組排查。

若仍然閃退,回報問題時請附上系統版本、CPU 架構、用戶端版本、核心版本、安裝套件類型、首次發生時間及已遮蔽敏感資訊的記錄,並說明問題是在更新後、匯入設定後,還是啟用 TUN 後出現。這些資訊比只說「打不開」更能協助維護者重現故障。若需要重新安裝,請先在下載頁確認平台與架構;還原設定的步驟可參閱入門指南。

下載用戶端