先建立設定模型,再調整開關
V2Ray 圖形客戶端並不是獨立的一套網路協定。v2rayN、v2rayNG 與 v2flyNG 負責訂閱管理、節點選擇、系統接管與介面操作,真正處理連線、路由與 DNS 的是客戶端所呼叫的核心。一次完整連線通常會經過五個物件:應用程式流量進入本機入站,DNS 模組解析網域名稱,路由模組依規則判斷目標,出站模組選擇直連、代理或阻斷,最後由對應伺服器或本機網路傳送資料。進階設定的核心不是開啟更多選項,而是釐清每一層的輸入與輸出。
排查時也應沿著這條鏈路進行。瀏覽器無法存取目標網站時,先確認流量是否進入客戶端;已經進入但網域解析錯誤,再檢查 DNS;解析正確卻選到錯誤線路,檢查路由命中結果;路由命中正確但連線失敗,才檢查節點參數、伺服器狀態與本機網路。把所有問題歸咎於節點,往往會掩蓋系統代理、TUN 權限或 DNS 快取造成的差異。相關的分層診斷方法可繼續閱讀速度變慢的分層排查方法。
修改前記錄可用狀態
開始調整前,保留一份能正常連線的基準設定。記錄目前的訂閱分組、使用中的伺服器、系統代理狀態、路由模式、DNS 模式與 TUN 狀態。v2rayN 桌面版適合先關閉 TUN,只啟用系統代理並使用基礎分流;如此鏈路較短,也更容易定位錯誤來源。Android 端則先使用客戶端提供的系統網路接管方式,確認單一節點可連線後,再加入自訂路由與 FakeDNS。每完成一類修改就重新連線並驗證,不要同時修改訂閱、DNS、路由與 TUN。
驗證不能只看客戶端狀態。客戶端顯示已啟動,只代表本機服務或網路介面已建立,不表示目標應用程式一定使用該入口。瀏覽器通常遵循系統代理,部分終端程式需要另外設定代理環境變數,某些應用程式只有在 TUN 接管後才會進入客戶端。建議準備三類測試:一個常用網頁,用來檢查瀏覽器路徑;一個 DNS 查詢,用來確認解析結果;一個終端請求,用來確認命令列應用程式是否繼承系統設定。系統代理未生效時,可依照瀏覽器與終端分開排查中的順序處理。
理解介面設定與產生設定之間的關係
圖形介面中的「略過區域網路」「全域」「規則」「TUN」「FakeDNS」是設定產生器的上層選項。客戶端會將訂閱節點、使用者規則與核心範本合併成執行設定,因此介面上的一項變更可能同時修改入站、DNS 與路由。手動設定片段只有放在客戶端允許的擴充位置才會生效,直接修改暫時產生的檔案,通常會在重新啟動或切換節點後被覆寫。需要長期維護的規則,應儲存到客戶端的自訂路由、DNS 範本或設定檔入口。
| 設定層 | 主要職責 | 典型異常 | 優先檢查項目 |
|---|---|---|---|
| 訂閱與節點 | 提供伺服器位址、連接埠、協定與傳輸參數 | 驗證失敗、連線逾時 | 訂閱更新時間、節點參數、網路可達性 |
| 入站接管 | 接收系統代理、應用程式代理或 TUN 流量 | 客戶端已啟動但應用程式直連 | 系統代理、應用程式設定、TUN 權限 |
| DNS | 將網域名稱轉換為位址,並向路由提供網域資訊 | 解析逾時、結果不符預期 | 查詢伺服器、網域比對、快取 |
| 路由 | 將請求交給代理、直連或阻斷出站 | 目標走錯線路 | 規則順序、網域策略、命中記錄 |
| 出站 | 執行代理連線、直連或本機轉送 | 交握失敗、上游無法連線 | 出站標籤、伺服器設定、上游連接埠 |
建立可回復的變更節奏
建議將調整拆成「儲存基準、修改一項、重新連線、驗證、記錄結果」五個步驟。規則檔案應使用清楚的名稱,例如「基礎分流」「工作網路補充」「TUN 專用 DNS」,避免產生大量難以辨認的副本。遇到異常時先回到基準,確認基礎連線仍然成立,再逐項恢復進階設定。若回到基準後仍然失敗,問題更可能出在訂閱、節點或本機網路,而不是剛才的路由表示式。
注意:設定範例用於說明結構。匯入前應確認客戶端支援對應欄位,並將網域、連接埠與標籤替換成自己的實際設定。不要直接拼接多段完整設定,否則重複的頂層欄位會導致設定無法載入。
訂閱分組與伺服器篩選
訂閱負責批次提供伺服器,但伺服器數量增加後,選擇成本與誤操作也會同步增加。有效的整理方式不是把所有節點放進一個很長的清單,而是先依來源分組,再依用途篩選。v2rayN 適合將預設分組、外部訂閱與自建節點分開;v2rayNG、v2flyNG 則可利用訂閱設定與備註欄位區分來源。分組邊界應保持穩定,節點備註可以變動,但來源、用途與維護責任不應混在一起。
每個訂閱都應使用容易辨識的名稱,例如「日常訂閱」「測試線路」「自建服務」。名稱只表示來源,不要把目前節點狀態寫進名稱,因為狀態會隨時間改變。手動新增的伺服器應獨立保留,不要移到會自動更新的訂閱群組中,以免更新時難以判斷它是否受到訂閱覆蓋。對於不再使用的訂閱,先停用自動更新並觀察一段時間,再刪除其分組;直接清空可能同時失去原有備註與選擇記錄。
篩選器要解決什麼問題
伺服器篩選適合從長清單中縮小候選範圍。常見維度包括備註關鍵字、協定類型、傳輸方式與訂閱來源。篩選條件首先應保持可理解:輸入關鍵字後,使用者能從伺服器備註看出匹配原因。複雜的正規表示式雖然靈活,但訂閱命名稍有變化就可能漏選。較穩定的做法是要求同一訂閱的備註採用一致格式,再以地區、用途或線路類別作為關鍵字。
篩選與路由是兩回事。篩選決定介面中要顯示或批次測試哪些伺服器,路由決定連線後某個請求要走哪個出站。不要用伺服器篩選取代流量分流,也不要因為某個節點被隱藏,就認為它已從設定中完全刪除。部分客戶端的篩選只會改變清單顯示,使用中的節點仍可能繼續運作;執行批次刪除前,應先確認目前選取項目與分組範圍。
關鍵字與正規表示式的使用界線
簡單關鍵字適合日常選擇,例如依備註中的「工作」「自建」或協定名稱篩選。需要表達多個備選詞時,可使用正規表示式的選擇符;需要排除測試節點時,可使用負向條件,但應先在小範圍內驗證。不同客戶端的篩選入口與正規表示式能力可能不同,複製表示式前應確認它是套用於伺服器備註、位址還是完整顯示名稱。以下表示式只展示通用思路,不依賴特定節點數量或速度資料。
工作|自建
^(?!.*測試).*
(VLESS|VMess|Trojan)
第一行會匹配備註中包含「工作」或「自建」的項目;第二行會排除包含「測試」的名稱;第三行則依顯示名稱中的協定詞進行篩選。若訂閱採用不同的命名方式,應先查看實際備註再調整。篩選結果為空時,先移除邊界符號與排除條件,確認基本關鍵字可以匹配,再逐步增加限制。不要一開始就編寫很長的表示式,否則難以判斷是哪一段造成不匹配。
更新、去重與失效項目的處理
訂閱更新應優先在單一分組內執行。更新後先確認項目是否正常解析,再切換使用中的節點。同一伺服器可能因備註不同而重複出現,也可能只是位址相同但參數不同;去重時不能只看網域與連接埠,還應比較使用者識別碼、協定、傳輸方式、TLS 與路徑等關鍵參數。自動去重適合完全一致的項目,參數有差異時保留並重新命名會更穩妥。
失效項目可分為暫時無法連線、參數錯誤與訂閱撤銷三類。一次連線失敗不足以判定長期失效,應先切換本機網路或等待線路恢復;若持續出現協定解析錯誤,則檢查訂閱是否使用目前客戶端無法識別的欄位;更新後從訂閱中消失的項目通常是來源方撤銷,不建議手動複製回自動分組。測速只用於比較目前網路條件下的回應,不能作為永久排序依據。
整理建議:先依來源分組,再用關鍵字篩選候選伺服器,最後手動選擇使用中的節點。分組解決維護問題,篩選解決尋找問題,路由規則解決流量去向問題,三者不要混用。
三款客戶端的分組重點
v2rayN 的桌面清單空間較大,適合管理多個訂閱、批次更新與細緻篩選,也是桌面平台的首選。v2rayNG 使用觸控清單,建議減少同時啟用的訂閱數量,名稱保持簡短並保留明確前綴。v2flyNG 的管理方式接近 Android 的使用習慣,但核心家族不同,匯入同一訂閱後仍應確認協定與傳輸參數是否完整識別。需要重新安裝或更換平台時,請從下載頁依系統選擇對應客戶端。
完成整理後,應進行一次可復原性檢查:記住目前使用中的訂閱與伺服器,手動更新單一分組,確認更新不會改動自建節點,再重新啟動客戶端驗證選擇是否保留。若客戶端在更新後切換了使用中項目,檢查是否啟用了自動選擇,或目前項目是否已被訂閱替換。訂閱位址屬於持續存取憑據,不應寫入公開截圖、記錄或共用規則檔案;排錯時只需說明訂閱解析結果與錯誤類型。
V2Ray 路由規則實戰
路由規則會依據網域、IP、連接埠、網路類型、入站標籤或協定特徵,將連線送往指定出站。最常見的出站是代理、直連與阻斷。規則通常依序匹配,先命中的規則先執行,因此同一目標同時符合多條規則時,順序比規則數量更重要。設計規則前應先寫出業務目標,例如「區域網路直連、指定工作網域走專用出站,其餘依基礎規則處理」,再將目標轉換成匹配條件。
一套易於維護的順序通常由具體到廣泛:先處理需要阻斷的明確目標,再處理區域網路與私有位址,接著放置使用者指定網域與專用出站,再放置區域網域或 IP 規則,最後才是兜底規則。把大範圍規則放在頂端,會讓後面的細部規則永遠無法命中。修改後應查看客戶端記錄中的路由結果,而不是只憑目標網頁能否開啟來判斷。
網域匹配與網域策略
網域規則可以匹配完整網域、後綴網域或預先定義的網域集合。完整網域適合單一服務,後綴匹配則會涵蓋所有子網域,使用時應評估範圍。例如對 example.com 使用後綴規則,也會同時影響 api.example.com 與 static.example.com。若一項服務將網頁、介面與靜態資源分散在不同網域,只加入主網域可能出現頁面框架載入成功但資源載入失敗的情況。
domainStrategy 決定路由匹配時是否將網域解析為 IP。使用 AsIs 時,路由會優先保留原始網域,不主動為 IP 規則解析;IPIfNonMatch 會在網域規則未命中時進行解析,再嘗試匹配 IP 規則;IPOnDemand 則會在可能需要 IP 匹配時更早觸發解析。一般可先使用 IPIfNonMatch,兼顧網域規則與 IP 規則,也避免所有請求都提前解析。若 DNS 設定不完整,依賴 IP 匹配的策略可能增加解析失敗,因此路由與 DNS 必須一併驗證。
基礎規則結構
{
"routing": {
"domainStrategy": "IPIfNonMatch",
"rules": [
{
"type": "field",
"ip": [
"geoip:private"
],
"outboundTag": "direct"
},
{
"type": "field",
"domain": [
"full:intranet.example",
"domain:office.example"
],
"outboundTag": "direct"
},
{
"type": "field",
"domain": [
"domain:service.example"
],
"outboundTag": "proxy"
},
{
"type": "field",
"network": "tcp,udp",
"outboundTag": "proxy"
}
]
}
}
範例先將私有位址交給直連,再處理兩個內部網域,接著指定一項服務走代理,最後以 TCP 與 UDP 規則兜底。full: 只匹配完整網域,domain: 則匹配該網域及其子網域。範例中的網域僅用於展示語法。實際使用時,出站標籤必須與設定中的 tag 完全一致;標籤拼寫不同不會自動對應,通常會導致設定載入失敗或規則找不到目標出站。
連接埠、網路類型與入站標籤
連接埠規則適合將特定服務交給指定出站,但連接埠不等於應用程式。許多現代應用程式使用通用的加密連接埠,單靠連接埠無法區分業務。network 可區分 TCP 與 UDP,啟用 TUN 後尤其要注意 UDP,因為 DNS、即時通訊與部分傳輸會使用它。若選定的節點或上游出站無法處理 UDP,可為必要的 UDP 流量指定直連,也可以調整 DNS 傳輸方式來降低依賴,但不能簡單假設關閉 UDP 不會影響應用程式。
inboundTag 可用來區分不同的本機入口。例如為瀏覽器單獨建立一個入站,為系統流量保留另一個入站,再透過路由送往不同出站。這種設計適合測試與隔離,但圖形客戶端是否提供多個入站,取決於設定模式。使用客戶端產生設定時,先查看實際入站標籤,不要照抄其他環境的名稱。標籤正確但規則未命中時,檢查流量究竟是從系統代理還是 TUN 入站進入。
驗證規則是否命中
驗證分為三個步驟。第一步,將目標規則暫時移到廣泛規則之前,避免被提前攔截;第二步,提高客戶端記錄的詳細程度,重新連線並只存取一個測試目標;第三步,檢查目標網域、解析位址與最終出站標籤。若記錄中只有 IP 而沒有網域,表示目標應用程式可能自行解析,或 DNS 請求沒有經過客戶端;此時網域規則可能無法運作,需要使用 TUN、調整 DNS 接管或補充 IP 規則。
修改規則後仍然走舊線路,還要檢查連線重用與快取。瀏覽器可能保留現有連線,系統可能保留 DNS 結果,核心也可能重用既有工作階段。關閉目標應用程式的現有連線、清除必要快取並重新連線客戶端,再進行驗證。不要連續重新整理同一個已建立的工作階段來判斷新規則。更多常見問題可在說明中心依「使用技巧」與「故障排查」分類查詢。
規則界線:大範圍兜底規則必須放在最後。每增加一條規則,都應寫清楚匹配對象、目標出站與驗證方式;無法說明用途的舊規則應先停用,而不是繼續疊加例外。
DNS 設定最佳化與分流解析
DNS 設定決定網域如何取得位址,也影響網域規則與 IP 規則之間的銜接。系統 DNS、客戶端內建 DNS、瀏覽器加密 DNS 與應用程式自帶解析可能同時存在;若查詢沒有經過預期路徑,就會出現「路由寫對但仍走錯出站」的情況。最佳化前先確認查詢來源:系統代理通常不會自動接管所有 DNS,TUN 模式更適合將系統查詢統一送入客戶端,但仍需處理瀏覽器或應用程式自行發起的加密查詢。
DNS 分流的基本目標,是讓不同網域選擇合適的解析伺服器,並讓查詢本身透過正確出站傳送。網域分類、查詢伺服器與路由出站是三個獨立決策。某個網域被分配給特定 DNS 伺服器,不代表其業務連線一定使用同一個出站;還需要路由規則提供相應限制。反過來,只寫業務路由而不處理解析路徑,應用程式可能先取得不合適的位址,接著觸發錯誤的 IP 規則。
伺服器順序與匹配範圍
核心 DNS 可以設定多個伺服器,並為伺服器附加網域匹配清單。專用匹配應放在通用伺服器之前。內部網域可指向區域網路 DNS,指定外部網域可使用加密查詢,其餘網域交給預設伺服器。若客戶端支援 skipFallback 類型的控制項,可阻止已匹配的網域繼續向後備伺服器查詢;但啟用前應確保專用伺服器穩定,否則匹配網域沒有可用結果時,也不會自動取得後備答案。
{
"dns": {
"queryStrategy": "UseIP",
"servers": [
{
"address": "192.168.1.1",
"domains": [
"full:intranet.example",
"domain:office.example"
],
"skipFallback": true
},
{
"address": "https://dns.example/dns-query",
"domains": [
"domain:service.example"
]
},
"localhost"
]
}
}
範例將內部網域交給區域網路解析伺服器,將指定服務交給一個範例加密查詢位址,其餘請求使用本機解析。實際設定時,加密查詢網域本身也需要能夠解析並建立連線,這項引導解析不能依賴尚未可用的同一條加密通道。解決方式是讓系統或基礎 DNS 先解析查詢伺服器網域,或直接使用客戶端支援的引導機制。若記錄持續顯示查詢伺服器網域解析失敗,應先處理這層依賴。
查詢策略與位址族
queryStrategy 控制回傳哪一類位址。UseIP 允許使用可用的位址族,UseIPv4 只請求 IPv4,UseIPv6 只請求 IPv6。選擇應以本機網路與出站鏈路是否完整支援對應位址族為準。系統取得 IPv6 位址,但代理鏈路無法建立 IPv6 連線時,應用程式可能先等待失敗再回退,表現為首次存取明顯變慢。此時可以暫時使用 IPv4 策略驗證,但長期方案仍應檢查本機網路、節點出站與路由規則對 IPv6 的處理。
不要用固定位址族掩蓋所有解析問題。某些服務會依位址族提供不同的接入方式,區域網路內部服務也可能只在特定位址族可用。調整後分別測試內部網域、常用公網網域與純 IP 連線,確認沒有破壞其他路徑。若只有一個應用程式異常,檢查它是否啟用了獨立 DNS 或連線最佳化功能,因為該查詢可能根本沒有進入客戶端。
DNS 與路由如何配合
DNS 查詢本身也是網路請求,需要由路由決定直連還是代理。加密 DNS 使用一般 TCP 或 HTTPS 連線時,可以依伺服器網域或 IP 指定出站。若查詢透過代理傳送,請確保代理出站在解析前已具備可連線的伺服器位址;訂閱節點使用網域作為伺服器位址時,尤其要注意啟動階段的解析依賴。最穩妥的啟動鏈路,是先讓節點伺服器網域可由基礎 DNS 解析,再由已建立的代理處理後續專用查詢。
路由使用 IPIfNonMatch 時,網域規則未命中便會觸發 DNS 解析,然後再匹配 IP 規則。此時 DNS 伺服器回傳的位址會直接影響路由結果。若同一網域存在多組位址,快取結果變化可能讓流量命中不同規則。應盡量優先使用穩定的網域規則,IP 規則則用於區域集合、私有位址及確實需要依位址判斷的目標,而不是為每個網域手動維護位址。
快取、洩漏路徑與驗證方法
驗證 DNS 時,先關閉瀏覽器的獨立解析選項,或明確將其納入測試範圍。重新連線客戶端後,清除系統與瀏覽器的相關快取,再發起一次全新的查詢。記錄中應能看到網域、選用的 DNS 伺服器、回傳位址,以及後續業務連線的路由結果。只使用網頁型檢測工具,無法說明所有系統查詢路徑,因為它觀察的是目前瀏覽器,而不是終端機、背景服務與其他應用程式。
如果一般系統代理下 DNS 仍由本機網路處理,這是接管範圍的差異,不一定是設定錯誤。需要統一接管更多應用程式時,再啟用 TUN,並為 DNS 設定明確的入站與路由。若啟用 TUN 後出現解析迴圈,檢查 DNS 請求是否再次進入 TUN、是否缺少查詢伺服器的直連或代理例外,以及 FakeDNS 是否與真實解析規則重疊。完整的分流解析案例可繼續查看V2Ray DNS 分流解析設定詳解。
設定順序:先讓一個基礎 DNS 穩定運作,再加入網域分組與加密查詢,最後與 TUN、FakeDNS 串接。每一步都記錄查詢伺服器、回傳位址與業務出站,避免只看「網頁能否開啟」。
v2rayN TUN 模式的接管範圍與設定順序
TUN 模式透過虛擬網路介面接收更多系統流量,適合不讀取系統代理、無法單獨設定代理,或需要處理 UDP 的應用程式。它與系統代理不是強弱之分,而是接管層級不同:系統代理依賴應用程式主動遵循代理設定,鏈路清楚且容易排錯;TUN 則在網路層擷取流量,涵蓋範圍更廣,但也同時引入路由表、虛擬介面、DNS 接管與系統權限等額外變數。首次設定應先確認系統代理可用,再啟用 TUN。
v2rayN 是桌面平台的首選。啟用 TUN 前,確認客戶端安裝位置可寫入、系統允許建立虛擬介面,並關閉其他會修改系統路由或網路介面的同類工具。Windows、macOS 與 Linux 的授權方式不同,介面可能要求管理員權限或系統網路授權。權限被拒絕時,客戶端本機代理仍可能正常啟動,但 TUN 介面不會建立,因此應檢查介面與路由,而不是只看主視窗的連線狀態。
建議啟用順序
第一步保留一個已驗證可用的節點,路由使用基礎規則,DNS 使用單一可靠設定。第二步退出可能衝突的網路工具,記錄目前系統代理狀態。第三步啟用 TUN,等待虛擬介面與路由建立完成。第四步分別測試瀏覽器、終端機及一個先前不遵循系統代理的應用程式。第五步再逐項恢復 DNS 分流、FakeDNS 與自訂路由。若啟用後所有網路都中斷,應立即關閉 TUN,確認系統路由恢復,再檢查權限、堆疊類型與 DNS。
系統代理與 TUN 在某些設定中可以同時開啟,但測試階段不建議讓兩者同時接管同一個應用程式。瀏覽器可能透過系統代理進入客戶端,其他應用程式則透過 TUN 進入;若路由依入站標籤區分,兩條路徑可能得到不同結果。為了釐清問題來源,先關閉系統代理,只測試 TUN;完成後再依日常需求決定是否保留系統代理入口。
嚴格路由與繞過規則
TUN 常見設定包括自動路由、嚴格路由、介面選擇與略過區域網路。自動路由負責新增系統路由;嚴格路由會更強地限制流量繞過虛擬介面,適合需要一致接管的環境,但也更容易與虛擬機器、容器、企業網路或本機共用服務衝突。先使用自動路由進行驗證,再依實際洩漏路徑評估嚴格路由。不了解現有路由表時,不要同時啟用多個強制選項。
區域網路與私有位址通常應直連,否則印表機、路由器管理頁面、檔案共用與內部服務可能無法存取。這裡有兩個層次:系統路由是否讓私有位址繞過 TUN,以及進入核心後路由是否將私有位址交給直連出站。兩層都正確,存取才會穩定。處於企業網路時,內部位址不一定只使用常見私有網段,也可能依賴內部 DNS 與特定路由,應在基礎私有位址規則之外補充明確的內部網域與網段。
MTU、協定堆疊與效能
MTU 決定虛擬介面單一封包的最大大小。設定過大時,某些鏈路無法正確傳遞,表現為小型網頁可以開啟,但大檔案或特定請求卡住;設定過小則會增加分片與處理負擔。沒有明顯症狀時應使用客戶端預設值。只有確認存在路徑 MTU 問題後,才逐步調低,並在每次調整後測試網頁、檔案傳輸與即時連線。不要直接照抄其他網路環境的數值。
不同 TUN 堆疊在相容性、UDP 處理與系統整合方面存在差異。客戶端預設選項通常能涵蓋一般環境;更換堆疊只應作為針對性的排錯步驟。切換後若 DNS 正常但某類連線失敗,應比較 TCP 與 UDP 記錄;若所有應用程式都無法連線,檢查介面是否取得位址、預設路由是否指向 TUN,以及節點伺服器位址是否被錯誤送回代理而形成迴圈。
平台差異與衝突來源
| 平台 | 重點檢查 | 常見衝突 | 驗證方式 |
|---|---|---|---|
| Windows | 虛擬介面、管理員權限、系統路由 | 其他虛擬網路卡、企業安全策略 | 檢查介面卡與路由表後,測試不同應用程式 |
| macOS | 網路擴充功能授權、目前網路服務 | 舊授權殘留、其他網路擴充功能 | 確認系統授權並重新建立連線 |
| Android | 系統網路接管授權、背景限制 | 省電策略、持續開啟的其他連線 | 讓客戶端保持在前景後測試,再檢查背景執行 |
| Linux | TUN 裝置權限、路由與 DNS 管理服務 | 容器網橋、防火牆規則 | 檢查介面、策略路由與解析服務 |
Android 上的 v2rayNG 與 v2flyNG 使用系統提供的網路接管機制,排錯重點是授權、背景執行與電池限制。桌面版 v2rayN 更適合細查路由表與 DNS 服務。跨平台同步設定時,不要假設 TUN 參數可以完整複製;應同步規則意圖,再依平台重新選擇介面、權限與堆疊實作。
關閉後恢復系統網路
異常退出可能留下系統代理、DNS 或路由狀態。正常處理順序是重新啟動客戶端,先關閉 TUN 與系統代理,再退出客戶端;接著檢查系統網路設定是否恢復為自動取得。若只有網域無法存取而 IP 可達,重點恢復 DNS;若所有目標都無法連線,檢查預設路由與虛擬介面;若只有瀏覽器異常,檢查瀏覽器代理來源。反覆重新安裝客戶端通常無法修復系統層殘留,先確認是哪一層未恢復更有效。
排錯原則:TUN 發生問題時,先退回系統代理基準。確認節點、訂閱與基礎路由可用後,再檢查介面、權限、DNS 與嚴格路由,避免在失效狀態上繼續疊加規則。
FakeDNS 的運作方式與適用範圍
FakeDNS 會為網域回傳保留位址池中的暫時位址,並在核心內部儲存網域與該位址的映射。應用程式連線至這個暫時位址時,核心會依映射還原原始網域,再執行路由與實際連線。它主要解決的問題是:某些應用程式先自行發起 DNS 查詢,之後只將 IP 連線交給 TUN,導致核心失去原始網域,網域規則無法命中。FakeDNS 將網域資訊保留到後續連線階段,使分流判斷更穩定。
FakeDNS 不是一般 DNS 伺服器的替代品,也不會憑空改善所有解析問題。核心還原網域後,真正建立連線時仍需要依設定完成解析,或交由相應出站處理。若路由、真實 DNS 或出站設定錯誤,FakeDNS 只會讓問題更難觀察。因此應在 TUN 基礎鏈路與一般 DNS 已穩定後啟用,並明確哪些查詢進入 FakeDNS,哪些內部網域必須回傳真實位址。
位址池與映射容量
FakeDNS 設定包含位址池與映射容量。位址池必須使用專門保留的範圍,不能與區域網路、企業網路、容器網路或現有虛擬介面重疊。發生重疊時,系統可能將暫時位址送往真實網路,或將真實內部位址誤交給 FakeDNS。容量決定可同時儲存多少網域映射;容量不足會淘汰舊映射,應用程式仍持有舊位址時可能無法還原網域。日常使用應保留客戶端預設值,只有確認存在大量並行網域且記錄顯示映射遭淘汰時才調整。
{
"fakedns": [
{
"ipPool": "198.18.0.0/15",
"poolSize": 65535
}
]
}
198.18.0.0/15 是常見的基準測試保留位址範圍,許多實作會將其用於虛擬映射。使用前仍需檢查本機網路與其他工具是否占用該範圍。設定片段只代表核心中的 FakeDNS 物件;要讓查詢真正進入其中,還需要對應的 DNS 設定、入站嗅探與 TUN 接管。單獨新增物件不會自動改變系統查詢路徑。
嗅探與目標覆寫
入站嗅探用於從連線中識別網域或協定資訊。配合 FakeDNS 時,常見的目標覆寫包含 HTTP、TLS 與 FakeDNS 映射。是否啟用目標覆寫應依客戶端範本決定:覆寫可讓路由使用還原後的網域,但也可能改變某些特殊連線的目標處理。先使用客戶端提供的標準 FakeDNS 模式,查看產生的設定後再進行自訂。不要一次開啟所有協定識別選項。
{
"inbounds": [
{
"tag": "tun-in",
"protocol": "tun",
"sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls",
"fakedns"
],
"routeOnly": true
}
}
]
}
routeOnly 表示識別結果主要用於路由判斷,不會直接替換最終連線目標,適合希望降低目標改寫影響的環境。具體欄位是否由目前核心與客戶端設定方式支援,應以客戶端產生的結果為準。若載入設定時回報未知欄位,先撤回自訂片段,改用介面中的 FakeDNS 選項,再檢查核心家族與設定格式是否匹配。
不適合交給 FakeDNS 的目標
區域網路網域、企業內部網域、列印與探索服務通常需要真實位址,應繞過 FakeDNS 並交給內部 DNS。依賴本機位址判斷、憑證綁定或特殊解析結果的應用程式,也可能不適合虛擬映射。排除規則應盡量具體:先排除明確的內部網域與保留後綴,再觀察是否存在其他異常。直接排除大範圍網域,會讓 FakeDNS 失去保留網域資訊的意義。
部分應用程式會驗證 DNS 回傳位址、繞過系統解析,或使用自己的加密查詢。前兩種情況可能導致 FakeDNS 不生效,後一種情況則可能讓查詢直接作為一般 HTTPS 連線進入 TUN,此時核心只能依連線特徵嘗試還原網域。若記錄中看不到 FakeDNS 查詢,不要反覆修改位址池,先確認應用程式的查詢是否進入客戶端。
常見故障的判斷順序
啟用後完全無法解析,先檢查 DNS 是否將查詢送入 FakeDNS;能回傳暫時位址但連線失敗,檢查 TUN 是否接管該位址範圍,以及入站能否還原網域;只有內部服務失敗,檢查內部網域排除規則與區域網路 DNS;使用一段時間後偶爾失敗,檢查映射容量、應用程式快取與休眠恢復。每種症狀對應不同層級,不能用更換 DNS 伺服器解決所有問題。
驗證時可以觀察查詢是否回傳保留位址,再在核心記錄中確認同一位址被映射回原始網域,並查看最終出站。不要使用系統工具直接連線至暫時位址來判斷伺服器是否可達,因為它本來就不代表真實伺服器。關閉 FakeDNS 後,應清除應用程式與系統的相關 DNS 快取,避免應用程式繼續連線至已失效的暫時位址。
適用條件:FakeDNS 最適合 TUN 已穩定、網域規則較多,且應用程式只提交 IP 連線的情境。一般系統代理已保留目標網域時,增加 FakeDNS 通常不會帶來明顯效益。
與真實 DNS 分流並存
成熟的設定通常會同時存在 FakeDNS 與真實 DNS:一般公網網域可先回傳暫時位址以保留網域,內部網域直接向區域網路 DNS 查詢真實位址,節點伺服器網域透過基礎 DNS 完成啟動解析,少數指定服務再使用專用加密查詢。每組網域都應有明確優先級,避免同一目標既被內部 DNS 匹配,又進入 FakeDNS。調整後分別測試公網網頁、內部服務、節點重新連線與系統休眠恢復,確認映射在生命週期變化後仍能重建。
多重訂閱管理、更新與遷移
多重訂閱管理的難點不是匯入更多位址,而是釐清來源邊界、更新責任與故障隔離。每個訂閱都應有獨立名稱、分組與更新時間策略;自建伺服器使用獨立分組;臨時測試訂閱預設關閉自動更新。如此當某次更新導致節點消失、備註改變或參數無法解析時,可以快速確定影響範圍,而不必在混合清單中逐項比對。
訂閱名稱應長期保持穩定,節點名稱則由來源更新。建議採用「用途—來源」的簡短命名方式,不要把目前日期、速度或線上狀態寫入訂閱名稱。對於同一來源的備用訂閱位址,應只啟用一個主要入口,備用入口保留在記錄中而不要同時更新,否則客戶端可能匯入大量重複節點。多部裝置使用時,分組名稱保持一致有助於對照,但使用中的節點與自動更新頻率應依各裝置的網路環境分別設定。
自動更新的時間與失敗策略
自動更新適合穩定的訂閱,但不宜過於頻繁。訂閱內容通常不會每分鐘變動,過度密集的更新會增加失敗雜訊,也可能在網路剛恢復時反覆覆蓋目前清單。桌面版可設定固定間隔更新,並保留手動更新入口;行動裝置則需考慮背景限制,客戶端可能只有在前景或系統允許背景執行時才能完成更新。看到「更新成功」後,仍應確認項目數量與解析狀態,而不是只看請求是否完成。
更新失敗分為網路請求失敗、內容格式錯誤與部分項目解析失敗。請求失敗時,保留舊清單最重要,不應立即刪除分組後重建;格式錯誤時,查看訂閱是否回傳預期內容;部分解析失敗時,確認是否出現客戶端不支援的協定或欄位,其餘成功項目仍可使用。連續失敗時,先在同一網路下驗證基礎連線,再切換網路,以判斷是訂閱入口無法連線,還是客戶端解析問題。
合併策略與重複節點
不建議將多個訂閱永久合併成一個無法追溯來源的分組。合併後的清單雖然短期方便,但之後無法判斷哪個來源應該更新或刪除。更好的方式是保留來源分組,透過篩選器建立暫時的候選清單。若客戶端提供跨分組篩選,可依協定、用途或備註關鍵字顯示結果;若不提供,則在各分組內保留一致的前綴,減少切換成本。
判斷重複節點時,應比較完整的連線身分。位址與連接埠相同不一定代表重複,因為使用者識別碼、TLS 伺服器名稱、傳輸路徑與協定可能不同;備註相同也不表示參數相同。只有關鍵欄位完全一致時,才適合刪除重複項目。若兩個訂閱長期提供同一伺服器,選擇一個作為主要來源,另一個保留為獨立備用,不要讓自動更新持續產生視覺上的重複。
訂閱覆蓋與本機修改
自動訂閱中的節點參數通常由來源控制。本機修改備註可能在更新後保留,也可能被覆蓋;修改伺服器參數則更容易在下次更新時遺失。需要長期自訂的項目,應複製到「自建節點」或「本機修改」分組,並在名稱中標明用途。複製後它不再自動取得來源更新,因此伺服器參數變更時需要手動維護。不要同時修改訂閱原項與副本,否則發生故障時難以確認正在使用哪一份。
路由、DNS 與 TUN 設定應盡量獨立於特定節點。只要出站標籤與客戶端產生邏輯保持穩定,切換訂閱就不應要求重寫整套路由。若某類節點不支援特定網路類型,可透過獨立設定檔或分組策略處理,而不是在通用路由中加入大量與節點名稱綁定的條件。設定依賴越少,遷移與回退就越容易。
跨裝置遷移的最小集合
遷移時優先帶走訂閱來源、手動節點、使用者路由、DNS 規則與必要的客戶端設定,不要依賴複製執行時快取、記錄或暫時產生的設定。v2rayN、v2rayNG 與 v2flyNG 的介面及核心家族存在差異,完整設定不一定能直接跨客戶端匯入。先遷移訂閱並確認單一節點連線,再依「路由、DNS、TUN、FakeDNS」的順序重建進階設定。
敏感欄位不應出現在公開備份、截圖或共用文件中。分享排錯資訊時,可以保留協定類型、傳輸方式、規則結構與錯誤類別,同時隱藏伺服器位址、使用者識別碼、訂閱位址與驗證內容。若需要比較兩台裝置,可記錄客戶端名稱、平台、接管模式、DNS 策略與規則命中結果,這些資訊通常足以定位差異。
更新後的驗收清單
每次重要更新後依序確認:訂閱名稱仍對應正確來源;自建分組未被覆蓋;目前使用中的節點仍然存在;新項目可被客戶端識別;篩選器仍能匹配備註;路由與 DNS 不依賴已刪除的出站標籤;自動更新失敗時舊清單仍可使用。最後重新啟動客戶端並建立一次新連線,避免只驗證記憶體中的舊設定。
遷移提示:不同客戶端之間應優先遷移「設定意圖」,不要直接搬運暫時產生的完整檔案。先恢復基礎連線,再逐層恢復進階設定,發生問題時才能準確回退。
若更新後大量項目無法識別,先確認所用客戶端與目標平台是否正確。桌面版選擇 v2rayN,Android 可依核心需求選擇 v2rayNG 或 v2flyNG。對應安裝入口集中在V2Ray 客戶端下載頁,頁面依 Windows、macOS、Android 與 Linux 分類。
自訂出站、鏈式轉送與系統化排錯
出站是路由決策的最終目標。常見出站包括代理節點、直接連線、阻斷,以及轉送至本機或上游 SOCKS 服務。自訂出站適合將特定業務交給獨立出口、重用本機既有服務,或建立清楚的測試路徑。設定重點是標籤唯一、協定參數完整,且依賴關係不能形成迴圈。路由只透過標籤引用出站,因此重新命名後必須同步更新所有規則。
圖形客戶端通常會依目前節點產生主要代理出站,同時加入直連與阻斷出站。手動擴充時不要覆蓋這些基礎物件,除非已確認客戶端的合併方式。較穩妥的方法是使用客戶端提供的自訂設定、預設設定或範本入口,建立一個唯一標籤,再用一條具體路由進行測試。直接修改執行時檔案,會在切換節點或重新啟動後失效,也可能造成介面狀態與實際設定不一致。
新增本機 SOCKS 上游
{
"outbounds": [
{
"tag": "local-socks",
"protocol": "socks",
"settings": {
"servers": [
{
"address": "127.0.0.1",
"port": 1081
}
]
}
}
]
}
範例建立名為 local-socks 的出站,將連線交給本機 1081 連接埠的 SOCKS 服務。使用前應確認該連接埠確實在監聽,並避免其流量再次被同一個 TUN 捕獲後送回自身。若上游需要驗證,應在客戶端支援的設定結構中加入實際憑據,並只保存在本機。測試時先將一個明確網域指向該出站,不要直接把全域流量切換過去。
{
"routing": {
"rules": [
{
"type": "field",
"domain": [
"domain:service.example"
],
"outboundTag": "local-socks"
}
]
}
}
規則中的標籤必須與出站標籤逐字一致。設定載入失敗時,先檢查 JSON 結構、重複逗號與欄位位置;載入成功但沒有走上游時,檢查規則順序與網域是否命中;已命中但連線失敗時,再檢查本機連接埠、上游驗證與迴圈路由。分層檢查比反覆更換節點更快。
鏈式轉送的風險控制
鏈式轉送會讓一個出站透過另一個出站建立連線。它適合具有明確網路拓撲的環境,但會增加解析依賴、連線層數與故障點。開始前先畫出路徑:應用程式進入哪個入站,路由選擇哪個業務出站,該出站透過哪個前置出站連線,節點伺服器網域由誰解析。路徑中的任何一段重新回到前面的入口,都可能形成迴圈。
鏈式結構不應透過模糊的全域規則實現。為前置出站與業務出站使用明確標籤,為上游伺服器位址加入必要的直連或指定路由,並保留一個不經過鏈路的基礎連線作為回退。發生逾時後,先分別驗證每一跳是否可用,再進行組合測試。若各自可用但組合失敗,重點檢查 DNS 啟動依賴、UDP 支援,以及 TUN 是否再次捕獲上游連線。
直連與阻斷出站
直連出站用於區域網路、內部服務與不需要代理的目標。阻斷出站用於明確拒絕連線。阻斷規則應具體,並放在廣泛代理規則之前。直接使用大範圍分類可能影響登入、付款、更新或嵌入資源,因此新增後要驗證頁面主網域與資源網域。若只想避免某個應用程式使用代理,優先使用程序規則或入站隔離;若客戶端與核心不支援穩定的程序識別,再使用容易理解的網域與 IP 條件。
直連不代表繞過客戶端的所有處理。流量可能先進入 TUN,再由核心選擇直連出站;也可能在系統路由層直接繞過 TUN。兩種方式對記錄、DNS 與本機服務相容性有不同影響。需要記錄並統一路由時,可讓流量進入核心後直連;區域網路探索、裝置存取等對本機網路敏感的流量,通常更適合在系統路由層繞過,同時保留私有位址直連規則。
依記錄建立排錯矩陣
進階設定排錯應回答四個問題:流量是否進入客戶端、網域由誰解析、哪條路由命中,以及最終出站是否建立連線。記錄詳細程度只在排錯期間提高,完成後恢復一般等級,避免大量記錄影響查找。若記錄中沒有目標請求,檢查系統代理、應用程式代理或 TUN;有請求但沒有網域,檢查 DNS 接管與嗅探;路由標籤錯誤,調整規則順序;出站連線失敗,檢查對應伺服器與上游。
| 現象 | 可能層級 | 第一項檢查 | 下一步 |
|---|---|---|---|
| 客戶端運作但應用程式直連 | 入站接管 | 應用程式是否遵循系統代理 | 單獨設定應用程式代理或測試 TUN |
| 網域失敗,IP 可連線 | DNS | 查詢是否進入預期伺服器 | 檢查快取、位址族與查詢路由 |
| 目標走錯線路 | 路由 | 首條命中規則 | 調整具體規則與兜底順序 |
| 命中正確但連線逾時 | 出站或上游 | 出站標籤對應的物件 | 分別測試節點、本機連接埠與網路 |
| TUN 開啟後全部中斷 | 介面與系統路由 | 虛擬介面與預設路由 | 關閉嚴格路由並檢查 DNS |
| FakeDNS 回傳位址但連線失敗 | 映射與入站 | TUN 是否接管位址池 | 檢查網域還原與嗅探設定 |
建立長期可維護的設定
可維護的設定應盡量少依賴節點名稱、暫時位址與介面排序。路由引用穩定的出站標籤,DNS 使用明確的網域群組,訂閱保持來源邊界,TUN 與 FakeDNS 只在需要時啟用。每個自訂物件都應寫明用途,並保留能正常運作的基礎設定。發生故障時先停用最近新增的物件,確認基準恢復,再將問題縮小到一條規則或一個出站。
設定完成後進行四輪驗收:重新啟動客戶端,驗證設定可載入;切換節點,驗證路由不依賴舊節點;更新訂閱,驗證自訂分組與標籤未被覆蓋;重新啟動系統,驗證 TUN、DNS 與系統代理能正確建立與恢復。只透過一次網頁存取不算完成。涉及內部網路時,還要驗證區域網路服務、內部網域與系統休眠恢復。
收尾檢查:訂閱負責提供節點,篩選負責縮小候選範圍,DNS 負責解析,路由負責選擇出站,TUN 負責擴大接管範圍,FakeDNS 負責保留網域,自訂出站負責完成特定路徑。依層級記錄後,複雜設定仍然可以回退與重現。
若問題仍無法定位,先回到快速入門主線驗證最小連線,再前往說明中心核對安裝設定與故障排查項目。涉及系統代理、DNS 或速度差異時,也可結合本站技術筆記中的分層案例繼續檢查。