MIHOMO / CONFIGURATION HANDBOOK
Clash 從入門到進階設定指南
核心概念 → 用戶端 → 安裝 → 訂閱 → 模式 → 規則 → TUN → 維護 → 進階
本頁適合完成首次設定後查閱,依照各項設定的相依順序逐章說明:先建立可驗證的代理連線,再加入分流、DNS 與虛擬網卡。若只想完成首次連線,請先閱讀Clash 入門指南;遇到欄位意義、接管範圍或維護問題時,再回到相關章節。本文的 YAML 設定以支援相關欄位的 mihomo 核心為前提,圖形介面的選單名稱則因用戶端而異。
一、核心概念與連線流程
用戶端、核心與服務的分工
Clash 生態系中的名稱並非都指同一層軟體。用戶端通常負責顯示視窗、管理設定、修改系統代理並啟動背景服務;核心則負責監聽本機連接埠、解析規則及建立對外連線。mihomo 是這個生態系中持續發展的代理核心;閱讀相關歷史資料時,也常會看到 Clash Meta 這個名稱。安裝圖形用戶端後,介面能開啟只代表前台程式正在執行,不能據此判斷核心已啟動或訂閱有效。
訂閱提供遠端設定或節點資訊;節點則包含連線至代理伺服器所需的位址、通訊協定與驗證參數。安裝用戶端本身不會自動產生可用線路,線路有效期限、流量限制與服務品質則由相關服務決定。匯入訂閱前,請確認來源可信且已取得使用授權。分享記錄或截圖時,也要留意訂閱連結通常包含存取憑證,不能把它當成一般網頁網址公開貼出。
將一次連線拆解為四個環節
一次網頁連線可分為入口、決策、解析與出站四個環節。入口決定應用程式的流量是否進入核心;決策決定符合哪條規則、使用哪個策略組;解析會將網域名稱轉換成連線所需的位址;出站則執行直連、代理或拒絕。實際流程會因 DNS 模式、網域嗅探與連線類型而有所交錯,但這四個問題仍適合用來排錯。瀏覽器無法開啟網頁時,請先確認流量入口,不要立刻修改所有 DNS 欄位。
DIRECT 表示透過本機網路直接連線至目標,REJECT 表示拒絕相關連線,策略組則可指向一或多個代理節點。規則模式下,不同網站可以使用不同出口,因此同時看到本機位址與代理出口不一定是異常。反過來說,全域模式中若選擇 DIRECT,也可能讓所有進入核心的連線都直接連線。判斷實際行為時,必須一併確認目前模式、命中的規則與最終出站,不能只看視窗上的連線狀態。
建立可重複的驗證方式
準備兩個預期明確的連線目標:一個應該直連,另一個應該透過代理。開啟連線面板,記錄目標網域、命中規則、策略組與最終節點,再確認網頁是否載入。不要只憑某個網站顯示的出口位址,推斷所有應用程式的連線路徑;瀏覽器快取、應用程式代理設定、IPv6 與不同連線通訊協定都可能改變結果。驗證重點是將單次請求與核心記錄對應,而不是蒐集零散的測速數字。
學習設定時也應沿著這條流程逐步進行。先確認節點能建立連線,再確認應用程式的流量進入代理,最後才處理規則與 DNS 的細部需求。若前一階段尚未完成,增加更多規則只會讓變因變多。建議建立一份本機設定紀錄,記下用戶端名稱、系統架構、監聽連接埠、接管方式與驗證結果。訂閱及驗證相關原始資料應另外妥善保存,不要放入可公開的排錯資料。
二、依平台與維護需求選擇用戶端
先選用戶端,再確認功能範圍
初次使用可先參考 Clash Plus,再依平台與實際需求比較其他用戶端。選擇時先確認作業系統與處理器架構,再檢查訂閱管理、系統代理、TUN、記錄匯出與設定覆寫是否符合需求。介面上有某個開關,不代表所有系統都有相同的實作方式;同一款用戶端在不同平台上,可能受到權限、背景執行與系統網路介面的限制。若需要特定功能,安裝後應以實際連線確認。
Windows 可比較 Clash Plus、Clash Verge Rev、FlClash 與 Clash Nyanpasu;Clash for Windows 已停止維護,僅供封存參考。macOS 可比較 Clash Plus、Clash Verge Rev 與 FlClash,ClashX Meta 也已停止維護。封存軟體可用於閱讀舊教學或轉移設定,但不適合作為新手長期維護的預設選擇。舊版介面的截圖、按鈕位置與設定選項,也不能直接當成目前用戶端的操作依據。
Android 可參考 Clash Plus、Clash Meta for Android、FlClash 與 Surfboard;iOS 可參考 Clash Plus,官方網站為 clashplus.io。Linux 可優先比較 Clash Verge Rev 與 FlClash。這份候選清單不代表設定彼此相容,尤其 Surfboard 的設定格式不可直接與 mihomo YAML 混用。各平台的安裝來源請見安裝套件頁面,先確認平台再選擇應用程式。
辨別架構、套件格式與執行權限
處理器架構決定程式能否執行,套件格式則決定安裝方式。Windows 常見 x64 與 ARM64;macOS 需區分 Apple Silicon 與 Intel;Android 則要分辨 ARM64 與較舊的 ARM 環境。Linux 的 DEB、RPM 是適用於不同發行版的套件格式,不代表安裝指令可以通用。桌面系統即使支援相容執行,也應優先選擇符合架構的套件,減少服務元件與虛擬網卡方面的差異。
| 使用情境 | 優先確認項目 | 初步驗證方式 |
|---|---|---|
| 瀏覽器與常用桌面應用程式 | 系統代理與訂閱管理 | 連線面板出現對應網域 |
| 終端機與不遵循代理設定的應用程式 | 明確代理設定或 TUN 支援 | 請求命中預期的出站方式 |
| 伺服器與路由器 | 核心架構、服務管理與路由 | 監聽、權限與轉送路徑 |
圖形用戶端與獨立核心的選擇
獨立 mihomo 核心適合伺服器、路由器,以及已熟悉系統服務的使用者。它可以讀取設定並提供代理監聽服務,但不會自動具備桌面系統匣、訂閱編輯器或系統代理按鈕。使用獨立核心時,必須自行規劃程序重新啟動、檔案權限、服務啟動順序與記錄保存。一般桌面使用者可先透過圖形介面了解運作流程,再轉用命令列,避免同時學習網路設定與服務管理兩套機制。
轉換用戶端時,保留原訂閱來源、策略組選擇與必要的覆寫規則,不要直接複製舊程式的整個資料目錄。不同用戶端的資料結構、加密儲存與服務設定可能不相容。較穩妥的做法是在新用戶端重新匯入設定,完成基本驗證後,再移轉少量自訂規則。移轉期間只啟用一套系統代理或隧道接管;若舊用戶端已關閉但系統代理仍有殘留,也要一併檢查系統網路設定。
三、安裝、權限與基本執行設定
安裝前排除流量接管衝突
從下載頁選擇符合系統與架構的安裝套件,依照用戶端提供的標準流程完成安裝。首次啟動前,先退出其他會修改代理或路由的工具,並確認系統沒有保留舊的代理位址。企業設備、校園網路或受管理的電腦,可能禁止安裝虛擬網卡與背景服務;請勿違反管理政策強行修改。若一般介面能執行,但服務安裝失敗,應先確認權限提示與系統限制,而不是反覆覆蓋安裝。
Windows 的服務模式與系統管理員權限可能用於背景核心或 TUN;macOS 可能要求確認網路相關權限;行動系統通常需要使用者同意建立 VPN 設定。此處的 VPN 標示代表系統使用相關網路接管介面,不能據此推斷遠端通訊協定。請依用戶端流程,只在需要時授予權限。若系統提示應用程式來源或簽章異常,請回頭確認下載來源與系統安全警告,不要把關閉系統防護當成標準安裝步驟。
先確認本機監聽,再匯入複雜設定
基本設定只需本機監聽、規則模式與明確的直連出口。以下設定可用於獨立核心的本機測試,不含代理節點,因此無法用來驗證遠端代理線路。圖形用戶端可能會自行管理監聽連接埠與控制介面;匯入後應查看生效設定,確認這些欄位是否遭到覆寫。測試目標是讓核心成功讀取設定,並使明確使用本機代理的請求出現在連線記錄中。
mixed-port: 7890
allow-lan: false
bind-address: 127.0.0.1
mode: rule
log-level: info
rules:
- MATCH,DIRECT
mixed-port 會在同一個監聽連接埠接收 HTTP 與 SOCKS 代理連線,並非遠端伺服器的連接埠。allow-lan: false 用來限制區域網路共用,本機測試時不需要將代理開放給其他裝置。監聽位址與允許的來源也會受到系統防火牆影響,不能只靠一個欄位就當成完整的存取控制。若之後確實需要區域網路共用,應另外明確設定允許的裝置、網路範圍與防火牆規則。
檢查連接埠與設定語法
使用獨立核心時,可先執行下方的設定檢查指令;執行檔名稱與路徑須依本機實際安裝位置調整。檢查通過只代表設定可解析,不代表訂閱中的遠端伺服器可以連線。YAML 應使用空格縮排,同一層級的欄位要對齊,清單項目則保留短橫線。複製文章片段時,尤其要避免將縮排變成定位字元;也不要在現有設定中建立兩個同名的頂層欄位,以免其中一段遭到覆寫或產生歧義。
mihomo -t -f config.yaml
curl -I -x http://127.0.0.1:7890 https://example.com
若啟動記錄顯示連接埠已被占用,先找出占用的程序,再決定關閉舊程式或調整監聽連接埠。修改後,系統代理、瀏覽器擴充功能與終端機環境變數中的連接埠也要同步更新。Windows 可執行 netstat -ano | findstr :7890 查看相關連線;再依程序編號確認所屬應用程式,不要直接結束不明的系統程序。更完整的處理方式請見連接埠衝突與 mixed-port 修改說明。
四、匯入訂閱、生效設定與覆寫
辨識訂閱內容與匯入結果
在用戶端的設定或訂閱管理介面新增遠端網址,填入容易辨識的名稱,再執行下載或更新。匯入成功後,先確認該設定已選為目前使用的設定,並檢查是否出現代理節點與策略組。有些來源會提供完整 YAML,有些只提供節點清單,也有些使用其他軟體的格式;伺服器回應成功,不代表內容適用於目前的用戶端。匯入後若出現解析錯誤,請先確認來源格式與訂閱說明。
訂閱失敗時,先區分下載失敗與解析失敗。下載失敗通常是逾時、憑證問題、驗證失效或伺服器拒絕;解析失敗則可能是回傳網頁、格式不相容或欄位錯誤。先查看用戶端顯示的具體錯誤,不要將訂閱網址提交到不明的線上轉換網站。網址中的查詢參數可能直接代表帳戶權限,分享故障截圖時也應遮蔽完整網址與節點驗證資訊,只保留判斷錯誤類型所需的部分。
找出真正生效的設定層
圖形用戶端通常同時包含原始訂閱、本機覆寫與執行時生效設定。原始訂閱是下載內容,覆寫用於補充連接埠、DNS 或規則;生效設定才是核心最終讀取的內容。透過介面修改選項後,應查看執行時設定是否已變更;直接編輯快取檔案,則可能在下次更新時被覆蓋。遇到設定反覆還原的情況,請先確認修改的位置,不要一直編輯同一個暫存檔。
適合長期保留的個人化內容,應放在用戶端明確支援的覆寫或合併機制中。不同用戶端處理陣列的方式差異很大:有些會取代整份清單,有些支援插入清單前端或後端,不能假設合併後一定會保留原有規則。特別是 rules、proxy-groups 與 dns.nameserver,整份取代可能會刪除訂閱原有的結構。首次使用覆寫前請先備份,並查看生效設定確認最後的欄位順序。
更新訂閱時維持引用完整
規則會引用策略組,策略組則會引用節點或提供者;任何名稱變更都會影響引用關係。遠端更新若移除了某個節點,而本機手寫的策略組仍引用舊名稱,可能導致載入失敗或無法選擇策略。盡量讓本機規則引用名稱穩定的策略組,而不是供應方經常變更的單一節點名稱。以下範例僅用於說明結構,並非完整的代理設定;名為「代理出口」的策略組必須已在實際設定中定義。
rules:
- DOMAIN-SUFFIX,example.com,代理出口
- DOMAIN-SUFFIX,lan,DIRECT
- MATCH,DIRECT
更新前記下目前可用的策略選擇,更新後重新驗證節點與規則。自動更新頻率不宜太高,因為它無法解決服務端額度不足或驗證失效,也可能觸發存取限制。新訂閱下載失敗時,應優先保留上一份可用設定,避免故障期間清除所有記錄。若用戶端支援設定歷程,先確認可還原的版本;若只保留最新結果,則另外備份必要的本機設定。
只有在來源格式與目標格式不一致時,才需要轉換訂閱;而且轉換過程不保證完整保留通訊協定參數、規則集與 DNS 行為。轉換完成後仍需檢查語法並驗證連線,不能用「轉換成功」取代實際執行結果。日常管理時也應區分更新訂閱與切換節點:前者會改變設定資料,後者只會變更目前選用的出站。基本操作步驟可對照入門指南的訂閱匯入流程逐項檢查。
五、代理模式、系統代理與實際流量接管
規則、全域與直連模式的用途
規則模式會依設定中的比對順序決定出站,是日常分流的主要起點。全域模式會將進入核心的連線交由全域策略處理,適合暫時確認某條線路能否連上目標。直連模式則讓進入核心的連線直接連出,可用來比較本機網路與代理路徑。這三種模式只會改變核心收到流量後的處理方式,不能取代入口接管;若應用程式的流量根本沒有進入核心,切換模式通常不會改變連線結果。
初次連線時,先在策略組中選擇明確的節點,再用規則模式驗證。若目標連線失敗,可暫時切換到全域模式,並明確選擇同一個節點,比較連線面板的結果。只有在全域模式可用、規則模式不可用時,才值得優先檢查規則與群組選擇;兩者都失敗,則繼續檢查節點、網路或解析。比對完成後恢復原本模式,避免將暫時的診斷設定留作日常使用,讓原本應直連的服務也經過代理。
系統代理只會影響遵循設定的應用程式
系統代理通常會將系統支援的代理設定指向本機監聽位址,常用於瀏覽器與遵循這些設定的桌面應用程式。部分終端機程式、遊戲、使用自有網路堆疊的軟體與背景服務不會自動讀取系統代理。因此瀏覽器可用但命令列連線失敗,不代表節點一定有問題。先確認終端機工具是否支援明確指定代理的參數,透過明確的入口完成測試後,再決定是否需要環境變數或 TUN 擴大接管範圍。
curl -I -x http://127.0.0.1:7890 https://example.com
curl -I --proxy socks5h://127.0.0.1:7890 https://example.com
上方兩個指令使用不同的代理入口。socks5h 表示由代理端解析目標網域,而不是讓目前的工具先在本機解析;實際後續 DNS 路徑仍取決於核心設定。明確代理測試成功後,再檢查程式本身的代理選項。環境變數的讀取方式並不一致,有些工具只讀取小寫變數,有些還會被自身設定覆蓋。不要因此推論同一組變數適用於所有命令列應用程式。
透過連線記錄排除入口問題
連線目標時,若連線面板完全沒有記錄,請優先檢查系統代理是否啟用、監聽連接埠是否一致、應用程式是否設定略過代理的位址,以及是否有其他代理擴充功能。若有記錄但命中 DIRECT,請檢查模式與規則;若命中代理卻連線失敗,再查看連線錯誤與遠端狀態。介面重新整理或連線時間太短,都可能讓記錄不易捕捉;必要時可暫時查看記錄,但一開始不必長時間開啟最詳細的記錄層級。
| 現象 | 優先檢查項目 | 下一步 |
|---|---|---|
| 應用程式請求未進入核心 | 系統代理、明確指定代理與略過設定 | 使用附有代理參數的請求進行比對 |
| 請求已進入,但出口不符預期 | 模式、規則順序與策略組 | 記錄命中的規則與最終節點 |
| 代理出口明確,但連線失敗 | 節點狀態、DNS 與遠端錯誤 | 更換目標,沿相同路徑再次驗證 |
停止使用時,先關閉系統代理,或確認用戶端結束後會自動還原,再停止核心。若程序已結束,但系統仍指向本機連接埠,遵循系統代理的應用程式便會持續連到已停止的監聽服務,造成普遍無法連網。行動裝置也要確認系統 VPN 設定是否仍處於連線狀態。不同入口的機制比較請參閱TUN 模式與系統代理的差異,不要把「全域模式」和「全系統流量接管」當成同一件事。
六、規則順序、策略組與規則集
先符合的規則決定出站方式
規則會依序比對,通常在首次符合後就決定處理方式。明確的例外規則應放在廣泛規則之前,兜底規則則放在最後。DOMAIN 用於比對完整網域,DOMAIN-SUFFIX 用於比對指定網域及其子網域,IP-CIDR 用於比對目標位址範圍,MATCH 則處理前面都未命中的連線。不同規則類型仰賴的資訊也不同;若無法取得網域,單靠網域規則未必能達到預期效果。
以下是一份可獨立執行的直連示範設定,用來理解規則順序與群組引用,不具備遠端代理功能。目前「日常出口」只有 DIRECT,因此所有允許的連線最後都會走本機網路。實際使用時,必須先有節點或提供者,再將相關名稱加入策略組。不要只複製引用規則,卻漏掉被引用的群組定義;核心載入設定時,必須能將這些名稱解析為完整的相依關係。
mixed-port: 7890
allow-lan: false
mode: rule
log-level: info
proxy-groups:
- name: 日常出口
type: select
proxies:
- DIRECT
rules:
- DOMAIN,example.com,日常出口
- DOMAIN-SUFFIX,localhost,DIRECT
- IP-CIDR,127.0.0.0/8,DIRECT,no-resolve
- IP-CIDR,192.168.0.0/16,DIRECT,no-resolve
- MATCH,日常出口
策略組是規則與節點之間穩定的介面
手動選擇群組有助於建立可預期的行為:規則指向固定群組,使用者再於群組內切換出口。自動測速群組會依測試結果選擇節點,但測試網址、逾時時間與檢測週期都會影響結果。測試數值主要反映建立連線與回應的過程,不等於檔案下載頻寬,也不保證對所有目標都是最佳選擇。切換連線也可能影響登入狀態或遠端工作階段,因此自動選擇並非越頻繁越好,應配合實際應用觀察。
no-resolve 用於部分 IP 類規則,表示不要只為了判斷這條規則而觸發網域解析;它並非關閉整個用戶端的 DNS。若連線已帶有目標 IP,仍可依此進行比對。加入這個參數前,應先確認該規則負責的用途:只處理已取得位址的連線,還是要先解析網域再進行判斷。若所有位址規則都一律加上同一參數,可能會導致規則行為與原先預期不同。
規則集管理與更新範圍
規則提供者可將一組規則放在獨立檔案或遠端來源,再由主設定透過 RULE-SET 引用。使用時必須確認提供者的行為類型與內容格式相符,例如網域清單與傳統規則列並非相同格式。先用少量本機規則驗證,再加入可信來源的規則集。規則集下載失敗、快取過舊或格式不符時,應檢查提供者的載入記錄,而非只確認主設定是否通過語法檢查。
新增規則後,請關閉並重新發起目標連線再驗證。已建立的長連線不一定會在規則變更後立即切換,瀏覽器快取也可能掩蓋新的請求。排錯時,記錄目標、規則、群組與節點四項資訊,比直接貼出全部規則更有效。規則數量增加不代表分流更精準,過多互相重疊的清單只會增加理解與維護成本。只有用途、來源與比對順序都能清楚說明的規則,才適合長期保留。
區域網路、公司內網與開發環境尤其需要分開測試。私有位址通常適合直連,但本機服務可能使用自訂網域、分流 DNS 或特定路由,單靠一條位址規則未必涵蓋所有情況。新增內網例外時,應盡量縮小範圍,避免過寬的網域後綴意外改變其他服務的連線路徑。遇到具體的規則失效問題,可前往說明中心繼續查閱,並附上已去識別化的命中資訊。
七、TUN、DNS 與虛擬網卡接管
基礎代理正常後再啟用 TUN
TUN 透過虛擬網路介面與路由設定接收流量,適合需要接管不遵循系統代理設定的應用程式。但這不表示所有流量都一定會經過代理;系統路由、排除位址、程序權限、其他隧道與核心限制仍會影響結果。啟用前應確認一般代理入口已能連上目標,並記錄目前的網路狀態。否則節點故障、DNS 問題與虛擬網卡問題同時發生時,就很難判斷新增設定究竟造成了什麼改變。
桌面用戶端可能需要安裝背景服務或取得較高權限,行動裝置通常則使用系統提供的隧道介面。啟用失敗時,先查看權限與服務狀態,再檢查網卡與路由記錄。公司 VPN、虛擬機器網路、容器網橋與其他代理隧道都可能改變路由優先順序。測試期間只保留必要的流量接管工具,並記下必須保留的內網目標;如果遠端工作仰賴特定隧道,請在可還原的環境中逐步驗證。
了解 DNS 監聽、上游與攔截
DNS 設定至少要分成三個層次:核心是否提供 DNS 服務、系統或應用程式的查詢是否進入該服務,以及核心使用哪個上游伺服器完成解析。啟用 dns.enable 不代表所有查詢都會自動交給核心。以下是用來說明 TUN 與 DNS 搭配方式的合併片段,需加入已有的可用設定,並確認用戶端不會另行覆寫;若已有 dns 或 tun 區段,應合併欄位,不要重複新增頂層索引鍵。
dns:
enable: true
listen: 127.0.0.1:1053
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
nameserver:
- https://1.1.1.1/dns-query
- https://dns.google/dns-query
tun:
enable: true
stack: mixed
auto-route: true
auto-detect-interface: true
dns-hijack:
- any:53
範例上游伺服器能否連線,取決於目前的網路環境,不能視為所有環境都適用的預設選項。加密 DNS 使用網域作為伺服器位址時,可能需要先解析該伺服器本身,這就是引導解析問題。dns-hijack 中的連接埠規則也無法攔截所有應用程式內建的加密 DNS:瀏覽器或應用程式直接建立 HTTPS 解析連線時,不會因為使用 DNS 名稱就自動變成一般的 53 埠查詢。
fake-ip 的用途與相容性驗證
fake-ip 模式會回傳合成位址給應用程式,核心則保存位址與網域的對應關係,讓後續連線仍能依網域處理。看到相關位址範圍時,不要立即判斷為錯誤;但部分區域網路探索、特殊驗證或依賴真實位址的應用程式可能需要設為例外。請先針對特定應用程式驗證,再新增例外,而不是排除所有網域。切換 DNS 模式後,應用程式與系統可能仍保留舊結果,必要時請重新連線並清除相關快取。
驗證 DNS 時,除了查看解析結果,也要確認查詢路徑與最終連線出口。出口位址正確,不代表解析路徑符合預期;單一線上檢測頁面的結果,也不能代表所有應用程式。IPv6 是另一條需要獨立確認的路徑;關閉某個 DNS 選項,不代表系統已停用 IPv6。若不打算使用 IPv6,應確認用戶端、系統與網路端各自的行為,而不是只根據一個開關推斷整體狀態。
啟用後,逐一測試瀏覽器、終端機、區域網路服務、休眠喚醒與網路切換。若發生普遍無法連網,先關閉 TUN,恢復已知可用的系統代理基本設定,再比對記錄與路由;不要同時更換節點、上游與網路堆疊。「已連線但無法上網」的分層檢查方式,請參閱連線後無法開啟網頁的排查清單。啟用進階接管前,必須先確保有能力還原。
八、日常維護、備份與故障復原
分別維護程式、核心與訂閱
用戶端更新、核心更新與訂閱更新是不同的事件。用戶端更新可能改變介面、服務元件與設定產生方式;核心更新可能新增欄位支援或調整網路行為;訂閱更新則會改變節點、規則或策略組。發生故障時,先回想最近變更的是哪一層,不要把所有變化都籠統歸因於升級。在重要環境中,盡量將這些操作錯開,每完成一項就進行一次基本測試,才能更容易判斷要還原的範圍。
備份應包含原始訂閱來源的安全紀錄、自訂覆寫、重要的策略組選擇、監聽連接埠與流量接管方式。只保存用戶端截圖不足以還原設定;直接複製整個資料目錄,則可能一併帶入快取、舊服務狀態與裝置專屬路徑。請將必要設定與暫存資料分開,並把備份存放在設有存取控制的位置。同步至雲端或其他裝置前,先確認訂閱網址、節點驗證資訊與控制介面資料是否適合納入同步範圍。
依固定順序找出異常原因
建議依序檢查本機網路、核心程序、設定載入、流量入口、規則判斷、DNS 與遠端節點。先關閉代理測試基礎網路,再恢復代理並確認目標請求是否出現。請求已進入核心但沒有可用策略時,檢查設定與群組引用;策略明確但連線失敗時,查看錯誤原因。逾時只表示等待期間內未完成操作,不能直接判定為 DNS 故障。連線遭拒、驗證失敗與憑證錯誤則各自有不同的處理方向。
每次只修改一個變數,並記錄變更前後的目標與結果。例如更換節點後目標恢復,但規則與 DNS 沒變,表示應繼續檢查出站路徑;修改規則後命中結果符合預期但仍逾時,就不能說問題已解決。排錯記錄不必製作複雜表格,只要記下時間、現象、變更與結果四項即可。遇到間歇性故障時,這些記錄比反覆重新啟動更有用,也能協助判斷是否與休眠、網路切換或訂閱更新有關。
正確解讀延遲與記錄
節點測試數值用於輔助選擇,不能作為整條線路的最終評價。測試位址可能很近,但實際服務目標可能位於不同網路;連線建立很快,也可能因壅塞而導致下載緩慢。應依實際目標的回應速度、連續請求穩定度與所需通訊協定綜合判斷。自動測速失敗,也可能只是測試位址無法連線,不能據此立即刪除所有節點。測量方式與限制請參閱url-test 延遲與實際網速的差異。
記錄層級應符合目前的診斷需求。平時保留一般資訊,重現問題時才短暫提高詳細程度,完成後再恢復原設定。完整記錄可能包含網域、位址、程式路徑與驗證相關內容,公開前務必去識別化。回報故障時,提供用戶端名稱、系統、接管方式、重現步驟與關鍵錯誤行即可,不必公開整份設定。對於可以穩定重現的問題,應先保留最小重現情境,移除與故障無關的額外規則再進行比對。
準備可執行的復原順序
復原時先撤銷最近一次變更,再關閉 TUN,改用明確指定代理或系統代理進行測試;必要時還原上一份有效設定。若用戶端已關閉但系統仍無法連網,請檢查系統代理殘留與其他隧道狀態,不要直接重設所有網路設定。遠端管理裝置尤其要謹慎修改預設路由,以免中斷管理連線。任何會影響系統網路的操作,都應事先準備本機存取或其他復原方式。
九、進階設定流程與驗收清單
依照問題增加功能,不要堆疊欄位
基本流程穩定後,可從三個方向進一步學習:將重複規則整理成規則提供者、將節點來源整理成代理提供者,以及透過策略組安排不同應用程式的出口。每次只加入一種機制,先在副本中驗證,再用於日常設定。進階欄位並非預設必填;只有在找到明確問題、了解欄位用途並能驗證結果時,新增設定才有意義。減少隱含相依性,通常比增加選項更有利於長期維護。
學習代理提供者時,先了解節點資料從哪裡取得、快取存放位置、更新時機與群組引用方式。學習規則提供者時,先了解內容格式與行為類型,再規劃載入失敗時的檢查方法。兩者都仰賴外部資料,設定語法正確不代表執行時一定能成功下載。應分別檢查下載路徑、檔案權限、快取狀態與引用名稱,避免將提供者故障誤判為所有節點都無法使用。
先掌握網域資訊,再研究嗅探
有些連線進入核心時只有目標位址,因此網域規則缺少直接比對依據。網域嗅探可在支援的通訊協定與條件下擷取網域資訊,但不是通用的解密工具,也不保證每條連線都能取得網域。啟用前應先確認問題是否確實來自網域資訊缺失,再觀察啟用後的連線記錄。不要只因教學出現某段嗅探設定就整段照貼,尤其要留意應用程式相容性、排除範圍與額外處理成本。
程序規則、介面綁定與路由排除,同樣需要配合系統環境設定。程序識別可能受權限與平台支援影響,背景服務的程序身分也可能與前台視窗不同。依程序設定出口時,先確認實際的程序資訊,再新增規則;不能只憑程式顯示名稱,就推斷可以比對到對應路徑。若要替虛擬機器、容器或區域網路裝置提供代理,還需考慮轉送、存取控制與 DNS 來源,這已超出單一裝置的瀏覽器代理範圍。
將安全界線納入設定習慣
控制介面、區域網路監聽與遠端訂閱都應有明確用途。只在本機操作時,維持本機綁定;需要跨裝置存取時,再規劃驗證、允許來源與系統防火牆。不要為了方便除錯,就將所有監聽位址改為所有網路介面並長期保留。設定儲存庫與工單附件也應遵守最小暴露原則:可公開設定架構與已去識別化的範例,但不要公開真實訂閱、驗證欄位或完整存取記錄。範例設定與實際正式環境設定應分開保存。
驗收進階設定時,不只要確認目標網站能開啟,也要檢查原本應直連的內網、應用程式登入、檔案傳輸、休眠喚醒與網路切換。更新規則後,觀察是否出現新的誤判;切換節點後,確認長連線是否需要重新建立。行動裝置還要留意背景持續執行與電池管理對連線的影響。不同情境有不同限制,不能以桌面裝置的一次成功測試,推斷所有裝置都會有相同的行為。
| 階段 | 通過條件 | 保留的佐證 |
|---|---|---|
| 基本連線 | 透過明確的連線入口存取預期目標 | 監聽連接埠與連線記錄 |
| 規則分流 | 直連與代理目標各自使用預期出口 | 規則、策略組與最終節點 |
| TUN 與 DNS | 目標應用程式與內網服務行為符合預期 | 接管方式、解析路徑與例外規則 |
| 維護與復原 | 更新失敗或設定錯誤後可以還原 | 有效設定備份與復原步驟 |
完成這套流程後,應能從一次失敗的請求回頭檢查入口、規則、解析與出站,而非只能反覆重新安裝。閱讀新教學時,先確認適用的用戶端、核心與系統,再判斷哪些欄位符合目前環境。需要重新確認首次連線流程,可返回入門指南;需要依具體症狀繼續排錯,可使用說明中心。保留一份簡潔、容易說明且能還原的有效設定,作為後續所有測試的基準。