通用準備:客戶端、訂閱與接管方式
先釐清介面、核心與設定檔
Clash 通常泛指一類以規則為基礎的代理工具,實際安裝時需要選擇特定客戶端。客戶端提供操作介面、管理設定並申請系統權限;核心負責接收連線、解析網域名稱及執行分流。mihomo 是此生態系中的核心之一。介面能正常開啟,不代表核心已啟動;看到節點清單,也不代表系統流量已交由代理處理。
一般裝置建議先使用 Clash Plus;若需要其他介面或功能,再參考下載中心的平台清單。不要同時讓多個客戶端接管網路,以免搶用本機連接埠、系統代理或虛擬網卡。更換客戶端前,先記下原客戶端的連接埠與接管方式,關閉舊客戶端後再啟用新的,方便確認變更原因。
設定檔通常採用 YAML 格式,內容可能包含節點、策略群組、規則與 DNS。不同客戶端支援的匯入格式不盡相同,不能只看副檔名判斷是否相容。載入失敗時,先查看記錄判斷是語法錯誤、不支援欄位,還是下載要求失敗,再決定要修改檔案或更換訂閱格式。
準備訂閱並妥善保護存取憑證
客戶端本身不等於可用的代理服務。開始前,請準備自己有權使用的訂閱網址或本機設定檔,並確認服務仍在有效期限內。複製網址時,請使用訂閱服務提供者的複製按鈕,避免一併複製網頁說明、換行或尾端空格。若只有節點分享連結,請先確認客戶端是否支援該格式,不能直接將任意網頁網址當成訂閱匯入。
訂閱連結可能包含存取憑證,請當成密碼妥善保管。排查問題時只描述錯誤類型,不要在公開留言區貼出完整網址,也不要上傳含有實際節點密碼的設定檔。需要尋求協助時,請刪除訂閱參數、伺服器網址及驗證資訊,保留欄位名稱、縮排及錯誤行附近的結構。處理訂閱轉換前,請先閱讀訂閱轉換說明。
匯入成功後,先確認目前已選取該設定檔,再檢查策略群組中是否有可選節點。有些客戶端會將下載設定檔與啟用設定檔分成兩個步驟;更新按鈕顯示成功,只代表檔案已下載。若新設定檔載入失敗,客戶端也可能繼續使用上一份設定檔,請依據目前設定檔名稱與記錄確認,不要只憑成功提示判斷。
選擇系統代理或 TUN,避免重複接管
系統代理通常會讓遵循系統代理設定的應用程式連線至本機監聽連接埠,適合用來初步測試瀏覽器連線。TUN 透過虛擬網路介面接收更多類型的連線,也會涉及路由與 DNS。兩者並非單純的高低階之分:若系統代理已足敷使用,可先維持較小的接管範圍;遇到不遵循系統代理的應用程式,再考慮使用 TUN。
| 接管方式 | 主要涵蓋範圍 | 優先檢查項目 |
|---|---|---|
| 系統代理 | 遵循系統代理設定的應用程式 | 本機連接埠、應用程式本身的代理設定 |
| TUN | 由虛擬介面與路由接收的連線 | 系統授權、路由排除、DNS |
| 個別應用程式設定 | 指定的瀏覽器、終端機或其他程式 | 代理協定、位址與連接埠 |
安裝前請暫時關閉其他 VPN 與代理軟體,尤其是會修改預設路由的工具。公司裝置也可能受到組織政策限制,請勿規避管理要求。若網路原本需要透過網頁登入驗證,請先完成驗證再啟用代理,否則訂閱要求可能收到驗證頁面,而非預期的設定檔。
依照相同步驟完成首次驗證
先啟動核心,匯入並啟用設定檔,選擇規則模式,再選一個明確的節點,最後開啟一種接管方式。前往客戶端的連線頁面,存取已知目標,查看是否出現相應連線與規則記錄。驗證時每次只調整一項設定,並記下原值;同時更換節點、DNS 與模式,會讓成功或失敗都難以判斷原因。
Windows:安裝、服務模式與系統代理
依處理器架構選擇安裝檔,完成首次啟動
前往Windows 下載區,建議優先選擇 Clash Plus,也可依需求選用 Clash Verge Rev、FlClash 或 Clash Nyanpasu。Clash for Windows 已停止維護,封存版本適合用於舊環境移轉,不建議作為新裝置的預設選擇。介面名稱相似不代表設定目錄相同,更換客戶端前請先匯出必要設定。
在系統設定的「系統—系統資訊」中查看系統類型,並區分處理器架構與作業系統位元數。若下載頁未提供適用於此裝置的版本,請勿嘗試修改檔名安裝。執行安裝程式後,依指示選擇目錄;首次啟動時先使用一般使用者權限,只有在安裝系統服務、驅動程式等明確需要提升權限的操作時,才授予權限。
出現防火牆提示時,請依實際使用範圍決定是否允許通行。僅供本機使用的代理不需要對其他裝置開放區域網路入口。若確實要讓家中裝置共用代理,再檢查網路類型、監聽位址與防火牆範圍。請勿為了讓程式啟動而關閉整套防火牆,這會開放與故障無關的網路存取權限。
匯入訂閱並確認設定是否生效
開啟設定檔或訂閱頁面,選擇從網址匯入,貼上完整訂閱網址,並設定容易辨識的本機名稱。等待下載完成後,選取該設定檔,確認策略群組中看得到節點。先使用規則模式,再選擇一個手動節點,避免首次排查時受到自動策略切換影響。訂閱準備方式請參閱訂閱匯入指南。
若客戶端顯示解析失敗,請開啟記錄查看錯誤位置。YAML 縮排應使用空格,清單項目前的連字號也有結構上的意義。不要直接以其他客戶端的完整設定檔覆蓋現有檔案;有些擴充欄位僅適用於特定核心。新設定檔無法載入時,可先退回上一份可用設定檔,再單獨處理新檔案,避免故障導致整台裝置無法上網。
先測試系統代理,再決定是否啟用 TUN
在客戶端開啟系統代理後,前往 Windows 的代理設定確認本機位址與連接埠。介面可能顯示 HTTP 連接埠,也可能使用混合連接埠,請以目前客戶端顯示的數值為準。瀏覽器可以連線、某個應用程式卻不行時,請檢查該應用程式是否有自己的代理設定,或是否完全忽略系統代理,不要直接認定是節點失效。
需要使用 TUN 時,請先依客戶端提示安裝服務模式或相關網路元件,再開啟 TUN。服務安裝成功與服務正在執行是兩種不同狀態;若開關立即彈回,請查看記錄中是否有權限、建立裝置或寫入路由的錯誤。正常啟用後,請檢查連線頁面是否收到目標應用程式的要求,而不只是觀察系統匣圖示。
部分安全軟體會限制虛擬網卡、服務處理程序或網路篩選操作。請根據明確的記錄檢查相應權限,不必將整個客戶端目錄加入範圍過大的排除清單。若另一個 VPN 正在執行,請先關閉再重試。對於公司內網、遠端桌面與印表機連線,啟用 TUN 前請確認私有網段路由不會遭到錯誤接管。
關閉後無法上網與連接埠占用
客戶端關閉後,如果 Windows 仍指向已停止監聽的本機代理,遵循系統代理設定的應用程式就會連線失敗。請先重新啟動客戶端並關閉系統代理,再檢查系統代理設定是否已還原。若確定不再使用該代理,才清除遺留的手動代理項目;不要順手刪除組織提供的自動設定指令碼或原有網路政策。
記錄出現監聽失敗時,請檢查連接埠是否被舊客戶端占用。以下指令僅用於查看範例連接埠的監聽狀態;若實際連接埠不是此數值,請改用設定頁顯示的連接埠。依處理程序編號確認所屬程式後,優先正常關閉衝突程式,不要直接結束不熟悉的系統處理程序。
netstat -ano | findstr :7890
如果瀏覽器仍使用自己的代理擴充功能,即使系統設定正常,也可能繼續連線至舊連接埠。測試時請暫停擴充功能,使用預設網路設定再比較結果。重新啟動電腦只能清除部分暫存狀態,不能取代檢查代理位址、服務狀態與設定錯誤;網路恢復後請記下實際原因,避免下次啟動時再次發生。
設定自動啟動時,保留狀態檢查方式
先完整測試一次正常啟動、連線與關閉,再設定開機自動啟動。圖形介面、背景服務與自動啟用代理可能是各自獨立的選項,不要把介面啟動誤認為網路已接管。重新登入後,請確認目前設定檔與連線記錄,尤其要注意服務比使用者工作階段更早啟動時,是否能讀取使用者目錄中的設定檔。通用檢查方式請參閱開機自動啟動排查,完整的平台操作流程請參閱Windows 安裝與防火牆教學。
macOS:安裝授權、輔助服務與網路延伸功能
確認晶片架構與客戶端維護狀態
在 Apple 選單的「關於這台 Mac」中確認裝置使用 Apple 晶片或 Intel 處理器,再前往macOS 下載區選擇對應安裝檔。建議優先使用 Clash Plus,也可選用 Clash Verge Rev 或 FlClash;ClashX Meta 已停止維護,主要適用於舊設定相容與移轉情境。請勿將客戶端名稱中的 Meta 當成仍持續維護的證明。
開啟磁碟映像檔後,將應用程式複製到「應用程式」資料夾,再從該資料夾啟動。若一直從下載資料夾或磁碟映像檔執行,輔助服務路徑、自動啟動項目與更新行為可能不穩定。若系統提示檔案衝突,請先關閉正在執行的客戶端並備份設定,再依正常流程替換,不要同時保留多份會自動啟動的副本。
首次開啟時出現安全性提示,應根據來源判斷。建議重新下載可信的安裝檔,確認檔案是否下載完整並與系統相容。請勿直接執行網路流傳的全域停用系統保護指令。若仍出現「已損壞」或無法開啟的提示,請依照macOS 安裝授權說明逐項處理,不要把所有封鎖情況都視為同一種故障。
匯入訂閱,釐清應用程式權限與設定問題
啟動後進入設定管理,新增訂閱網址,等待下載完成並設為目前使用的設定檔。看到節點後,先選擇規則模式與一個手動節點。若匯入按鈕顯示成功但清單為空,請檢查訂閱是否回傳登入頁面或錯誤說明,也要確認客戶端支援該格式。取得系統網路權限並不能修正訂閱語法,兩類問題應分開驗證。
客戶端可能會要求安裝輔助工具,以便設定系統代理或執行需要較高權限的網路操作。只接受與目前操作相符的授權提示,並確認應用程式名稱。輸入系統帳戶密碼通常是為了授權系統變更,不代表密碼會寫入訂閱。若授權提示反覆出現,請檢查輔助服務是否安裝成功,以及應用程式是否仍位於原安裝路徑。
鑰匙圈提示應單獨判斷:它可能與應用程式儲存或讀取敏感設定有關,不能只因正在使用代理,就一律允許所有要求。更換帳戶密碼或移轉系統後,鑰匙圈狀態也可能影響讀取。請先確認要求來自目前使用的應用程式,再依系統提示處理,避免把無關的鑰匙圈問題誤判為節點驗證失敗。
檢查目前網路服務的系統代理設定
開啟系統代理後,請在系統設定的網路詳細資訊中查看目前使用的網路服務。Wi-Fi、有線網卡及其他連線可能分別儲存代理設定;在一個網路下生效,不代表切換至另一個網路後設定仍一致。使用自動代理指令碼的辦公環境,請先了解原有設定,避免客戶端切換時覆蓋組織要求的代理入口。
測試時先使用遵循系統代理設定的瀏覽器,並在客戶端連線頁面查找相應網域。終端機工具不一定會自動讀取圖形介面的系統代理設定,因此終端機連線失敗不能單獨證明系統代理無效。若應用程式有自己的代理選項,請只保留一條明確的連線路徑,避免系統代理指向客戶端、客戶端又被其他代理工具轉送而形成迴圈。
關閉客戶端前,先關閉系統代理,接著確認直連是否恢復。若異常結束後留下本機代理位址,可以重新開啟客戶端還原狀態,再正常關閉。手動清理時,只修改確定屬於該客戶端的項目,保留原本需要的自動探索、自動設定及其他網路服務設定,避免修復一處問題卻破壞整體網路設定。
TUN、網路延伸功能與內網路由
不同 macOS 客戶端採用的網路接管方式各不相同,可能使用輔助服務、虛擬介面或網路延伸功能。不要要求所有軟體都出現相同的授權視窗,請以目前客戶端的說明為準。若確實出現網路延伸功能的要求,請前往系統設定中對應的隱私權、安全性或延伸功能管理位置允許,再返回客戶端確認狀態。
TUN 啟用失敗時,先檢查系統授權與輔助服務,再檢查路由和 DNS。若啟用後只能瀏覽部分網站,請檢查是否有其他 VPN、篩選軟體或企業網路元件同時修改網路路徑。先逐一停用非必要工具進行比對,不要一次刪除所有網路服務。無法連線至區域網路裝置時,請檢查私有網段的直連規則與路由排除設定。
睡眠喚醒後網路短暫變化也值得單獨記錄:裝置可能更換了位址、預設閘道或 DNS,而背景連線仍保留舊狀態。請先等待目前網路完成連線,再查看核心記錄,必要時只重新啟動接管功能。若每次都必須重新啟動整個系統才能恢復,保留喚醒前後的記錄會比不斷更換訂閱更有助於找出原因。
Android:安裝應用程式、VPN 授權與背景執行
選擇符合處理器架構的版本並保留原有設定
前往Android 下載區選擇安裝檔,建議優先使用 Clash Plus,其他選項包括 Clash Meta for Android、FlClash 和 Surfboard。多數較新的裝置使用 ARM64,但仍應依裝置架構與客戶端支援情況選擇。若無法判斷架構,且下載區明確提供通用版本,可選用該版本;不要把所有手機都視為採用相同的處理器架構。
透過瀏覽器或檔案管理員安裝時,Android 可能會要求允許從該來源安裝應用程式。只授予此次安裝所需的來源權限,完成後可還原原設定。更新安裝若提示簽章不一致,請勿立即解除安裝舊版;先備份訂閱名稱、分應用程式設定與本機覆寫內容,再確認安裝檔來源及是否為同一個客戶端。
系統版本、廠商客製化設定與應用程式權限管理可能讓選單路徑不同,但判斷順序相同:先確認能否安裝並啟動,再處理網路接管。若應用程式一啟動就關閉,請先檢查系統相容性與安裝檔架構,不能靠修改 DNS 解決。請勿從不明來源安裝所謂的驅動程式修補程式,Android 客戶端通常透過系統 VPN 介面運作。
匯入訂閱並了解首次 VPN 提示
開啟設定管理,新增遠端訂閱或匯入本機檔案。為設定命名後執行更新,再切換為目前使用的設定檔,並檢查代理群組中是否有節點。部分客戶端需要在更新完成後返回主畫面啟動連線。若匯入的是檔案,後續遠端訂閱更新不會自動更新這份本機副本,請確認其更新來源,避免持續使用過期節點。
首次開始連線時,系統會提示建立 VPN 連線。這裡的 VPN 是 Android 提供的網路接管介面,不代表裝置會自動連線至另一家傳統 VPN 服務。授權後,客戶端才能接收系統交給它的流量;取消授權時,即使節點清單與規則都已載入,也不會開始接管應用程式連線。
Android 通常只允許一個一般 VPN 介面同時運作。另一個 VPN、使用本機 VPN 的篩選工具或某些防火牆應用程式啟動後,可能會取代目前連線。遇到開關立即關閉或狀態反覆變動時,請先檢查是否有其他應用程式占用介面,再檢查訂閱與節點,不要反覆匯入相同網址。
分應用程式代理與區域網路存取
Android 客戶端通常不依賴桌面系統的代理開關,而是在 VPN 接管範圍內處理連線。分應用程式清單可能採用「只代理選取的應用程式」,也可能採用「略過選取的應用程式」,兩者的意義正好相反。修改前請先閱讀目前模式的說明,選一個目標應用程式確認連線記錄,了解規則後再批次新增。
若某個應用程式始終未出現在連線頁面,請先檢查它是否遭到排除、是否位於工作設定檔空間,或是否由其他使用者執行。系統為個人空間與工作空間提供的網路範圍可能不同。修改分應用程式設定後,有時需要重新建立 VPN 並重新開啟目標應用程式;既有連線不會自動改用新的接管路徑。
螢幕投放、印表機、路由器管理頁等功能都需要存取區域網路。啟用代理後這些功能失效,請檢查私有位址的直連規則與客戶端提供的區域網路略過選項。允許區域網路裝置連線至手機代理,與手機本身略過區域網路是兩種不同概念:前者涉及監聽與分享,後者涉及路由範圍,不要將同一個開關誤當成兩種功能。
依實際斷線原因調整背景執行設定
螢幕亮起時正常、鎖定後卻斷線,請優先檢查電池最佳化、背景執行與廠商的應用程式清理策略。為客戶端允許合理的背景活動後,再進行一次鎖定測試,並觀察系統 VPN 圖示與重新開啟後的記錄。無需對所有應用程式開放背景權限,也不必只憑耗電提示就判定核心故障,應確認連線是否真的中斷。
「永遠開啟 VPN」與「封鎖未使用 VPN 的連線」是系統層級功能,啟用前請先了解如何還原。後者會在 VPN 尚未建立時限制網路,訂閱或客戶端故障時也可能造成整台裝置無法上網。建議先確認設定檔穩定,並記住系統 VPN 設定的入口,再決定是否啟用;不要把它當成修復連線失敗的按鈕。
從 Wi-Fi 切換至行動網路後,舊連線可能需要重新建立;行動網路的 IPv6、UDP 支援與目前節點路徑也可能不同。先比較同一節點在兩種網路下的表現,再更換節點或協定。只有一個應用程式失敗時,檢查分應用程式範圍;所有應用程式都失敗時,檢查 VPN 狀態與預設網路,依影響範圍縮小排查方向。
iOS:商店安裝、匯入設定與隨選連線
安裝 Clash Plus 並確認功能入口
iPhone 和 iPad 可從 App Store 安裝 Clash Plus,相關產品資訊請見官方網站 clashplus.io。也可以先查看iOS 下載說明。安裝完成後開啟應用程式,先熟悉設定、策略與連線狀態的位置,再匯入現有訂閱,避免把系統 VPN 設定頁面誤當成訂閱管理入口。
行動作業系統的接管方式與桌面系統不同,不需要照搬 Windows 的服務安裝步驟,也不必尋找同名的虛擬網卡驅動程式。客戶端通常利用系統提供的網路延伸功能建立 VPN 設定;系統設定負責授權與顯示連線狀態,節點、策略群組與規則仍由客戶端管理,兩處顯示的資訊用途不同。
首次啟動時可能會出現通知、網路或其他權限提示,請依功能用途逐項判斷。首次連線的 VPN 設定授權與一般通知權限並不相同。若取消網路接管授權,請返回應用程式重新發起連線,並依系統要求確認;只開啟通知權限不會讓代理自動生效,也不會補上缺少的訂閱設定。
匯入訂閱後,先檢查策略,不要反覆嘗試連線
在應用程式的設定管理中新增訂閱,貼上完整網址並執行更新。若透過分享選單匯入檔案,請確認檔案實際包含受支援的設定,而不是儲存下來的網頁內容。匯入後將其設為目前使用的設定檔,再查看代理群組中的可選項目。設定檔名稱只是本機標識,可依用途命名,但不要在名稱中儲存帳戶密碼或完整存取網址。
節點清單存在卻無法連線時,先選取一個明確節點並檢查目前模式。規則模式會依規則選擇策略;全域模式會將適用連線交給全域策略處理,並不能修復節點故障。首次驗證時可暫時減少變因,但日常使用仍應依存取需求與內網要求選擇模式,不必長期依賴全域模式掩蓋錯誤規則。
更新訂閱與既有連線並非同一個流程。更新成功後,仍需確認目前設定檔已套用;既有長連線也可能繼續使用舊路徑。測試新設定時,可以重新開啟目標應用程式,必要時重新建立 VPN,再到客戶端查看新的連線記錄。不要只重新整理同一個快取頁面,就判定新規則已生效。
VPN 狀態、隨選連線與其他網路工具
啟動連線並授權系統建立 VPN 設定後,請檢查系統設定中的連線狀態,再存取測試目標。VPN 顯示已連線,代表系統通道已建立,但不保證上游節點可用。若記錄中有連線但要求持續失敗,請繼續檢查節點驗證、伺服器可達性與規則目標,不要反覆刪除系統 VPN 設定。
隨選連線會在符合條件時由系統發起連線,不代表應用程式必須一直保持在前景。相關條件可能涉及網路類型或客戶端提供的策略,請以目前介面為準。初次設定建議先手動連線,確認正常後再啟用隨選規則;否則自動重新連線可能在排查時立即恢復連線,造成開關似乎無法關閉的錯覺。
其他 VPN 或同樣依賴網路延伸功能的工具,可能影響目前的連線路徑。排查時先暫停非必要工具,並檢查系統中是否留有舊 VPN 設定。只有確認不再使用時才刪除舊設定,並先透過對應應用程式停止連線。受管理裝置的網路政策可能無法自行變更,請遵守裝置管理要求,不要嘗試規避。
切換網路、DNS 與區域網路的界線
飯店、機場等網路可能要求先開啟驗證頁面。若代理在完成驗證前自動連線,訂閱更新或節點連線就可能失敗。可以暫時關閉隨選連線,完成網路驗證後再手動連線。不要將驗證頁面的跳轉網址存成訂閱,也不要因為在公共網路上連線失敗,就直接覆蓋原本可用的設定。
Wi-Fi 與行動網路的連線路徑不同,切換後短暫重新連線是需要觀察的網路變化。若只在某個 Wi-Fi 網路下失敗,請比較該網路的驗證狀態、DNS 與防火牆限制;若所有網路都失敗,再檢查節點和訂閱。測試時記錄應用程式是否有要求出現在連線頁面,這有助於區分接管範圍問題與上游連線問題。
區域網路權限會影響部分應用程式尋找附近裝置,但不能取代正確的代理規則。無法存取家庭儲存裝置、投放裝置或路由器頁面時,先確認目標是否為本機位址,再檢查客戶端的直連或略過設定。不要將所有無法開啟的網域都加入直連;若目標仍需要代理,這種修改只會把問題從規則階段轉移至直連階段。
iOS 上可查看的記錄與背景行為受系統機制影響。從多工畫面移除應用程式不一定等於停止系統 VPN,應用程式仍顯示在多工畫面中也不能證明連線正常。請交叉比對系統連線狀態、客戶端記錄與實際存取結果。決定停用時,請關閉隨選連線並停止 VPN,再確認網路已恢復至預期路徑。
Linux:桌面客戶端與 mihomo 背景服務
桌面安裝先選擇符合發行版的套件格式
桌面使用者可前往Linux 下載區選擇建議使用的 Clash Verge Rev,或使用 FlClash。依發行版選擇 DEB 或 RPM,並確認處理器架構及執行環境需求。不要只憑副檔名嘗試跨發行版安裝,也不要為了滿足相依性而直接替換系統關鍵函式庫。圖形介面無法啟動時,請先從終端機執行並查看相依性錯誤。
安裝後匯入訂閱、啟用設定檔與選擇節點的流程和其他桌面平台相近,但系統代理設定不一定涵蓋所有桌面環境與應用程式。瀏覽器、終端機和套件管理程式可能各自使用不同的代理來源。請先確認核心正在本機連接埠監聽,再為需要的程式設定代理,避免誤以為桌面設定成功就代表所有處理程序都已接管。
無桌面環境時,先準備設定檔與執行目錄
伺服器或路由器使用者可以直接執行 mihomo 核心。選擇符合系統架構的二進位檔,解壓縮後放入自行管理的可執行檔目錄。以下約定程式位於 /usr/local/bin/mihomo,設定檔位於 /etc/mihomo/config.yaml;這是本節的範例路徑,不要求覆蓋其他軟體已使用的目錄。
先建立專用服務帳戶與工作目錄,再放入現有設定檔,並限制設定檔的讀取權限。以下指令適用於提供相應工具的常見 Linux 系統,執行前請確認該帳戶尚未建立。設定涉及的規則集、資料庫與相對路徑,也應以工作目錄為基準檢查權限,不能只確認主檔案可讀而忽略相依檔案。
sudo useradd --system --home-dir /etc/mihomo --shell /usr/sbin/nologin mihomo
sudo install -d -o mihomo -g mihomo -m 0750 /etc/mihomo
sudo install -o mihomo -g mihomo -m 0640 ./config.yaml /etc/mihomo/config.yaml
sudo -u mihomo /usr/local/bin/mihomo -t -d /etc/mihomo
測試指令成功,只代表設定檔可以解析及檢查,不代表節點可用。首次執行時還可能需要取得設定引用的資源;網路受限或目錄寫入權限不足,都會影響這個流程。不要把解析成功當成部署完成,接著仍需檢查處理程序、監聽連接埠與實際要求,尤其要區分資料庫資源錯誤與節點錯誤。
使用 systemd 管理一般代理服務
以下服務單元適用於本機一般代理監聽,不啟用 TUN,也不額外授予網路管理權限。請將內容儲存為 /etc/systemd/system/mihomo.service,並確認執行路徑與實際位置一致。若發行版未使用 systemd,請改用該系統原生的服務管理方式,不要強行照搬指令。
[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
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
sudo journalctl -u mihomo -b --no-pager -n 80
以網路就緒為目標,不代表外部訂閱網址已可存取。若服務啟動時取得資源失敗,請查看記錄並依資源管理方式處理,不能只靠無限次重新啟動。修改設定前先保留可用副本,完成測試後再重新啟動;若持續進入重新啟動迴圈,請停止服務、修正設定後再啟動,避免持續向上游送出失敗要求。
終端機代理、遠端連線與 TUN 權限
執行暫時性的終端機工作時,可設定目前 shell 的代理環境變數。以下範例假設混合連接埠為 7890,只會影響讀取這些變數的程式,不會自動修改系統路由。請在不代理清單中加入本機服務,避免存取迴路位址時又轉送至代理。工具是否支援 SOCKS 與遠端解析,請以該工具文件為準。
export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890
export no_proxy=localhost,127.0.0.1,::1
curl -I https://example.com
# 結束目前終端機工作階段的暫時設定
unset http_proxy https_proxy no_proxy
透過 SSH 維護伺服器時,請先保留第二個管理連線,再調整路由。TUN 需要存取虛擬網路裝置並具備必要的網路管理權限,上述低權限服務單元無法直接執行這些操作。請依系統與客戶端的實作方式另外設計權限,不要只把所有服務都改成 root。遠端裝置更應先規劃 SSH 回程路由與管理網段的略過設定。
預設僅供本機使用時,監聽位址應維持在迴路範圍,不要開放外部控制介面。若要向區域網路提供代理,必須一併考慮監聽位址、驗證與防火牆,不能只切換成允許區域網路。進階部署可繼續閱讀Linux 無桌面環境與 systemd 教學;確認一般代理運作穩定後,再逐項加入 TUN 或遠端管理需求。
常見設定問題:訂閱、規則、TUN 與 DNS
訂閱更新失敗:先區分要求與解析問題
更新失敗時,先確認要求是否取得設定檔。逾時通常與目前網路、存取路徑或伺服器回應有關;驗證錯誤應檢查訂閱效期與網址;若回傳網頁,可能是登入、驗證或錯誤頁面。不要立即將網址交給轉換服務,轉換無法修復服務到期問題,也可能讓原本私密的訂閱暴露給額外處理方。
下載成功但解析失敗時,請檢查內容格式、縮排與核心支援的欄位。客戶端可能快取上一次成功的設定檔,因此「仍可連線」不代表這次更新已生效。請保留錯誤行附近的去識別片段,再對照客戶端支援範圍排查。若需透過代理更新訂閱,請先確認現有可用設定檔能連線,避免形成必須先更新才能上網的循環。
規則與覆寫:依序比對,依來源維護
規則通常由上往下檢查,最先符合的規則會決定所用策略,末尾的 MATCH 負責處理其他情況。以下只展示規則結構,且設定檔中必須已存在名為 PROXY 的策略。網域規則與目標 IP 規則的判斷條件不同;若看到網域連線套用 IP 規則,請繼續檢查網域辨識與解析流程。
mode: rule
mixed-port: 7890
allow-lan: false
rules:
- DOMAIN-SUFFIX,github.com,PROXY
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- GEOIP,CN,DIRECT
- MATCH,PROXY
不要將手動規則寫在兜底規則之後。更新訂閱可能覆蓋直接編輯的內容,長期修改應使用客戶端支援的覆寫、合併或規則擴充機制,並檢查合併後的最終設定。策略名稱必須完全一致,包括空格與大小寫。直接複製他人設定中的群組名稱,卻未建立對應策略群組,是常見的載入失敗原因。
TUN 模式:權限、路由與迴圈檢查
TUN 一開啟就失敗時,先檢查授權、服務與虛擬裝置;啟用後整台裝置無法上網時,再檢查預設路由、DNS 與節點出口。自動路由需要避免將代理核心本身的出口再次送回 TUN,否則可能形成迴圈。桌面客戶端通常會處理相關設定,手動修改底層設定前,請確認不會與介面產生的路由設定衝突。
以下是 mihomo 的 TUN 欄位片段,不適用於直接貼到所有客戶端。啟用前必須完成平台權限設定;DNS 劫持範圍仍會受到系統、路由與實作方式影響。公司內網、其他 VPN 與遠端維護情境,應先規劃排除路由,不能把自動路由視為適用於所有網路的預設答案。
tun:
enable: true
stack: mixed
auto-route: true
auto-detect-interface: true
dns-hijack:
- any:53
DNS:分別驗證解析路徑與代理路徑
DNS 會將網域名稱解析為位址,規則則決定連線採用哪種策略;兩者彼此相關,但不屬於同一層。網域解析失敗時,更換節點未必有效;解析正常但連線失敗,也不一定需要修改 DNS。請先確認記錄中是否取得位址,再檢查連線採用的規則與策略。若瀏覽器啟用了加密 DNS,也要確認它是否繞過客戶端預計使用的解析路徑。
nameserver 指定一般解析上游,fallback 搭配篩選條件決定候選結果的使用方式,fake-ip 則透過合成位址保留網域對應關係。使用 IP 格式的上游可避免解析上游網域時遇到引導問題,但不代表適用於所有網路。以下為結構範例,實際可達性與隱私需求請自行評估。
dns:
enable: true
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
nameserver:
- https://1.1.1.1/dns-query
fake-ip-filter:
- '*.lan'
- localhost
變更解析模式後,系統與應用程式可能仍保留舊快取,既有連線也可能繼續使用舊位址。請先關閉測試應用程式的舊連線,再依平台清除相關快取或重新建立接管,不要連續修改多個欄位。DNS 劫持不能簡單等同於攔截所有加密 DNS;完整欄位說明請參閱Clash DNS 設定詳解。
開機自動啟動與還原:區分三種狀態
設定開機自動啟動時,應分別確認介面已啟動、核心正在執行、代理已接管。背景服務可能已執行但介面尚未開啟,介面也可能已啟動卻未啟用設定檔。重新啟動後請檢查記錄時間、目前設定檔與監聽連接埠,再確認系統代理或 VPN 狀態。網路尚未完成驗證、使用者目錄尚未解鎖或舊客戶端占用連接埠,都可能導致只有啟動時失敗。
每次變更後留下簡短記錄:修改欄位、原值、測試網路與結果。無法上網時,先關閉新增的接管方式,還原上一份設定檔,再逐層排查。若準備公開求助,只提供已去識別的記錄與最小重現步驟。對節點選擇有疑問時,可閱讀節點地區、協定與測速的取捨方法,不要只憑一次測試結果就刪除整份設定檔。
規則模式與全域模式結果不同,代表節點故障嗎?
不一定。兩種模式可能採用不同策略。先比較連線記錄中的規則、策略群組與實際節點,再檢查 DNS;只有確認連線路徑相同後,才適合繼續比較節點本身。
客戶端已連線,但某個應用程式沒有連線記錄,該怎麼辦?
先檢查該應用程式是否遵循系統代理、是否遭分應用程式清單排除,以及是否仍在使用舊連線。確認接管範圍後,再判斷是否需要 TUN,不要先修改所有節點與 DNS。