安裝指南 · 依平台查閱

Clash 全平台
安裝與設定指南

從安裝套件到流量接管,逐一檢查設定、權限與網路狀態。

初次使用可先依快速入門教學完成基本連線。本頁供系統性查閱:先閱讀準備事項,再前往對應裝置的章節;遇到訂閱、DNS 或連線異常時,依最後一章逐步排查。各用戶端的選單名稱可能不同,請以目前介面和專案說明為準。

通用準備:確認平台、設定與流量接管方式

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

用戶端提供設定清單、代理開關與記錄介面;核心負責解析設定、比對規則並建立連線;訂閱則是服務提供者提供設定或節點資訊的入口。安裝用戶端不會自動取得可用節點。開始前,請準備具有使用權限的訂閱網址或本機設定,並確認適用於所選用戶端。請勿將帳戶登入頁面、付款頁面或瀏覽器網址列中的控制台網址當成訂閱連結。

mihomo 是代理核心,不等於某個圖形化用戶端。使用它的用戶端仍可能有不同的設定合併邏輯、權限管理與更新方式。本頁在 Windows、macOS、Android 和 iOS 優先推薦 Clash Plus;Linux 桌面環境則建議先查看 Clash Verge Rev。先依平台選擇工具,再確認設定格式,避免因產品名稱相近而混用不同格式。

確認作業系統與處理器架構

在 Windows 的「設定 → 系統 → 系統資訊」查看系統類型;在 Mac 的「關於這台 Mac」查看晶片或處理器;Android 可查看裝置資訊,並參照下載頁的架構說明選擇安裝套件。Linux 可執行 uname -m 查看架構,常見的 x86_64 對應 AMD64,aarch64 對應 ARM64。架構不相容時,程式可能無法啟動,反覆重新安裝設定也無法解決。

另請確認安裝套件的最低系統需求、可用磁碟空間與帳戶權限。圖形化用戶端、輔助服務與核心可能各有相容範圍,請以下載頁和專案說明為準。若裝置由公司或機構管理,先確認是否允許修改代理、安裝服務或建立虛擬網卡。請勿為了規避管理政策而刪除系統描述檔,也不要停用來源不明的安全元件。

辨識訂閱與本機 YAML

URL 訂閱是用戶端定期請求的網址;YAML 是常見的結構化設定文字,透過縮排表示欄位層級;Base64 則是一種文字編碼方式,本身不代表完整的 Clash 設定。有些網址會回傳完整 YAML,另一些只回傳節點字串。匯入失敗時,先確認格式,不要立刻更換核心。詳細差異請參閱訂閱連結與匯入格式說明。

訂閱網址通常含有存取憑證,應比照密碼妥善管理。複製時請保留完整查詢參數,不要自行加入引號、空格或換行。需要尋求協助時,請隱藏網域以外的敏感路徑與參數,截圖也要檢查是否露出 QR Code、節點密碼或控制介面資訊。請勿將實際網址貼到陌生的轉換網站;若確實需要轉換,先了解服務端會接觸哪些設定內容。

先使用系統代理,再評估 TUN

系統代理會將遵循作業系統代理設定的應用程式請求,送至本機監聽連接埠,適合用來初步確認瀏覽器連線。TUN 是虛擬網路介面,可在網路層接管更多符合路由條件的流量,但仍受略過規則、應用程式範圍與防火牆影響,並不代表所有流量都會自動經由代理。TUN 通常需要額外權限,也較容易與其他 VPN 或虛擬網卡產生路由衝突。

方式適用情境檢查重點
系統代理瀏覽器及遵循系統設定的應用程式監聽位址、連接埠與系統開關
TUN需要在網路層接管的應用程式服務權限、路由與 DNS
應用程式個別設定終端機或提供代理選項的軟體代理協定與應用程式自身設定

準備階段先退出其他代理工具,記下原本的代理與 DNS 設定,再建立最基本可用的連線。不要同時修改規則、節點、DNS 與接管方式,否則發生問題時很難判斷原因。以下片段僅說明本機監聽範圍,需合併至現有可用設定,不包含遠端節點,也無法單獨提供代理連線。

mixed-port: 7890
allow-lan: false
bind-address: "127.0.0.1"
mode: rule
log-level: info

Windows:安裝用戶端並確認本機代理

下載後完成首次啟動

前往Windows 安裝套件清單,優先選擇 Clash Plus。其他選項依序為 Clash Verge Rev、FlClash、Clash Nyanpasu,以及已停止維護的 Clash for Windows。新環境不建議優先選用已封存的用戶端,因為舊介面、核心功能與新設定欄位可能不相容。若需遷移,請保留原設定副本,不要先移除仍可正常運作的環境。

依系統類型選擇安裝套件,在本機磁碟完成安裝,再從開始功能表啟動。若系統顯示安全性警告,先確認下載來源、發行者資訊與套件來源,不要直接關閉所有防護功能。首次執行時先使用一般權限;只有在安裝輔助服務、調整虛擬網卡等操作明確需要時,才透過系統授權視窗提升權限。公司裝置出現封鎖提示時,請先洽詢裝置管理員。

匯入訂閱並確認已選取

進入用戶端的「設定」或「訂閱」頁面,選擇從 URL 匯入,貼上完整網址並儲存。匯入成功後,確認設定清單已新增項目,再將它設為目前使用的設定。清單中有訂閱,不代表核心正在使用該訂閱;部分用戶端可同時儲存多份設定,但只有目前選取的內容會在啟動時生效。接著開啟代理群組頁面,確認看得到該設定所定義的群組名稱。

若要匯入本機 YAML,請使用檔案匯入功能,並保留原始檔案作為備份。請勿讓文字編輯器自動附加副檔名而造成雙重副檔名,也不要以定位字元取代空格縮排。訂閱更新後,手動修改的內容可能會被覆蓋;長期需要的本機規則應放在用戶端支援的覆寫或合併區域。每次更新後先查看錯誤記錄,再決定是否還原舊設定。

啟用系統代理並逐步驗證

確認核心正在執行後,再啟用用戶端的系統代理。開啟 Windows「設定 → 網路和網際網路 → Proxy」,確認用戶端寫入的本機位址與連接埠。請以用戶端目前顯示的連接埠為準,不要因為教學使用 7890 就照抄。若連接埠已被其他程式使用,可關閉衝突程式或更換監聽連接埠,並同步修改所有手動設定過代理的應用程式。

先瀏覽平時可直接連線的網站,再瀏覽需要代理的目標,同時觀察用戶端的連線記錄。前者用來確認基本網路是否正常,後者則用來檢查規則與代理出口。瀏覽器可正常瀏覽,不代表 PowerShell、Microsoft Store 或其他應用程式也已接管流量。可在終端機使用以下單次請求測試本機 HTTP 代理,連接埠須與目前設定一致;此測試不會修改全域環境變數。

curl.exe --proxy http://127.0.0.1:7890 --head https://example.com

TUN、UWP 與防火牆的限制

只有在確定有應用程式不遵循系統代理時,才評估使用 TUN。依用戶端提示安裝或啟動輔助服務,完成系統授權後再啟用虛擬網卡接管。測試期間先關閉其他 VPN,並檢查路由是否遭到重複接管;遠端辦公通道、虛擬機網卡與遊戲加速工具都可能改變路由。啟用後若整體網路異常,先關閉 TUN,回到已確認可用的系統代理方式,不要繼續堆疊 DNS 修改。

部分 UWP 應用程式存取本機代理時,會受到迴圈存取隔離限制。先確認問題是否只出現在特定應用程式,再查看用戶端是否提供迴圈存取管理功能,依實際需求授予例外。不要直接對所有應用程式解除隔離。防火牆詢問網路存取權限時,也要區分本機連線與區域網路共享:若只供本機使用,通常不需要將代理連接埠開放給同一 Wi-Fi 網路上的其他裝置。

處理休眠、退出與用戶端遷移

從休眠喚醒或切換網路後無法連線時,先確認核心是否仍在執行,再關閉並重新啟用系統代理。有些環境會由管理政策或其他軟體重新寫入代理設定,導致開關雖然已開啟,系統位址卻已變更。若記錄顯示監聽失敗,請檢查連接埠衝突;若已建立連線但目標逾時,再檢查節點與規則,避免將所有問題都歸因於 Windows 權限。

正常退出前,先關閉系統代理與 TUN。若程式異常結束後瀏覽器無法連線,請返回系統代理設定,清除用戶端留下的手動代理值,再測試直接連線。遷移至新用戶端時,先關閉舊用戶端的流量接管與開機自動啟動,只匯入必要設定,確認正常後再解除安裝舊程式。不要讓兩個用戶端登入後爭用相同連接埠與系統代理開關。

macOS:拖移至 Applications 後完成流量接管

依晶片選擇並安裝應用程式

開啟「蘋果選單 → 關於這台 Mac」。若顯示 Apple 晶片,請選擇 Apple Silicon 或 ARM64 安裝套件;若顯示 Intel 處理器,請選擇 Intel 或 x64 安裝套件。前往macOS 下載專區,優先安裝 Clash Plus,也可選擇 Clash Verge Rev 或 FlClash。ClashX Meta 已停止維護,僅供封存用途;使用前請確認設定相容性與系統支援範圍。

開啟 DMG 磁碟映像檔,將應用程式圖示拖移至 Applications 資料夾,等待複製完成,再從「應用程式」資料夾啟動。不要長期從磁碟映像檔直接執行應用程式,否則更新、權限記錄與路徑辨識可能發生問題。複製完成後可退出磁碟映像檔。替換既有應用程式時,先結束舊程序並備份設定,再依系統提示完成替換。

首次啟動時若出現安全性提示,先確認下載來源與提示內容。確認應用程式可信後,才使用系統設定中提供的允許開啟選項;不要照抄移除隔離屬性或停用系統保護的終端機指令。輔助服務授權與首次開啟應用程式是兩回事;後續安裝服務時再次出現管理員驗證,屬於另一項操作,請每次確認授權對象。

匯入訂閱並選擇代理群組

在設定頁選擇 URL 匯入或本機檔案匯入,儲存後將該項目設為目前使用的設定。等待核心載入成功,再前往代理群組選擇節點。規則模式會依設定中的比對條件決定直連或代理;全域模式通常會將未略過的流量交由全域策略群組處理,不能取代系統層級的流量接管。切換至全域模式後仍看不到連線記錄時,應先確認應用程式流量是否進入用戶端。

不要只看節點測試結果。測試目標、協定與實際應用程式請求可能不同,單次測試成功並不能證明所有網站都能存取。先固定一個可用節點,使用同一目標重複測試,再逐步恢復自動選擇。訂閱更新失敗但舊節點仍可使用時,保留目前設定,另行排查訂閱取得途徑,不必立刻清除所有節點與策略選擇。

確認系統代理與網路服務

啟用用戶端的系統代理後,在「系統設定 → 網路」選取目前使用的網路服務,並在詳細資訊中的代理設定查看結果。不同 macOS 版本的選單名稱略有差異,請確認實際連線使用的是 Wi-Fi、乙太網路或其他服務。切換網路介面後,若用戶端未同步寫入設定,請重新切換系統代理並檢查目前介面,不要只看選單列的開關。

瀏覽器通常可用來驗證系統代理,終端機工具則可能需要另外指定代理參數。以下指令只影響這次請求,適合用來確認監聽連接埠是否可用。若回覆連線遭拒,請檢查核心與連接埠;若可連上本機代理但遠端逾時,請檢查代理群組、節點與目標規則。使用 SOCKS 時,也要確認網域名稱是由本機解析,還是交由代理解析。

curl --proxy http://127.0.0.1:7890 --head https://example.com
curl --proxy socks5h://127.0.0.1:7890 --head https://example.com

安裝輔助服務並啟用 TUN

TUN 通常涉及虛擬介面、路由與 DNS 設定,且需要用戶端支援相關功能。依介面提示安裝輔助服務,閱讀系統授權說明後再啟用 TUN。有些用戶端的普通系統代理也可能依賴輔助元件,不要把「安裝服務」等同於「已啟用 TUN」。完成後請檢查目前狀態與記錄,確認服務可用且設定已成功載入,而不只是授權視窗已關閉。

若啟用後無法存取本機裝置、企業內網或遠端連線,先停用 TUN 以恢復連線,再檢查私有網段略過設定與路由策略。不要直接刪除系統路由表,也不要在遠端管理工作階段中首次測試全面接管。兩種方式的適用範圍可進一步參閱macOS 系統代理與 TUN 原理比較,再決定是否長期啟用。

處理更新、遷移與殘留設定

應用程式更新後若權限異常,先完全結束程式再重新啟動,並確認是否需要依用戶端提示更新輔助服務。Apple 晶片裝置即使能執行舊架構程式,也不代表應長期保留該安裝套件;原生版本可減少相容層依賴,但實際功能仍取決於用戶端實作。遷移時分別備份訂閱來源、本機覆寫與必要設定,不要直接複製用途不明的整個快取資料夾。

解除安裝前先關閉系統代理與 TUN,再使用用戶端提供的服務解除安裝功能。只將應用程式拖進垃圾桶,不一定會還原系統代理或移除獨立服務。若解除安裝後無法上網,先檢查目前網路服務的代理頁面是否留有殘存位址,還原原設定後測試直接連線。若需進一步排查,記錄出錯操作與記錄中的時間點,再前往常見問題比對症狀。

Android:授權 VPN 並管理背景執行

選擇安裝套件並保留原設定

前往Android 下載專區,優先選擇 Clash Plus,其他選項依序為 Clash Meta for Android、FlClash 與 Surfboard。不同用戶端支援的設定內容不盡相同,尤其不能只因為都支援代理,就假設完整 YAML 可以互通。先確認訂閱提供者支援的用戶端與格式,再依裝置架構選擇安裝套件;不確定時請參考裝置製造商提供的系統資訊。

安裝 APK 時,Android 可能要求授予瀏覽器或檔案管理員安裝未知應用程式的權限。只對本次使用的來源授予必要權限,完成後即可關閉該權限。安裝時若出現衝突,先確認是否已有相同套件名稱的應用程式,以及簽章是否不同,不要立即解除安裝,因為解除安裝可能同時刪除本機設定。從其他來源遷移前,請先匯出可還原的資料,並確認訂閱仍可重新取得。

匯入後確認設定與啟動狀態

開啟用戶端設定頁,從剪貼簿、URL 或本機檔案匯入。儲存後確認更新結果,再將該設定設為目前使用項目。若透過系統分享選單匯入,返回用戶端確認新項目確實存在,不要把「分享完成」當成「核心載入成功」。遇到解析錯誤時,查看記錄中的欄位或行號;同一網址即使能在瀏覽器開啟,也可能回傳登入頁面,而非設定本文。

首次連線前先固定代理群組的選擇,並保留規則模式,方便後續比較。若用戶端提供依應用程式代理的功能,先確認選擇的是「僅代理選取的應用程式」還是「略過選取的應用程式」,兩者意思相反。啟用後只有部分應用程式經由代理,通常與範圍選擇有關;此時先檢查連線記錄,不要直接判定為節點失效。

了解系統 VPN 授權

多數 Android 代理用戶端透過系統 VPN 服務接管本機流量,首次啟動時會出現系統授權對話框。確認授權對象是正確的應用程式後允許連線,再查看狀態列或系統 VPN 頁面。此處的 VPN 指系統提供的流量接管通道,不代表遠端服務一定使用傳統 VPN 協定。用戶端內部使用的代理協定、DNS 與規則仍由實際設定決定。

一般情況下,同一個使用者空間無法同時由兩個一般 VPN 應用程式接管流量。廣告攔截、企業連線與其他網路工具也可能占用此通道。啟動後立即斷線時,先停止其他 VPN,再測試目前的用戶端。不要反覆切換多個應用程式爭用連線;若裝置設定了永遠開啟 VPN 或中斷時封鎖連線,也要確認這些選項指定的是哪個應用程式。

處理背景限制與網路切換

鎖定螢幕後斷線時,先查看電池最佳化、背景活動與製造商的自動啟動管理。依裝置系統提供的選項,允許用戶端在必要範圍內於背景執行,並保留系統要求的常駐通知。設定名稱會因製造商而異,不需要一次關閉所有省電策略。先確認鎖定螢幕幾分鐘後的狀態,再測試較長時間待機,以區分程序遭清除、網路休眠與遠端連線逾時。

從 Wi-Fi 切換至行動網路時,原有連線可能需要重新建立。先等待網路恢復,再觀察核心記錄是否開始重新連線;若一直失敗,停止後重新啟動用戶端連線。使用行動網路時,也要確認系統是否限制該應用程式使用行動數據,以及訂閱更新是否設定為僅在 Wi-Fi 下執行。流量統計由系統或服務提供者計費,用戶端的連線狀態不能取代資費方案餘額查詢。

檢查私人 DNS、區域網路與退出後的網路復原

Android 的私人 DNS、應用程式內的加密 DNS,以及用戶端的 DNS 接管,可能形成不同的解析路徑。網域無法開啟但本機監聽正常時,先記下私人 DNS 原值,再依用戶端說明進行單一變數測試。不要直接認定關閉加密 DNS 就能解決所有問題;應檢查失敗目標、解析錯誤與比對規則,並在驗證後還原需要的設定。

印表機、螢幕投放與家用裝置探索功能都需要區域網路存取。啟用代理後找不到裝置時,請確認是否已略過相關私有位址,以及用戶端是否支援所需的本機流量處理方式。修改路由前先關閉連線進行比較,確認問題確實由流量接管引起。若停止用戶端後仍無法上網,請查看系統是否啟用了 VPN 中斷時封鎖連線,並恢復正常網路設定。

日常更新時,先在用戶端重新整理訂閱,再判斷是否需要更新應用程式。匯出記錄前,請移除訂閱網址、密碼與目標網站中的個人資訊。若某個應用程式始終直接連線,請檢查應用程式的代理範圍與既有長連線;必要時先儲存工作,再重新啟動該應用程式,並查看新的連線記錄。

iOS:安裝 Clash Plus 並建立系統連線

從 App Store 安裝並確認應用程式資訊

iPhone 和 iPad 優先使用 Clash Plus。開啟Clash Plus 的 App Store 頁面,依商店顯示的資訊完成安裝;產品官網為 clashplus.io。也可從本站的iOS 下載專區前往同一個商店頁面。系統需求與目前可用功能請以商店及應用程式說明為準,不要參照其他平台的截圖來判斷手機版選單。

安裝前請確認裝置有足夠儲存空間,且能正常存取 App Store。受組織管理的裝置可能限制 VPN 設定或應用程式安裝,遇到限制時請先確認管理規範。不要刪除組織提供的描述檔來強行連線。安裝完成後,先開啟應用程式了解設定匯入入口與連線開關,暫時不要搭配其他網路工具,以免首次驗證時同時出現多個變因。

依應用程式支援的格式匯入訂閱

在應用程式中尋找訂閱或設定匯入入口,貼上服務提供者給的相容網址,再執行取得或更新。若透過 QR Code 匯入,先確認來源可信,並避免在他人看得到的螢幕上顯示含有憑證的內容。網址中的查詢參數不可遺漏;通訊軟體自動加入的句號、空格或換行,也可能導致請求失敗。

匯入後先確認設定中是否出現可選策略或節點,再查看是否有明確的解析錯誤。不要假設桌面版可用的每個 YAML 欄位,在手機版都具有相同意義;應用程式可能使用自己的匯入與轉換邏輯。遇到不支援的欄位時,優先取得相容設定或查閱應用程式文件,不要任意刪除 DNS、規則與策略群組,以免留下表面上能載入、實際行為卻已改變的設定。

若應用程式提供設定選擇功能,請確認目前啟用的是剛匯入的項目。多份訂閱並存時,名稱應清楚區分用途,避免誤將過期設定設為目前項目。更新失敗時保留原項目,查看失敗原因與服務帳戶狀態。已有節點可以連線但訂閱無法更新,表示問題出在取得設定的路徑,不應反覆刪除系統 VPN 設定來處理。

允許系統新增 VPN 設定

首次啟動連線時,iOS 可能要求允許應用程式新增 VPN 設定,並透過系統驗證確認。核對應用程式名稱後完成授權,再返回應用程式查看狀態。系統顯示 VPN 圖示,代表網路延伸功能正在執行,不代表遠端節點已成功建立所有連線。接下來仍須透過目標網站存取、應用程式記錄或錯誤資訊判斷實際結果,不能只憑開關就認定設定完成。

手機通常使用系統網路延伸功能接管流量,不應照搬桌面版的本機系統代理設定步驟。也不要為了「以防萬一」同時在 Wi-Fi 設定手動代理:切換至行動網路後該設定未必適用,還可能造成雙重代理。保留單一流量接管方式,先確認 Wi-Fi 可用,再測試行動網路;若有區域網路代理需求,請依獨立情境設定。

分別驗證 Wi-Fi、行動網路與本機存取

先在穩定的 Wi-Fi 網路下連線,開啟平時可直接連線的頁面,再開啟需要代理的目標。若前者正常而後者失敗,請檢查策略群組、節點與比對規則;若兩者都失敗,先中斷用戶端連線以確認基本網路,再回頭排查設定與流量接管。測試時固定目標與節點,避免連續更改多項設定後無法重現結果。

接著切換至行動網路,確認應用程式已獲准使用行動數據,並觀察連線是否重新建立。切換網路會讓部分既有工作階段中斷,重新開啟頁面比只看舊頁面是否仍顯示更有參考價值。遇到飯店、校園等需要網頁認證的 Wi-Fi 時,先暫停代理並完成網路登入,再啟動連線。尚未完成認證時,節點與 DNS 錯誤可能只是上游網路尚未開放存取。

存取印表機、路由器管理頁或其他本機裝置時,請確認用戶端是否需要本機網路權限,以及規則是否保留相應的直連路徑。系統的隱私網路功能、其他 VPN 與管理政策也可能影響存取,應逐項暫停測試,不要長期關閉所有隱私設定。每次測試都記下原值,確認原因後只調整必要項目。

管理自動連線與設定復原

若應用程式支援隨選連線或自動復原,先確認手動連線穩定,再啟用相關功能,並分別測試鎖定螢幕、喚醒與切換網路。前景應用程式遭系統回收,與網路延伸功能停止並非同一回事;判斷時應同時查看系統 VPN 頁面與實際存取結果。不要照搬 Android 的背景執行白名單步驟,iOS 的權限與生命週期機制不同,應用程式可提供的選項也不一樣。

停止使用時先在應用程式內中斷連線;若要移除 VPN 設定,再前往系統設定中的 VPN 管理頁面操作。移除系統設定不等於取消訂閱服務,也不保證應用程式中的訂閱資料會同步刪除,請分別確認。重新安裝前備份可還原的設定來源,並確認仍能登入服務帳戶。尋求協助時說明裝置系統、網路類型與失敗步驟即可,不要公開完整的訂閱 QR Code。

Linux:安裝桌面用戶端與透過 systemd 執行核心

選擇圖形化用戶端或獨立核心

桌面使用者可先查看Linux 下載專區,推薦 Clash Verge Rev,也可選擇 FlClash。依 Linux 發行版選擇 DEB 或 RPM,並確認套件架構與系統相符。不要將桌面用戶端安裝在沒有圖形工作階段的伺服器上,期待出現系統匣視窗。伺服器、路由器與需要透過指令碼管理的環境,可選用 mihomo 獨立核心,但須自行管理設定、權限與服務生命週期。

安裝桌面套件時,請使用發行版的套件管理器處理相依套件;若缺少執行階段程式庫,先閱讀套件管理器的輸出,不要隨意下載共用程式庫覆蓋系統目錄。啟動後確認系統匣、設定儲存與系統代理功能是否相容於目前的桌面環境。GNOME、KDE 與其他環境的代理設定入口各不相同,而且命令列程式不一定會讀取桌面代理設定,因此圖形介面開關不代表所有程序都已接管。

匯入設定並測試監聽連接埠

圖形化用戶端請依設定頁面匯入訂閱,選取後再啟用系統代理。獨立核心則需要準備完整的 YAML,並包含實際可用的代理與規則。以下指令假設已將符合架構的執行檔安裝至 /usr/local/bin/mihomo,並將可用設定儲存在指定路徑;此指令只會檢查設定,不會代為取得節點,也不會安裝系統服務。

/usr/local/bin/mihomo -t -f /etc/mihomo/config.yaml

確認檢查成功後,先以前景方式執行,觀察是否能讀取設定、規則檔與必要資料庫,再從另一個終端機發出代理請求。工作目錄必須具備所需的讀寫權限;設定若使用相對路徑,也要確認資料目錄。不要直接在正式伺服器上首次啟用全域路由接管,尤其不要在唯一的 SSH 工作階段中測試可能改寫預設路由的設定。

/usr/local/bin/mihomo -d /var/lib/mihomo -f /etc/mihomo/config.yaml
# 在另一個終端機執行;連接埠以實際設定為準
curl --proxy http://127.0.0.1:7890 --head https://example.com

使用一般帳戶建立 systemd 服務

需要持續執行時,先建立專用服務帳戶與資料目錄,再將已確認可用的設定放入設定目錄。以下範例適用於一般 HTTP、SOCKS 監聽,不會授予 TUN 所需的網路管理權限。指令以使用 systemd 的常見發行版為例,須由管理員執行;若帳戶或目錄已存在,請先確認現況,不要重複覆寫既有設定與權限。

sudo useradd --system --home-dir /var/lib/mihomo --shell /usr/sbin/nologin mihomo
sudo install -d -o mihomo -g mihomo -m 750 /var/lib/mihomo
sudo install -d -o root -g mihomo -m 750 /etc/mihomo
sudo chown root:mihomo /etc/mihomo/config.yaml
sudo chmod 640 /etc/mihomo/config.yaml

將以下內容儲存為 /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=/var/lib/mihomo
ExecStart=/usr/local/bin/mihomo -d /var/lib/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 start mihomo
systemctl status mihomo --no-pager
journalctl -u mihomo -b -n 80 --no-pager
sudo systemctl enable mihomo

網路上線目標只是啟動順序的約定,無法保證訂閱網站或遠端節點當時可連線。更新設定前先儲存舊檔案並執行設定檢查,確認通過後再重新啟動服務。若新設定無法使用,還原舊檔案並重新啟動;不要一邊反覆修改,一邊讓服務持續重新啟動。更完整的流程請參閱Linux 桌面與 systemd 部署筆記。

處理 TUN 權限與服務對外開放

Linux TUN 也涉及裝置節點、網路管理能力、路由與 DNS。上述一般帳戶服務並未設定這些能力,不能只將 tun.enable 改為啟用就認為部署完成。請依發行版、核心環境與 mihomo 文件規劃最小權限方案;在容器中還要考慮主機端授權。遠端環境應先準備主控台或其他復原管道,再測試流量接管。

僅供本機使用時,請將代理與控制介面繫結至迴路位址,不要為了讓面板連線就將監聽範圍改成所有網卡。若確實需要與區域網路共享,請限制來源網段、設定驗證並配置防火牆;控制介面應另外做好保護。停止獨立核心不會自動清除手動新增的代理環境變數與路由,退出時須依原設定還原,再透過直接連線請求確認網路狀態。

設定與故障排查:依問題層級逐項檢查

先界定故障範圍

先記錄平台、用戶端名稱、流量接管方式與出錯時間,再判斷問題所在層級:基本網路、取得訂閱、解析設定、啟動核心、接管流量、選擇規則或遠端連線。關閉用戶端後連一般網站也無法開啟時,應先恢復網路登入、閘道或系統代理,不要先更換節點。若只有訂閱更新失敗而舊設定仍可使用,優先檢查訂閱網址與服務帳戶狀態。

每次只變更一個變數,使用相同網路、相同目標與相同節點重新測試。保留最近一次可用設定,並在本機筆記記下變更與結果。記錄時間也應與系統時間一致,否則容易將舊錯誤誤認為目前問題。若需暫時提高記錄詳細程度,排查結束後請恢復常用層級,避免長期產生大量包含存取目標的記錄。

分別處理訂閱失敗與 YAML 解析錯誤

更新失敗時,先確認網址是否完整、憑證是否過期,以及服務提供者是否要求特定訂閱格式。若請求回傳登入頁面、存取限制頁面或節點字串,都可能導致用戶端回報解析失敗。不要只因瀏覽器能顯示內容,就認定格式正確。部分用戶端可為訂閱更新另外指定直連或代理路徑,請在確認現有代理可用後再測試,避免使用失效設定更新自身。

若明確出現 YAML 行號錯誤,請檢查該行及前後層級的縮排、冒號與引號。欄位出錯時,解析器可能到下一行才回報錯誤。不要將程式碼範例片段直接附加至完整設定末尾,以免重複定義頂層鍵。以下為規則結構範例,PROXY 必須對應完整設定中實際存在的代理或策略群組,不能只複製名稱卻未定義目標。

rules:
  - DOMAIN-SUFFIX,apple.com,DIRECT
  - DOMAIN-SUFFIX,example.com,PROXY
  - MATCH,PROXY

規則通常依序比對,命中後便套用相應策略,因此較具體的條件應放在兜底規則之前。請檢查本機覆寫是否改變順序,以及訂閱更新是否覆蓋手動修改。設定可成功解析,只代表結構可讀,不代表所有節點都可用,也不代表規則語意符合預期。

依連線記錄決定下一步排查方向

應用程式發出請求後完全沒有記錄,先檢查系統代理、TUN 或應用程式本身的代理設定;有記錄但出口不正確,請檢查比對規則與策略群組;規則比對正確但連線失敗,再檢查節點、協定支援與遠端連線狀態。不要將規則模式與系統代理混為同一個開關:前者決定流量進入核心後如何分流,後者決定部分應用程式的流量如何進入核心。

狀況優先檢查下一步
本機連線遭拒核心是否正在執行、連接埠是否一致查看監聽失敗與連接埠占用狀況
設定解析失敗回傳格式、縮排與欄位支援情況依行號檢查並還原可用設定
單一應用程式無法存取流量接管範圍與應用程式代理設定查看連線記錄與比對規則
切換網路後失效目前網路、代理與路由狀態重新建立連線並檢查 DNS 路徑

「連線遭拒」通常表示目標連接埠沒有服務,或服務主動拒絕連線;「逾時」只表示期限內未完成操作,不能直接判定節點遭封鎖。確認錯誤發生在本機監聽、遠端交握還是目標回應階段,比只看單一錯誤詞更有幫助。分享錯誤資訊時保留必要脈絡,但請刪除憑證與個人存取目標。

分別驗證 DNS、IPv6 與 UDP

DNS 負責將網域名稱解析為位址。瀏覽器的加密 DNS、系統解析器與核心 DNS 可能使用不同路徑,不能只修改一台伺服器就期待所有請求都跟著改變。Fake-IP 會將網域映射至合成位址,再由核心關聯處理;若流量繞過核心卻使用合成位址,可能造成存取異常。啟用前請確認流量接管路徑完整,並依應用程式相容性設定例外。

IPv6 是否可用取決於本機網路、節點與設定;停用 IPv6 只能作為有記錄的對照測試,不應視為固定解法。UDP 也需要應用程式、接管方式、節點與協定支援同時相容;瀏覽器網頁可正常使用,並不能證明遊戲或即時通訊也正常。不要以直接連線某個 IP 的 HTTPS 結果取代網域測試,因為憑證驗證與網站選擇可能依賴網域名稱。

更新、回復與還原網路

更新前分別備份訂閱來源、本機覆寫與目前設定。升級應用程式、核心與設定時,盡量分開處理,確認正常後再進行下一項。封存用戶端可能不支援較新的欄位,遷移時優先選擇仍在維護的用戶端,並逐步還原必要設定。不要一併複製舊快取、舊輔助服務與新用戶端,之後才猜測是哪一部分造成異常。

還原網路時依相反順序操作:停止 TUN 或系統 VPN、關閉系統代理、還原手動修改的 DNS、應用程式代理與終端機環境變數,再確認能否直接連線。若需解除安裝,先執行用戶端提供的服務清理流程。仍無法解決時,可攜帶已移除敏感資訊的記錄前往常見問題頁面比對症狀;若只是忘記連線順序,請返回快速入門教學重新完成最基本的連線。