先區分閃退、背景執行與視窗未顯示
Clash 圖形用戶端通常由介面程式、代理核心與系統服務組成。按兩下圖示後沒有出現主視窗,不一定代表三個部分都已退出。介面可能縮到系統匣,視窗座標可能保留在已斷線的螢幕上,代理核心也可能仍在背景監聽連接埠。故障排查的第一步不是反覆啟動,而是確認目前的實際狀態。
先檢查 Windows 工作列通知區域、macOS 選單列或 Linux 桌面系統匣。若能看到用戶端圖示,請嘗試從選單開啟主介面。若曾使用雙螢幕、遠端桌面或修改縮放比例,也應檢查視窗是否位於螢幕邊界之外。這類情況屬於介面復原問題,而不是代理核心崩潰。
接著開啟系統程序管理工具,尋找用戶端介面程序,以及名為 Clash、mihomo 或與所用用戶端對應的核心程序。可依下列狀態判斷方向:
- 介面與核心程序都立即消失:優先檢查啟動日誌、設定解析、執行環境與本機資料。
- 介面消失但核心仍在:重點檢查介面日誌、視窗狀態檔案與圖形執行環境。
- 介面存在但核心反覆重啟:重點檢查 YAML 設定、連接埠佔用、TUN 權限及核心版本。
- 程序持續存在但沒有視窗:先從系統匣復原,再考慮重設視窗配置,不要直接刪除全部設定。
從日誌確認用戶端停止在哪個步驟
發生閃退後,日誌通常比彈出視窗更可靠。不同用戶端儲存日誌的位置並不一致,通常可在使用者設定目錄、應用程式資料目錄或用戶端安裝目錄附近找到。檔名可能包含 app、main、service、core 或 runtime。若介面還能短暫開啟,可先在設定或日誌頁面查看實際目錄,避免直接依照其他用戶端的路徑刪除檔案。
讀取日誌時,請從最近一次啟動的時間點開始,不要只搜尋單獨一個 error。有些警告不會阻止啟動,真正導致退出的資訊往往出現在最後幾行。依啟動階段觀察會更容易定位:
- 介面程式載入設定與視窗狀態。
- 讀取目前的設定檔或由訂閱產生的設定。
- 啟動 Clash 或 mihomo 核心。
- 繫結 mixed-port、HTTP、SOCKS、控制連接埠或 DNS 連接埠。
- 載入規則集、GeoIP、GeoSite 等資料。
- 安裝系統代理,或啟動 TUN 與系統服務。
如果日誌停在讀取設定階段,先處理 YAML;出現 address already in use、bind failed 類訊息時,請檢查連接埠;出現 permission denied、operation not permitted 時,請檢查目錄權限或 TUN 權限;出現找不到動態函式庫、WebView 或圖形元件的資訊時,則屬於介面執行環境問題。不要把所有錯誤都歸因於訂閱節點,因為節點無法使用通常只會影響連線,不會讓用戶端在讀取介面前立即退出。
| 日誌線索 | 常見位置 | 下一步 |
|---|---|---|
| parse、yaml、unmarshal | 設定解析階段 | 檢查縮排、欄位類型與核心相容性 |
| address already in use | 連接埠繫結階段 | 結束佔用程序或調整連接埠 |
| permission denied | 檔案、服務或 TUN 初始化 | 檢查目錄權限與系統服務狀態 |
| database、cache、state | 本機資料載入階段 | 備份後重建對應資料檔案 |
| webview、runtime、library | 圖形介面初始化 | 修復用戶端所需的系統執行元件 |
檢查 YAML 設定語法與核心相容性
設定錯誤是核心啟動後立即退出的常見原因。Clash 設定採用 YAML,縮排、清單層級與資料類型都會影響解析。Tab 字元、全形冒號、缺少空格、未閉合的引號,以及將清單寫成一般字串,都可能讓核心拒絕載入。訂閱能夠成功下載,也不代表產生的設定一定適用於目前的核心。
先備份目前設定,再切換至用戶端內建的基本設定或先前確認可用的設定。如果用戶端能夠恢復啟動,故障範圍就已縮小至目前的訂閱、覆寫指令碼或手動修改內容。不要一開始就解除安裝用戶端,因為解除安裝後重新匯入同一份錯誤設定,問題仍會出現。
以下片段展示容易混淆的層級。規則是字串清單,代理群組中的 proxies 也是清單;兩者都必須維持一致的縮排:
mixed-port: 7890
mode: rule
log-level: info
proxy-groups:
- name: 手動選擇
type: select
proxies:
- DIRECT
rules:
- DOMAIN-SUFFIX,example.com,DIRECT
- MATCH,DIRECT
如果可以直接執行代理核心,可使用核心內建的設定測試參數檢查檔案。mihomo 常見的測試方式如下,實際可執行檔名稱與路徑請以用戶端的安裝內容為準:
mihomo -t -f /path/to/config.yaml
測試結果中的行號通常指向解析失敗附近,但錯誤也可能由前幾行造成。例如某個引號未閉合,解析器可能直到下一個欄位才回報異常。檢查時應向上回看同一個設定區塊,而不是只修改報錯的那一行。
更新後才出現的欄位不相容
Clash Meta 後續由 mihomo 延續,支援的設定欄位與早期 Clash 核心並不完全相同。訂閱轉換規則、TUN 設定、DNS 增強模式、規則集格式與代理協定參數,可能依賴特定核心版本。將為 mihomo 產生的設定交給較舊核心,可能出現 unknown field、unsupported proxy type 或規則提供器載入失敗。
反過來,更新核心後也可能暴露舊設定中原先被忽略的問題。此時應確認用戶端目前使用的核心類型與版本,再檢查訂閱轉換目標。不要隨意刪除陌生欄位來強行啟動,因為刪除 DNS、規則集或代理參數後,雖然語法可能通過,實際分流結果可能已經改變。
檢查執行權限、設定目錄與 TUN 服務
一般系統代理模式通常不要求用戶端始終以系統管理員身分執行,但寫入受保護目錄、安裝系統服務或建立 TUN 網路介面時,需要相應權限。權限不足可能顯示明確提示,也可能讓某些用戶端在服務初始化階段直接退出。
Windows 使用者應確認用戶端沒有放在需要特殊寫入權限的系統目錄中,並檢查安全性原則是否阻止程式寫入自己的設定目錄。若用戶端提供獨立的服務模式,應從用戶端設定中重新安裝或修復服務,而不是長期依賴「以系統管理員身分執行」來繞過問題。服務程式與介面版本不一致時,也可能出現核心啟動失敗或反覆重新連線。
macOS 使用者應確認應用程式仍位於正常的應用程式目錄,且系統的隱私權與安全性設定沒有攔截其網路延伸功能或背景項目。不要透過關閉系統安全機制來處理來源異常的程式;應核對安裝套件來源,並使用符合目前系統架構的版本。Linux 使用者則應檢查設定目錄的擁有者、執行權限,以及 TUN 裝置的存取能力。
單獨驗證 TUN 模式
TUN 模式會建立虛擬網路介面並修改路由,涉及的權限高於一般 HTTP 或 SOCKS 代理。若日誌在 tun、route、interface、service 等位置停止,可先關閉 TUN,只啟用系統代理進行測試。一般代理模式能夠啟動,表示 YAML 主體與介面基本可用,問題集中在 TUN 服務、驅動程式、權限或路由環境。
關閉 TUN 只是診斷步驟。需要恢復 TUN 時,應檢查用戶端的服務安裝狀態、系統中是否殘留舊虛擬網卡,以及其他 VPN、網路過濾軟體是否同時接管路由。多個網路工具同時運作時,即使使用不同連接埠,也可能因路由表與 DNS 接管而發生衝突。
處理連接埠衝突與殘留程序
代理核心啟動時需要監聽設定中的連接埠。常見連接埠包括 mixed-port、port、socks-port、external-controller 與 DNS listen。若舊核心未退出,或其他代理程式使用相同連接埠,新核心便會在繫結階段失敗。若用戶端介面將核心退出視為嚴重錯誤,就可能隨之關閉,看起來像按兩下後閃退。
Windows 可先使用工作管理員結束對應程序,再透過命令檢查指定連接埠:
netstat -ano | findstr :7890
輸出末尾的 PID 可用來確認佔用程序。macOS 與 Linux 可使用:
lsof -nP -iTCP:7890 -sTCP:LISTEN
看到連接埠被佔用後,不要立即結束未知的系統程序。先確認 PID 對應的程式名稱。如果佔用者是上次啟動後留下的 Clash 或 mihomo,可以正常終止;如果是仍需使用的其他服務,則在用戶端設定中更換連接埠,並同步檢查系統代理設定是否引用新連接埠。
殘留程序為何會反覆出現
部分用戶端退出介面時會保留核心,以維持代理連線;也有用戶端在崩潰後未能執行清理邏輯。再次啟動時,舊核心仍持有連接埠、控制介面或設定檔鎖定。正確的處理方式是先從系統匣執行完整退出,等待幾秒後檢查程序。若程序沒有結束,再使用系統工具終止。
重新啟動系統可以清除一般殘留程序,但無法修復自動啟動的舊服務。若每次開機後都出現衝突,應檢查系統啟動項目與服務清單,確認沒有兩個不同版本的用戶端同時自動啟動。保留一個目前使用的用戶端入口,並在其設定中統一管理核心服務。
備份後重建損壞的本機資料
設定語法、權限與連接埠都正常時,應檢查用戶端自行儲存的狀態資料。異常關機、磁碟寫入中斷或跨版本遷移,可能損壞視窗配置、設定索引、資料庫、快取或設定檔。直接刪除整個資料目錄雖然可能讓程式恢復,但也會同時遺失訂閱記錄、覆寫規則與自訂設定,因此應採用逐層隔離的方法。
- 完整退出介面、核心與相關服務。
- 找到用戶端實際使用的資料目錄,複製到獨立的備份位置。
- 先重新命名視窗狀態、快取或日誌目錄,再啟動測試。
- 若仍然閃退,再重新命名設定資料庫或設定索引。
- 讓用戶端產生新的資料目錄,確認可以進入主介面。
- 只恢復必要的訂閱網址與已驗證的設定,不要將整個目錄覆蓋回去。
採用「重新命名而不是刪除」的方式,可以隨時回復,也能透過逐項還原找出損壞檔案。不同用戶端的資料結構差異很大,檔名不能互相套用。特別是基於 Electron、WebView 或其他桌面容器的介面,其快取與核心設定往往位於不同子目錄,應根據日誌與用戶端設定確認用途。
如果新的資料目錄可以啟動,但匯入舊訂閱後再次退出,應回到設定相容性檢查。如果只恢復介面設定就崩潰,則應重點重設視窗配置、主題狀態或本機資料庫。這樣可以把問題限制在單一資料類型,而不是反覆重新安裝。
更新後崩潰:核對架構、核心與執行環境
用戶端更新後首次啟動即閃退,需要同時考慮應用程式架構、內建核心、系統版本與設定遷移。Windows 安裝套件可能區分 x64、ARM64 等架構;macOS 則需要區分 Intel 與 Apple Silicon。選擇不相符的建置版本可能無法啟動,或在載入核心時退出。應在系統資訊中確認處理器架構,再選擇對應版本。
某些圖形用戶端依賴系統 WebView 或特定執行元件。如果日誌明確指出缺少執行環境,應透過作業系統或用戶端文件指定的方式修復元件。僅複製其他電腦上的動態函式庫檔案,容易引入版本與架構不一致,不適合作為穩定的修復方案。
覆蓋安裝也可能保留舊核心、舊服務或舊設定遷移標記。此時可以先備份資料,透過系統解除安裝流程移除舊程式,再安裝目前版本。解除安裝前必須記錄訂閱網址、自訂規則、連接埠與 DNS 設定。重新安裝後先以預設狀態啟動,確認介面與核心正常,再逐項恢復設定。
如果新版系統不再支援目前的用戶端,應選擇仍在維護且適用於該系統的 Clash 圖形用戶端。遷移時應關注設定與核心相容性,而不是只比較介面名稱。mihomo 設定中的部分欄位需要相應核心支援,將舊 Clash 設定遷移至新核心時,也應重新檢查 DNS、TUN 與規則提供器的行為。
依固定順序執行復原流程
閃退排查最容易陷入的問題,是同時修改太多內容。以下順序從低風險操作開始,每一步都能產生明確結論,適用於一啟動就退出、視窗未顯示、更新後崩潰及核心反覆停止等情況。
- 確認系統匣與程序:判斷是視窗隱藏、介面崩潰還是核心退出。
- 完整結束舊執行個體:關閉介面、核心與殘留服務,避免重複執行個體爭用連接埠。
- 讀取最近一次日誌:記錄停止階段與第一個關鍵錯誤,不要只看最後的連鎖錯誤。
- 切換基本設定:使用用戶端預設設定,確認 YAML 與訂閱是否為故障來源。
- 測試一般代理模式:暫時關閉 TUN,區分核心啟動問題與系統網路權限問題。
- 檢查監聽連接埠:確認 mixed-port、控制連接埠與 DNS 連接埠未被其他程式佔用。
- 核對程式架構與核心版本:確保用戶端、核心、作業系統與設定目標彼此相容。
- 重建本機狀態:備份後逐項重新命名快取、視窗狀態與資料庫。
- 最後再重新安裝:先驗證預設狀態,再恢復訂閱與自訂設定。
若完成上述步驟後仍然退出,應保存用戶端版本、作業系統版本、處理器架構、核心類型、關鍵日誌與可重現步驟。提交問題時請隱藏訂閱網址、節點憑證與控制介面密鑰,只保留與錯誤相關的欄位。完整的環境資訊有助於判斷是用戶端介面、mihomo 核心、設定產生器還是系統網路元件發生故障。
下載用戶端並繼續設定
依裝置平台選擇適用的 Clash 用戶端,恢復啟動後再檢查訂閱匯入、系統代理與連線狀態。