Clash 全平台設定指南

從選擇安裝檔到驗證連線記錄,依作業系統查閱。釐清用戶端介面、核心欄位與系統權限,逐步找出設定問題。

初次使用可先依快速入門教學完成匯入與連線;本頁適合核對平台差異、查閱參數及處理特殊情況。各用戶端的選單名稱可能不同,請以目前介面中的設定、代理、連線與記錄入口為準。

通用準備與設定界線

先釐清用戶端、核心與訂閱的分工

Clash 生態系中的圖形化用戶端負責匯入設定、管理策略群組、設定系統代理及顯示連線狀態;mihomo 等核心則負責解析設定、監聽本機連接埠並執行規則。訂閱是設定來源,可能包含代理、策略群組、規則與 DNS 設定。安裝用戶端不會自動提供可用的遠端代理。開始操作前,請準備有權使用的訂閱或設定檔,並確認提供者說明的格式、使用範圍與更新方式。

本指南優先介紹 Windows、macOS、Android 與 iOS 上的 Clash Plus 使用方式;Linux 桌面可選用 Clash Verge Rev 或 FlClash。不同用戶端對訂閱格式、擴充欄位與設定覆寫的支援並不完全相同,不能只憑檔名判斷相容性。下載前先查看平台下載選項與系統需求,再確認裝置架構。請勿將桌面用戶端的按鈕位置直接套用到行動版,也不要把舊版核心支援的欄位範圍視為整個生態系的共同標準。

準備資料與備份順序

儲存訂閱時請保留完整連結,包含查詢參數,但不要貼到公開聊天室、截圖或問題回報中。訂閱連結通常具有存取權限,若不慎外洩,請向提供者重新產生。安裝新用戶端前,先記下原有代理軟體的退出方式、系統代理目前狀態與自訂 DNS 設定。舊軟體可以暫時保留,但測試期間只執行一套流量接管工具。若裝置由公司或機構管理,請先確認管理政策是否允許變更代理、安裝網路延伸功能或建立虛擬介面。

首次匯入時盡量保留原始設定,只調整執行所需的最低限度選項。用戶端介面中的變更可能寫入應用程式資料庫、覆寫檔或記憶體中的執行設定,不一定會修改訂閱原文。備份時應一併保存訂閱來源、自訂覆寫與必要的應用程式設定。只複製快取中的 YAML,可能會漏掉介面上選取的策略或服務狀態。移轉裝置前可匯出本機備份,但備份也可能包含敏感資訊,請存放於受控位置。

建立可重複驗證的基準

啟動核心後,先檢查記錄是否出現設定解析失敗、連接埠遭占用或權限不足,再考慮切換節點。下表中的連接埠僅為常見範例,並非固定要求;所有測試都應改用用戶端實際監聽的連接埠。控制介面是用來管理核心,不是瀏覽器的代理入口。即使瀏覽器能連上控制介面,也無法因此正常轉送代理流量。監聽位址請限制在本機迴路範圍內,以降低服務意外暴露於區域網路的風險。

欄位範例檢查重點
mixed-port7890HTTP 與 SOCKS 共用的代理入口
external-controller127.0.0.1:9090管理介面,不能取代代理連接埠
allow-lanfalse是否允許其他裝置連線
moderule依規則比對,不代表所有連線都走代理

建議依序驗證「核心啟動、明確指定代理的請求、應用程式系統代理、TUN」四個層級。桌面端可先讓一個命令明確經過代理連接埠,確認設定流程正常後再開啟系統代理;只有應用程式不遵守系統代理,或需要接管其他流量時,才啟用 TUN。如此一來,發生異常時便能判斷是哪個層級造成變化。測速成功只代表測試目標的探測結果,不足以證明所有網站、通訊協定與應用程式都正常,更不能取代連線記錄檢查。

驗證時固定一個目標位址與一個應用程式,每次只變更一項設定,並記錄變更前後的記錄。瀏覽器可能重用既有連線,切換模式後請重新發出請求,必要時關閉舊連線。需要登入的網站也可能受到地區、時間與服務政策影響,不應把所有存取限制都歸因於代理。首次部署的目標是建立可理解、可復原的運作狀態,而不是一次開啟所有進階選項。

Windows 安裝與設定

安裝用戶端並確認核心狀態

前往Windows 下載區,優先選用 Clash Plus;若需要不同介面或工作流程,也可比較 Clash Verge Rev、FlClash 與 Clash Nyanpasu。Clash for Windows 已停止維護,屬於封存的用戶端,不建議作為新部署的預設選擇。下載前請在系統設定中確認系統類型與架構,並核對安裝檔的適用範圍。安裝程式出現安全警告時,先確認下載來源與發佈資訊,不要為了繼續安裝而永久關閉系統安全功能。

安裝完成後,先以一般使用者身分啟動,確認用戶端能開啟、設定目錄可寫入,且核心可以執行。若程式介面正常,但核心不斷退出,請查看記錄中的第一個錯誤,不要反覆按下連線按鈕。舊設定引用不存在的檔案、連接埠已被其他代理占用,或目錄位於受限位置,都可能導致啟動失敗。需要服務模式或 TUN 時,再依用戶端提示提升權限;日常使用不必長期以系統管理員身分執行整個應用程式。

匯入訂閱並選取實際設定

在設定或訂閱頁面新增遠端設定,貼上完整連結,設定容易辨識的名稱,再下載或更新。清單中出現設定項目後,還要確認已將它選為目前的執行設定。部分用戶端允許儲存多筆訂閱,但通常一次只會使用選取的設定與覆寫結果。若清單中已有代理,主畫面卻仍顯示舊策略群組,請檢查目前設定名稱與核心重新載入結果,不要重複匯入相同連結,增加不必要的副本。

訂閱匯入失敗時,先分辨是網路請求錯誤還是內容解析錯誤。連線逾時代表尚未取得有效回應;YAML 行號錯誤則表示已取得內容,但格式或欄位有問題。訂閱連結若回傳登入頁面、權限提示或 JSON 錯誤訊息,即使檔案已儲存,也不代表設定可用。更新前後可比較策略群組名稱與記錄,不要只憑清單中的更新時間判斷。若提供者變更了格式,請使用相對應的格式入口,不要任意刪除錯誤欄位。

系統代理、應用程式差異與 TUN

先選擇規則模式,在主要選擇群組中指定可用代理,再開啟系統代理。瀏覽器通常會使用 Windows 的使用者代理設定,但部分終端機程式、背景服務及自行設定網路的應用程式不會跟隨。可在 PowerShell 中使用下列命令進行明確代理測試。此處使用 curl.exe,避免命令別名造成參數差異;若實際連接埠不是 7890,請一併修改。請搭配用戶端的連線記錄確認實際出口。

curl.exe --proxy http://127.0.0.1:7890 --head https://example.com
Get-NetTCPConnection -LocalPort 7890 -State Listen

若第一個命令能連線,但瀏覽器失敗,請檢查系統代理位址、連接埠與瀏覽器擴充功能;若瀏覽器正常、某個命令列工具失敗,則檢查該工具的代理參數或環境變數。Windows 使用者代理設定與部分服務採用的 WinHTTP 設定並非同一套機制,不建議一開始就修改全域服務代理。公司電腦也可能由組織政策覆寫設定,導致代理開關自動復原或位址無法儲存;此時應先確認權限與管理政策。

TUN 用於接管更多應用程式的網路連線,通常需要服務元件、虛擬介面與相應權限。啟用前,先確認系統代理運作正常,再依用戶端提供的服務安裝流程完成授權。啟用後若所有連線中斷,請檢查虛擬網卡是否建立、預設路由是否異常,以及是否有其他 VPN 同時執行。不要反覆安裝不同來源的網路驅動程式。可先關閉 TUN,回到系統代理的基準狀態,再逐項檢查 DNS、路由與排除網段。

UWP、退出清理與升級

部分商店應用程式會受到本機迴路限制影響,無法直接存取本機代理入口。建議使用用戶端提供的迴路管理工具,只為必要的應用程式設定豁免;原理與命令詳見Windows UWP 迴路豁免筆記。迴路豁免只能解決本機存取限制,無法修復失效的訂閱、無法連線的代理或錯誤規則。若應用程式已由 TUN 接管,請先確認連線是否進入核心,避免混用兩種接管方式排查。

退出或解除安裝前,先關閉系統代理與 TUN,並確認系統設定已復原。若用戶端異常結束後瀏覽器顯示代理伺服器拒絕連線,請檢查 Windows 代理設定是否仍指向已關閉的本機連接埠。升級前保留使用者覆寫與訂閱來源;升級後重新檢查開機啟動與服務狀態。介面能開啟不代表背景服務仍正常。從睡眠狀態恢復後若出現異常,先重新建立連線並重新載入設定,再考慮重新安裝。

macOS 安裝與設定

選擇架構並完成首次授權

在「關於這台 Mac」查看晶片類型,再前往macOS 下載區選擇相符的安裝檔。建議優先使用 Clash Plus,也可依操作習慣選擇 Clash Verge Rev 或 FlClash。ClashX Meta 已停止維護,屬於封存選項;沿用舊工作流程前,請先評估相容性。Apple Silicon 與 Intel 的安裝檔不能只憑檔案大小判斷;即使系統能透過轉譯執行某些程式,仍建議優先選擇符合裝置架構的版本。

使用磁碟映像檔安裝時,請先將應用程式移至「應用程式」資料夾再啟動,避免長期從暫存掛載位置執行。首次開啟若出現系統封鎖提示,請確認下載來源,並查看系統安全性設定中的具體說明;不要批次移除整個下載資料夾的安全屬性。用戶端要求修改網路設定、安裝輔助工具或加入網路延伸功能時,先確認要求來自目前使用的應用程式。若輔助服務安裝成功後仍無法啟動,請查看應用程式記錄與系統授權狀態,不能只以密碼輸入成功作為判斷依據。

匯入訂閱並保留使用者設定

在設定管理中新增遠端訂閱,等待下載與解析完成,選取該設定後再進入代理選擇頁面。選單列顯示運作狀態,只代表用戶端或核心正在執行,不代表訂閱已切換至新項目。首次匯入後,請確認策略群組與規則是否完整;若設定引用外部規則集或代理集合,也要等待這些資源載入。某項資源請求失敗可能不會立刻讓整個應用程式停止,但會影響相關規則或策略的行為。

本機修改建議使用用戶端支援的覆寫機制,不要直接編輯每次更新都會取代的訂閱快取。修改前先確認覆寫是在訂閱解析前套用,還是在產生執行設定後套用;不同用戶端合併清單的方式可能不同。若同時設定多個 DNS 區塊或同名策略群組,請以執行設定中的最終結果為準。設定更新後先查看記錄,再確認必要欄位是否保留,避免誤以為檔案已儲存就代表核心正在使用該內容。

分別驗證系統代理與終端機代理

開啟系統代理後,瀏覽器通常會透過目前網路服務的代理設定連線。本機可能同時有 Wi-Fi、有線網路與其他網路服務;切換網路後,請重新確認用戶端更新的是正確服務。終端機工具通常需要明確指定參數或環境變數,不會自動讀取所有圖形介面設定。先用單次命令驗證,比直接修改 shell 啟動檔更容易復原。以下命令分別用來查看系統代理狀態與實際連接埠占用情形。

scutil --proxy
lsof -nP -iTCP:7890 -sTCP:LISTEN
curl --proxy http://127.0.0.1:7890 --head https://example.com

若要讓目前的終端機工作階段使用代理,可暫時設定 http_proxy 與 https_proxy;後者的值仍可使用 HTTP 代理入口,HTTPS 請求會透過 CONNECT 建立通道。不同工具對變數大小寫與 SOCKS 的支援各異,請查閱工具本身的說明。確認需求後再寫入 shell 設定檔,並記下如何撤銷。否則更換連接埠或退出用戶端後,終端機可能持續讀取舊變數,造成「瀏覽器正常、命令全部失敗」的狀況。

TUN、區域網路與睡眠恢復

需要接管不遵守系統代理的程式時,再評估 TUN 或用戶端提供的進階接管功能。相關功能可能需要安裝輔助服務或核准系統網路元件,授權入口會因 macOS 版本與用戶端實作而異,請依實際提示操作。不要照搬其他用戶端的授權步驟。啟用後先檢查 DNS 與連線記錄,再測試區域網路裝置、遠端桌面與開發服務,確認區域網路位址沒有被錯誤送往遠端代理。

若無法存取印表機、路由器管理頁面或本機開發網站,請檢查區域網路略過設定與路由排除,不要直接切換成全域模式。公司網路常有只能透過內部 DNS 解析的網域,公開解析器無法取代內部解析服務。切換辦公室網路、手機熱點或家用網路後,請重新測試內部網域與直連規則。遇到這類環境時,保留網路變更前後的記錄與 DNS 結果,比頻繁更換代理更能協助定位問題。

闔上螢幕進入睡眠後恢復連線時,舊 TCP 工作階段可能已失效。請先重新發出請求或關閉舊連線,再判斷是否需要重新啟動核心。若選單列狀態正常,但所有新連線都失敗,請確認網路是否已恢復、系統代理是否指向目前連接埠,以及輔助服務是否仍在執行。解除安裝前請關閉系統代理與接管功能,並依用戶端提供的流程處理輔助服務。不要只刪除應用程式圖示,就認定所有網路設定都已復原。

Android 安裝與設定

安裝檔、系統權限與 VPN 介面

前往Android 下載區,優先選用 Clash Plus,也可比較 Clash Meta for Android、FlClash 與 Surfboard。不同用戶端支援的訂閱格式與功能範圍可能不同,尤其 Surfboard 的設定語法不能直接視為 mihomo YAML。裝置通常採用 ARM 架構,但仍應依系統與安裝檔說明選擇;若安裝失敗,先確認架構、系統需求與已安裝應用程式的簽章是否相符,不要反覆安裝來源不明的套件。

透過瀏覽器或檔案管理員安裝時,系統可能會要求允許該來源安裝應用程式。只對可信任的目前來源授權,安裝完成後可依裝置管理需求撤銷權限。首次連線時出現 VPN 授權對話框,是 Android 的流量接管機制;授權後通常會顯示系統 VPN 圖示。這不表示訂閱由系統提供,也不代表所有應用程式都已依預期分流;實際接管範圍仍取決於用戶端的應用程式篩選、路由與執行設定。

匯入訂閱並首次連線

在設定頁新增 URL 設定或從檔案匯入,待內容下載完成後選為目前設定,再確認代理群組可供選擇。透過分享選單匯入時,請確認傳入的是完整訂閱連結,而不是網頁標題或遭截斷的文字。剪貼簿內容可能被其他應用程式讀取,匯入後不要長時間保留敏感連結。若連結只能在登入後的網頁中存取,請向提供者索取用戶端支援的訂閱入口,不能以瀏覽器登入狀態取代應用程式的請求憑證。

首次連線先使用規則模式,選擇明確的代理策略,再核准系統 VPN 請求。開啟瀏覽器前往測試網址,同時查看用戶端的連線記錄。若瀏覽器沒有任何新連線,先確認 VPN 服務是否已啟動、瀏覽器是否遭排除,以及目前執行的設定是否正確。若連線已進入核心但仍失敗,再依記錄檢查 DNS、遠端交握或規則選擇。狀態列上的鑰匙圖示不足以證明遠端代理可用。

應用程式分流與背景常駐

Android 常見的應用程式選擇方式有「僅代理選取的應用程式」與「略過選取的應用程式」兩種,清單的意義正好相反。設定後,請分別測試一個在清單內與一個不在清單內的應用程式,確認用戶端採用哪種邏輯。應用程式分流與網域規則也不在同一層:應用程式若被排除在 VPN 接管範圍外,連線就不會進入核心規則。此時修改 MATCH 或切換策略群組通常無效,應先調整應用程式接管範圍。

若鎖定螢幕後連線中斷,請優先檢查電池最佳化、背景活動限制、自動啟動與系統清理政策。不同廠牌裝置的選單名稱不一,可在系統的應用程式資訊頁查看電池與背景權限。只針對需要持續執行的用戶端調整設定,不必關閉整個系統的省電機制。完成設定後,請進行一次完整的鎖定、等待、喚醒與重新請求測試,觀察服務是否重新啟動、設定是否重新載入,以及背景工作是否受到個別網路限制。

DNS、其他 VPN 與網路切換

多數 Android 裝置在同一使用者環境中只能同時維持一個一般 VPN 服務。廣告封鎖、防火牆或其他網路工具也可能占用該介面,造成啟動一個應用程式後,另一個便中斷。請先停用其他 VPN 類工具再測試,避免誤以為用戶端隨機退出。系統的私人 DNS 設定也可能改變解析路徑;排查時先記下原設定,再暫時切回自動模式比對。確認原因後再決定長期設定,不要永久關閉所有安全功能。

從 Wi-Fi 切換到行動網路後,遠端位址解析、IPv6 可達性與既有連線狀態都可能改變。若只有舊連線失敗,可先中斷後重新連線;若所有新連線都失敗,請檢查訂閱是否限制網路、系統是否禁止應用程式使用行動數據,以及目前網路是否需要登入網頁認證。通常必須先完成本機網路登入。這類問題無法靠調整策略群組順序解決,請先確認基礎網路能正常開啟登入頁面。

系統設定中的「永遠開啟 VPN」與「封鎖未經 VPN 的連線」會改變用戶端停止後的網路行為。若啟用了封鎖選項,用戶端服務中斷後無法上網可能是系統預期的保護行為,不是額外故障。遠端協助前請先記下復原方式,避免解除安裝後不知道如何取消限制。定期更新訂閱時也要考慮背景請求條件;鎖定螢幕、省電或行動數據限制都可能延後更新。詳細排查方式可參考訂閱更新失敗與自動更新設定。

iOS 安裝與設定

透過 App Store 安裝 Clash Plus

iPhone 與 iPad 建議優先使用 Clash Plus。可從iOS 下載區前往 App Store,或直接開啟Clash Plus 的 App Store 頁面;專案官網為 clashplus.io。安裝前請閱讀 App Store 列出的系統需求與功能說明。桌面平台中同名的設定選項,不一定會在 iOS 上以相同方式呈現;操作時請以應用程式目前介面與系統授權提示為準。

首次建立連線時,通常需要允許新增 VPN 設定,並使用裝置密碼或系統驗證確認。這項設定是讓系統將相關流量交由應用程式的網路延伸功能處理,不是 Wi-Fi 密碼,也不是訂閱帳號。授權前請確認提示中的應用程式來源。若裝置受到描述檔或組織管理限制,可能無法新增個人 VPN;這屬於裝置政策範圍,重新貼上訂閱連結無法解決,應先檢查系統設定中的管理狀態與允許的網路設定。

匯入訂閱並確認設定生效

在應用程式中使用訂閱連結或檔案匯入功能,等待下載完成後選取要執行的設定。透過 Safari 開啟連結時,請分清楚訂閱資源與服務商的會員中心網頁;網頁能顯示內容,不代表複製到的網址就是訂閱網址。連結若含查詢參數,必須完整保留;輸入法替換標點或分享工具截斷參數都可能導致請求失敗。請勿將含私人訂閱資訊的頁面截圖上傳至公開討論區。

匯入成功後,先確認代理群組與選取項目,再建立 VPN 連線。若有多份設定,請確認目前選取的不是先前用來測試的本機檔案。更新訂閱可能會替換代理清單,但應用程式儲存的選取狀態未必仍對應舊名稱;更新後請檢查主要策略群組是否選到預期項目。若連線記錄顯示直連,不要立刻判定節點失效;還要確認規則是否原本就要求該目標直連,以及目前使用的是規則模式還是直連模式。

了解 iOS 的流量接管方式

iOS 用戶端通常透過系統網路延伸功能接管流量,不能照搬 Windows 的「填入本機連接埠並開啟系統代理」做法。Wi-Fi 詳細資訊中的 HTTP 代理屬於另一套設定,不要為了讓應用程式連線而隨意填入桌面範例位址。手機上的 127.0.0.1 指的是手機本身,不是同一網路中的電腦;將電腦用戶端的迴路位址複製到手機,無法建立跨裝置代理連線。區域網路分享還需要伺服器允許連線並設定正確的存取控制。

桌面文件中的 TUN、服務模式與系統代理開關,是用來說明不同的流量接管機制,不代表 iOS 必須找到同名按鈕才能運作。實際接管範圍、DNS 處理與可用規則,取決於用戶端實作及系統介面。若只有某個應用程式失敗,請先確認它是否建立新連線、是否使用應用程式內代理或獨立網路政策,再檢查規則。切換節點後,既有長連線可能仍沿用舊路徑;請重新發出請求再比較。

行動網路、隨選連線與復原

首次驗證時,建議先關閉其他 VPN 設定,在穩定的網路上手動連線,確認基礎連線正常後再考慮隨選連線等自動化選項。自動連線規則可能因網路變更而觸發,導致手動中斷後又自動連線;排查時先記下相關設定,再暫時停用自動觸發。若系統或第三方的其他隱私網路功能也同時執行,請分別測試各自狀態,避免多層網路處理讓請求路徑難以判斷。每次只變更一項功能,並保留可比較的結果。

從無線區域網路切換到行動數據後若連線失敗,請檢查系統是否允許 Clash Plus 使用行動數據、目前網路是否可用,以及遠端位址能否在該網路中解析。螢幕鎖定期間,網路延伸功能與主應用程式的運作方式不同,不能只因應用程式未顯示在前景就判斷服務已停止。若反覆中斷,請參考應用程式診斷資訊與系統 VPN 狀態,判斷中斷發生在本機還是遠端。大型規則設定應避免在排查期間不斷加入更多資源,先用較精簡且已知可用的設定驗證。

連線後若整部裝置都無法上網,先在應用程式中中斷連線,再到系統 VPN 頁面確認狀態;必要時暫時關閉隨選連線,避免中斷後立即重新連線。基礎網路恢復後,檢查最近一次訂閱更新、規則覆寫與 DNS 變更。刪除應用程式前,先匯出需要保留的設定,並確認其他裝置仍可存取訂閱來源。更多分層排查方式請見說明中心;提供診斷資訊時,只保留錯誤類型、必要欄位,以及已遮蔽敏感內容的記錄。

Linux 桌面與服務

分別選擇桌面用戶端與無介面部署方式

桌面使用者可從Linux 下載區選擇 Clash Verge Rev 或 FlClash,並先確認發行版的套件格式、架構與相依套件需求。圖形化用戶端負責管理訂閱與系統匣操作,但不同 Linux 桌面環境對系統代理的支援各異;設定寫入桌面環境,不代表所有程式都會讀取。無介面伺服器可直接執行 mihomo,透過設定檔與 systemd 管理。請選定其中一種作為主要管理方式,避免圖形化用戶端與獨立服務同時占用連接埠。

圖形化用戶端安裝後,先匯入訂閱、選取執行設定並檢查記錄,再設定桌面代理。若終端機命令沒有跟隨代理,請先用單次命令參數確認連線流程,不要立刻修改全域系統環境檔。伺服器部署則應先準備設定目錄與權限,確認執行帳號能讀取設定及其引用的規則資源。不要將整個使用者家目錄開放給服務,也不要為了排除單一權限錯誤,就遞迴授予所有人寫入權限,以免增加設定與訂閱外洩的風險。

命令列啟動與設定測試

以下範例假設 mihomo 可執行檔已安裝至 /usr/local/bin/mihomo,設定檔位於 /etc/mihomo/config.yaml。這些路徑僅為本例約定,實際部署可以不同,但命令與服務檔必須一致。先以前景模式驗證,再建立常駐服務。以下最小設定只驗證本機監聽與直連轉送,不包含遠端代理;它不能取代自己的訂閱,也無法證明特定代理出口可用。

mixed-port: 7890
bind-address: 127.0.0.1
allow-lan: false
mode: rule
log-level: info
rules:
  - MATCH,DIRECT
/usr/local/bin/mihomo -t -d /etc/mihomo -f /etc/mihomo/config.yaml
/usr/local/bin/mihomo -d /etc/mihomo -f /etc/mihomo/config.yaml
curl --proxy http://127.0.0.1:7890 --head https://example.com

先執行測試命令處理解析錯誤,再以前景模式啟動並觀察監聽記錄。規則資源、地理資料庫或代理集合可能需要額外檔案與網路請求;設定語法通過,不代表所有外部相依資源都已可用。若使用服務商提供的設定,請完整儲存後重新測試,並檢查引用路徑與執行目錄。前景驗證完成後應停止該程序,再交由 systemd 管理,避免背景服務啟動時只遇到連接埠遭占用,卻誤以為設定檔已損毀。

使用 systemd 管理一般代理服務

建立專用的 mihomo 系統使用者,授予該使用者工作目錄的讀取權限與必要的寫入權限,再建立以下服務檔。本例不啟用 TUN,並以一般使用者身分執行本機代理;不要直接套用於需要虛擬介面權限的服務。各發行版建立使用者的命令不同,請使用系統內建的帳號管理工具。若設定與快取目錄共用,請明確界定哪些檔案需要更新寫入,避免權限問題直到訂閱或規則更新時才浮現。

# /etc/systemd/system/mihomo.service
[Unit]
Description=mihomo local proxy
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
User=mihomo
Group=mihomo
WorkingDirectory=/etc/mihomo
ExecStart=/usr/local/bin/mihomo -d /etc/mihomo -f /etc/mihomo/config.yaml
Restart=on-failure
RestartSec=5
NoNewPrivileges=true
UMask=0077

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now mihomo
systemctl status mihomo --no-pager
journalctl -u mihomo -b -n 80 --no-pager

修改設定後,先以與服務相同的帳號和路徑進行測試,再重新啟動服務並查看本次啟動記錄。network-online.target 的實際等待效果取決於發行版是否設定相應的網路等待服務,無法保證此時一定能連上任意遠端資源。這份 unit 不會自動更新訂閱,應另行建立明確的下載、測試與替換流程;新設定驗證失敗時請保留舊檔,避免排程工作將錯誤頁面覆蓋為正式設定。

TUN 權限、容器與終端機環境

Linux TUN 需要可用的虛擬介面裝置、網路管理權限與適當的路由設定。不能只在 YAML 中設定 enable: true,就假設權限已經足夠。容器還會受到裝置映射、網路命名空間與能力限制影響;應先在主機環境釐清連線流程,再規劃容器接管。一般代理服務所需的權限限制,與 TUN 服務不同;修改前應評估所需權限及其範圍,不要為了掩蓋問題就直接將整套服務改以高權限執行。

終端機工作階段可依需求設定代理變數,但背景服務不會自動繼承互動式 shell 的所有環境;反過來說,mihomo 本身的訂閱或資源請求,也不應誤指向尚未啟動的代理入口。遠端伺服器調整預設路由前,請保留第二個管理連線工作階段與回復方式,避免 SSH 遭接管後失去連線。桌面與無介面的完整比較請見Linux 部署 mihomo 技術筆記。

常見設定問題與復原

設定檔解析與規則名稱

YAML 使用空格縮排,不可混用 Tab 字元;相同層級應保持一致,清單項目也要放在正確的父欄位下。出現行號錯誤時,除了檢查錯誤行,也要確認上一行的冒號、引號與縮排。將設定貼入豐富文字編輯器,可能帶入全形標點或不可見字元,建議使用純文字編輯器。不要為了掩蓋錯誤而刪除整段 rules,因為核心能啟動與流量分流符合預期是兩回事;刪除規則可能改變所有連線的路徑。

規則會依序比對,較明確的網域規則通常應放在通用的預設規則之前。以下僅為規則片段,PROXY 必須對應執行設定中既有的代理或策略群組。若訂閱使用其他群組名稱,應修改引用名稱,而不是另外建立空群組。設定中的名稱通常必須完全相符,大小寫、空格與符號差異都可能導致找不到目標。規則命中與策略群組的最終選擇也應分開檢查;命中代理群組,不代表該群組沒有選取 DIRECT。

rules:
  - DOMAIN-SUFFIX,github.com,PROXY
  - GEOIP,CN,DIRECT
  - MATCH,PROXY

系統代理正常,但 TUN 失敗

系統代理仰賴應用程式主動遵守代理設定;TUN 則透過虛擬介面與路由接管更多連線,兩者的權限、DNS 路徑與故障範圍都不同。若系統代理可用而 TUN 失敗,應先檢查權限與路由,不要立即更換訂閱。以下是 mihomo 的 TUN 欄位片段,並非獨立設定;用戶端可能會透過介面產生或覆寫這些欄位。啟用前需搭配完整的 DNS 設定,單獨複製片段無法保證各平台行為一致。

tun:
  enable: true
  stack: mixed
  auto-route: true
  auto-detect-interface: true
  dns-hijack:
    - any:53

DNS 劫持片段是針對相應的傳統 DNS 請求,不代表所有加密 DNS 都會以相同方式進入核心。瀏覽器的安全 DNS、系統私人 DNS、IPv6 路由與應用程式自帶的解析器,都可能改變觀察結果。先確認是網域解析失敗還是連線失敗,再決定是否調整 resolver、fake-ip 或路由排除。相關機制可參考TUN 模式與系統代理的差異,避免只為了單一應用程式的問題,就同時更動多個網路層。

訂閱更新、覆寫與外部資源

訂閱更新失敗時,請保留上一份可正常運作的設定,並記錄狀態碼、逾時類型或解析行號。網址失效、權限過期、回應內容被替換成網頁,或請求時網路不通,都需要不同的處理方式。若目前訂閱必須透過代理才能更新,而代理又依賴該訂閱,應預先準備可靠的更新路徑,避免陷入啟動循環。自動更新間隔應依提供者限制與實際需求設定,不要以高頻重複請求處理暫時性錯誤。

規則集合與代理集合可能各自有快取與更新時間,主要訂閱更新成功不代表所有資源都已更新。修改覆寫後,請檢查最終執行設定,特別核對連接埠、DNS、群組名稱、規則順序與監聽位址。若用戶端支援設定預覽或匯出,請留意內容可能包含訂閱資訊與驗證資料;向他人求助前應先遮蔽敏感資訊。若解析錯誤持續重現,提供精簡的必要片段通常比傳送整份私人設定更有幫助。

依現象判斷下一步

現象優先檢查驗證方式
本機代理拒絕連線核心執行狀態與監聽連接埠查看啟動記錄與連接埠占用情形
明確指定代理可用,但應用程式失敗應用程式接管方式與個別代理設定檢查連線記錄中是否出現請求
網域無法連線,但部分 IP 可達DNS 與解析路徑比對解析記錄與系統 DNS
更新後才開始出現異常群組名稱、覆寫與外部資源還原舊設定並比較差異

故障排除記錄至少應包含平台、用戶端名稱、目前模式、接管方式、錯誤發生階段,以及一筆已遮蔽敏感資訊的相關記錄。不要將節點測速、瀏覽器連線與背景更新視為同一項測試,它們可能使用不同的目標與請求路徑。若只有特定網站無法連線,也要考量目標服務本身的狀態、出口地區政策與帳號限制。先確認請求進入預期策略,再判斷遠端是否可達,比盲目切換模式更有效。

修復完成後,只將已驗證的最小變更寫回長期設定,並更新備份。升級用戶端、更換核心或移轉裝置時,請重新執行基礎驗證,不要直接沿用舊環境的結論。若要依問題快速定位,請前往說明中心;若要了解欄位含義,可查閱術語表。本頁著重跨平台差異,初次設定仍建議依照快速入門主流程逐步完成,避免基礎連線尚未建立,就加入進階功能。

Clash 最新版下載