完整查閱手冊

V2Ray 進階設定:訂閱、路由、DNS 與 TUN

從設定物件之間的關係開始,逐章處理訂閱分組、伺服器篩選、路由規則、DNS、TUN、FakeDNS、多重訂閱與自訂出站。範例以 v2rayN 為主,並說明 v2rayNG、v2flyNG 的對應入口。

8 個設定主題 v2rayN 桌面版 v2rayNG Android v2flyNG Android

閱讀路徑:使用文件負責匯入訂閱、選擇節點、連線與驗證的快速主線;本頁負責說明每項進階設定為何如此配置、規則如何排序,以及發生異常時應檢查哪一層。首次使用客戶端時,請先完成快速入門,再依實際問題查閱本手冊。

01 / 設定基準

先建立設定模型,再調整開關

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」,避免產生大量難以辨認的副本。遇到異常時先回到基準,確認基礎連線仍然成立,再逐項恢復進階設定。若回到基準後仍然失敗,問題更可能出在訂閱、節點或本機網路,而不是剛才的路由表示式。

注意:設定範例用於說明結構。匯入前應確認客戶端支援對應欄位,並將網域、連接埠與標籤替換成自己的實際設定。不要直接拼接多段完整設定,否則重複的頂層欄位會導致設定無法載入。

02 / 訂閱整理

訂閱分組與伺服器篩選

訂閱負責批次提供伺服器,但伺服器數量增加後,選擇成本與誤操作也會同步增加。有效的整理方式不是把所有節點放進一個很長的清單,而是先依來源分組,再依用途篩選。v2rayN 適合將預設分組、外部訂閱與自建節點分開;v2rayNG、v2flyNG 則可利用訂閱設定與備註欄位區分來源。分組邊界應保持穩定,節點備註可以變動,但來源、用途與維護責任不應混在一起。

每個訂閱都應使用容易辨識的名稱,例如「日常訂閱」「測試線路」「自建服務」。名稱只表示來源,不要把目前節點狀態寫進名稱,因為狀態會隨時間改變。手動新增的伺服器應獨立保留,不要移到會自動更新的訂閱群組中,以免更新時難以判斷它是否受到訂閱覆蓋。對於不再使用的訂閱,先停用自動更新並觀察一段時間,再刪除其分組;直接清空可能同時失去原有備註與選擇記錄。

篩選器要解決什麼問題

伺服器篩選適合從長清單中縮小候選範圍。常見維度包括備註關鍵字、協定類型、傳輸方式與訂閱來源。篩選條件首先應保持可理解:輸入關鍵字後,使用者能從伺服器備註看出匹配原因。複雜的正規表示式雖然靈活,但訂閱命名稍有變化就可能漏選。較穩定的做法是要求同一訂閱的備註採用一致格式,再以地區、用途或線路類別作為關鍵字。

篩選與路由是兩回事。篩選決定介面中要顯示或批次測試哪些伺服器,路由決定連線後某個請求要走哪個出站。不要用伺服器篩選取代流量分流,也不要因為某個節點被隱藏,就認為它已從設定中完全刪除。部分客戶端的篩選只會改變清單顯示,使用中的節點仍可能繼續運作;執行批次刪除前,應先確認目前選取項目與分組範圍。

關鍵字與正規表示式的使用界線

簡單關鍵字適合日常選擇,例如依備註中的「工作」「自建」或協定名稱篩選。需要表達多個備選詞時,可使用正規表示式的選擇符;需要排除測試節點時,可使用負向條件,但應先在小範圍內驗證。不同客戶端的篩選入口與正規表示式能力可能不同,複製表示式前應確認它是套用於伺服器備註、位址還是完整顯示名稱。以下表示式只展示通用思路,不依賴特定節點數量或速度資料。

工作|自建
^(?!.*測試).*
(VLESS|VMess|Trojan)

第一行會匹配備註中包含「工作」或「自建」的項目;第二行會排除包含「測試」的名稱;第三行則依顯示名稱中的協定詞進行篩選。若訂閱採用不同的命名方式,應先查看實際備註再調整。篩選結果為空時,先移除邊界符號與排除條件,確認基本關鍵字可以匹配,再逐步增加限制。不要一開始就編寫很長的表示式,否則難以判斷是哪一段造成不匹配。

更新、去重與失效項目的處理

訂閱更新應優先在單一分組內執行。更新後先確認項目是否正常解析,再切換使用中的節點。同一伺服器可能因備註不同而重複出現,也可能只是位址相同但參數不同;去重時不能只看網域與連接埠,還應比較使用者識別碼、協定、傳輸方式、TLS 與路徑等關鍵參數。自動去重適合完全一致的項目,參數有差異時保留並重新命名會更穩妥。

失效項目可分為暫時無法連線、參數錯誤與訂閱撤銷三類。一次連線失敗不足以判定長期失效,應先切換本機網路或等待線路恢復;若持續出現協定解析錯誤,則檢查訂閱是否使用目前客戶端無法識別的欄位;更新後從訂閱中消失的項目通常是來源方撤銷,不建議手動複製回自動分組。測速只用於比較目前網路條件下的回應,不能作為永久排序依據。

整理建議:先依來源分組,再用關鍵字篩選候選伺服器,最後手動選擇使用中的節點。分組解決維護問題,篩選解決尋找問題,路由規則解決流量去向問題,三者不要混用。

三款客戶端的分組重點

v2rayN 的桌面清單空間較大,適合管理多個訂閱、批次更新與細緻篩選,也是桌面平台的首選。v2rayNG 使用觸控清單,建議減少同時啟用的訂閱數量,名稱保持簡短並保留明確前綴。v2flyNG 的管理方式接近 Android 的使用習慣,但核心家族不同,匯入同一訂閱後仍應確認協定與傳輸參數是否完整識別。需要重新安裝或更換平台時,請從下載頁依系統選擇對應客戶端。

完成整理後,應進行一次可復原性檢查:記住目前使用中的訂閱與伺服器,手動更新單一分組,確認更新不會改動自建節點,再重新啟動客戶端驗證選擇是否保留。若客戶端在更新後切換了使用中項目,檢查是否啟用了自動選擇,或目前項目是否已被訂閱替換。訂閱位址屬於持續存取憑據,不應寫入公開截圖、記錄或共用規則檔案;排錯時只需說明訂閱解析結果與錯誤類型。

03 / 流量決策

V2Ray 路由規則實戰

路由規則會依據網域、IP、連接埠、網路類型、入站標籤或協定特徵,將連線送往指定出站。最常見的出站是代理、直連與阻斷。規則通常依序匹配,先命中的規則先執行,因此同一目標同時符合多條規則時,順序比規則數量更重要。設計規則前應先寫出業務目標,例如「區域網路直連、指定工作網域走專用出站,其餘依基礎規則處理」,再將目標轉換成匹配條件。

一套易於維護的順序通常由具體到廣泛:先處理需要阻斷的明確目標,再處理區域網路與私有位址,接著放置使用者指定網域與專用出站,再放置區域網域或 IP 規則,最後才是兜底規則。把大範圍規則放在頂端,會讓後面的細部規則永遠無法命中。修改後應查看客戶端記錄中的路由結果,而不是只憑目標網頁能否開啟來判斷。

網域匹配與網域策略

網域規則可以匹配完整網域、後綴網域或預先定義的網域集合。完整網域適合單一服務,後綴匹配則會涵蓋所有子網域,使用時應評估範圍。例如對 example.com 使用後綴規則,也會同時影響 api.example.comstatic.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 結果,核心也可能重用既有工作階段。關閉目標應用程式的現有連線、清除必要快取並重新連線客戶端,再進行驗證。不要連續重新整理同一個已建立的工作階段來判斷新規則。更多常見問題可在說明中心依「使用技巧」與「故障排查」分類查詢。

規則界線:大範圍兜底規則必須放在最後。每增加一條規則,都應寫清楚匹配對象、目標出站與驗證方式;無法說明用途的舊規則應先停用,而不是繼續疊加例外。

04 / 名稱解析

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 串接。每一步都記錄查詢伺服器、回傳位址與業務出站,避免只看「網頁能否開啟」。

05 / 系統接管

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 與嚴格路由,避免在失效狀態上繼續疊加規則。

06 / 網域映射

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。調整後分別測試公網網頁、內部服務、節點重新連線與系統休眠恢復,確認映射在生命週期變化後仍能重建。

07 / 來源治理

多重訂閱管理、更新與遷移

多重訂閱管理的難點不是匯入更多位址,而是釐清來源邊界、更新責任與故障隔離。每個訂閱都應有獨立名稱、分組與更新時間策略;自建伺服器使用獨立分組;臨時測試訂閱預設關閉自動更新。如此當某次更新導致節點消失、備註改變或參數無法解析時,可以快速確定影響範圍,而不必在混合清單中逐項比對。

訂閱名稱應長期保持穩定,節點名稱則由來源更新。建議採用「用途—來源」的簡短命名方式,不要把目前日期、速度或線上狀態寫入訂閱名稱。對於同一來源的備用訂閱位址,應只啟用一個主要入口,備用入口保留在記錄中而不要同時更新,否則客戶端可能匯入大量重複節點。多部裝置使用時,分組名稱保持一致有助於對照,但使用中的節點與自動更新頻率應依各裝置的網路環境分別設定。

自動更新的時間與失敗策略

自動更新適合穩定的訂閱,但不宜過於頻繁。訂閱內容通常不會每分鐘變動,過度密集的更新會增加失敗雜訊,也可能在網路剛恢復時反覆覆蓋目前清單。桌面版可設定固定間隔更新,並保留手動更新入口;行動裝置則需考慮背景限制,客戶端可能只有在前景或系統允許背景執行時才能完成更新。看到「更新成功」後,仍應確認項目數量與解析狀態,而不是只看請求是否完成。

更新失敗分為網路請求失敗、內容格式錯誤與部分項目解析失敗。請求失敗時,保留舊清單最重要,不應立即刪除分組後重建;格式錯誤時,查看訂閱是否回傳預期內容;部分解析失敗時,確認是否出現客戶端不支援的協定或欄位,其餘成功項目仍可使用。連續失敗時,先在同一網路下驗證基礎連線,再切換網路,以判斷是訂閱入口無法連線,還是客戶端解析問題。

合併策略與重複節點

不建議將多個訂閱永久合併成一個無法追溯來源的分組。合併後的清單雖然短期方便,但之後無法判斷哪個來源應該更新或刪除。更好的方式是保留來源分組,透過篩選器建立暫時的候選清單。若客戶端提供跨分組篩選,可依協定、用途或備註關鍵字顯示結果;若不提供,則在各分組內保留一致的前綴,減少切換成本。

判斷重複節點時,應比較完整的連線身分。位址與連接埠相同不一定代表重複,因為使用者識別碼、TLS 伺服器名稱、傳輸路徑與協定可能不同;備註相同也不表示參數相同。只有關鍵欄位完全一致時,才適合刪除重複項目。若兩個訂閱長期提供同一伺服器,選擇一個作為主要來源,另一個保留為獨立備用,不要讓自動更新持續產生視覺上的重複。

訂閱覆蓋與本機修改

自動訂閱中的節點參數通常由來源控制。本機修改備註可能在更新後保留,也可能被覆蓋;修改伺服器參數則更容易在下次更新時遺失。需要長期自訂的項目,應複製到「自建節點」或「本機修改」分組,並在名稱中標明用途。複製後它不再自動取得來源更新,因此伺服器參數變更時需要手動維護。不要同時修改訂閱原項與副本,否則發生故障時難以確認正在使用哪一份。

路由、DNS 與 TUN 設定應盡量獨立於特定節點。只要出站標籤與客戶端產生邏輯保持穩定,切換訂閱就不應要求重寫整套路由。若某類節點不支援特定網路類型,可透過獨立設定檔或分組策略處理,而不是在通用路由中加入大量與節點名稱綁定的條件。設定依賴越少,遷移與回退就越容易。

跨裝置遷移的最小集合

遷移時優先帶走訂閱來源、手動節點、使用者路由、DNS 規則與必要的客戶端設定,不要依賴複製執行時快取、記錄或暫時產生的設定。v2rayN、v2rayNG 與 v2flyNG 的介面及核心家族存在差異,完整設定不一定能直接跨客戶端匯入。先遷移訂閱並確認單一節點連線,再依「路由、DNS、TUN、FakeDNS」的順序重建進階設定。

敏感欄位不應出現在公開備份、截圖或共用文件中。分享排錯資訊時,可以保留協定類型、傳輸方式、規則結構與錯誤類別,同時隱藏伺服器位址、使用者識別碼、訂閱位址與驗證內容。若需要比較兩台裝置,可記錄客戶端名稱、平台、接管模式、DNS 策略與規則命中結果,這些資訊通常足以定位差異。

更新後的驗收清單

每次重要更新後依序確認:訂閱名稱仍對應正確來源;自建分組未被覆蓋;目前使用中的節點仍然存在;新項目可被客戶端識別;篩選器仍能匹配備註;路由與 DNS 不依賴已刪除的出站標籤;自動更新失敗時舊清單仍可使用。最後重新啟動客戶端並建立一次新連線,避免只驗證記憶體中的舊設定。

遷移提示:不同客戶端之間應優先遷移「設定意圖」,不要直接搬運暫時產生的完整檔案。先恢復基礎連線,再逐層恢復進階設定,發生問題時才能準確回退。

若更新後大量項目無法識別,先確認所用客戶端與目標平台是否正確。桌面版選擇 v2rayN,Android 可依核心需求選擇 v2rayNG 或 v2flyNG。對應安裝入口集中在V2Ray 客戶端下載頁,頁面依 Windows、macOS、Android 與 Linux 分類。

08 / 出站編排

自訂出站、鏈式轉送與系統化排錯

出站是路由決策的最終目標。常見出站包括代理節點、直接連線、阻斷,以及轉送至本機或上游 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 或速度差異時,也可結合本站技術筆記中的分層案例繼續檢查。