01/設定來源
訂閱分組與伺服器篩選
分組的界線
訂閱分組主要用於管理來源,並不是流量分流規則。分組通常會儲存訂閱網址、更新選項,以及由該來源產生的伺服器記錄。將伺服器移入某個分組,不會自動指定特定網站使用該伺服器;網站要走哪個出站,仍由目前的連線設定與路由決定。先釐清這點,才不會把整理清單誤當成網路策略。
在 v2rayN 中,先開啟訂閱分組管理,建立名稱清楚的分組,再輸入來源提供的訂閱網址。名稱建議標示用途或來源,例如「日常使用」和「備用連線」,避免只用難以辨識的字母命名。儲存後更新目前分組,再返回伺服器清單確認匯入結果。各版本介面中的選單位置可能不同,請依功能名稱與說明找到入口。
訂閱網址通常包含存取憑證,應視同帳戶資訊妥善保管。分享截圖前請遮住網址與 QR Code,也不要將完整連結貼到公開記錄中。網址能在瀏覽器開啟,不代表回傳內容一定適用於目前的用戶端;登入頁、提示頁面和格式轉換結果都可能被當成一般文字下載,最後就會出現更新完成、卻沒有可用記錄的情況。
伺服器篩選
篩選可用來縮小清單,或控制更新後保留哪些記錄,但各用戶端的篩選範圍不盡相同。有些只會影響目前顯示,有些則會在解析訂閱時排除項目。初次設定時,先用簡單的名稱關鍵字確認效果:記下更新前顯示的內容,儲存條件後重新更新該分組,再清除篩選條件觀察結果。確認實際作用後,再組合較複雜的條件。
若輸入框明確支援正規表示式,可使用以下模式比對名稱中的兩種用途詞。直線符號代表「或」,括號用於分組。若輸入框只支援一般文字,貼上正規表示式不會產生相同效果。名稱由來源決定,可能隨更新改變;地區縮寫、倍率標示與協定名稱也不一定有統一格式,因此篩選條件宜保持寬鬆。
(日常|備用)
先確認輸入框的模式是「保留符合項目」還是「排除符合項目」。相同的表示式在不同模式下,結果可能完全相反。若清單變成空白,先別急著重新安裝用戶端:清除篩選條件、選取所有分組、取消搜尋,再更新單一來源。若記錄重新出現,問題就在顯示或篩選層,而不是伺服器連線參數。
更新與手動修改
訂閱記錄通常會由遠端資料重新產生。直接修改記錄中的位址、連接埠或傳輸欄位,下次更新時可能會恢復原值。若要長期保留調整,請複製成獨立的手動記錄並使用不同名稱,同時註明複製日期與用途。如此既能繼續接收來源更新,也能辨別哪些記錄已不再由訂閱管理,避免舊參數覆蓋新設定。
Android 上的 v2rayNG 與 v2flyNG 也應依來源分開管理訂閱。匯入 QR Code 適合單筆設定,匯入訂閱則適合日後批次更新;兩者代表不同的資料關係。若要從另一台裝置搬移設定,請先確認匯出的是單筆連線、訂閱網址還是完整應用程式設定,再選擇對應的匯入入口,不要反覆嘗試不相干的格式。
更新失敗時,先保留目前可用的記錄,再檢查系統時間、訂閱是否過期,以及更新要求是否需要透過現有代理連線。有些用戶端允許透過目前代理更新,有些更新流程則會直接連線。先用目前網路可行的方式更新一個分組,成功後再考慮自動更新;不要讓所有來源都依賴尚未驗證的連線。
整理完成後,選一筆記錄作為測試基準,暫時不要啟用自動切換或複雜篩選。先確認該連線在一般系統代理模式下可用,再開始設定路由與 DNS。來源管理要解決的是「設定從哪裡來」,連線測試要確認的是「設定能不能用」;兩項驗收分開記錄,才能縮小後續故障的範圍。
02/比對與出站
路由規則實作
比對順序與規則條件
路由規則會依序檢查,由最先符合的規則決定出站。明確例外應排在範圍較廣的規則之前,兜底規則則放在最後。若先將所有連接埠交給代理,後面的私有位址直連規則就沒有機會生效。調整前先列出預期行為:哪些目標直連、哪些需要代理、哪些應封鎖,再將清單整理成有順序的規則。
同一條規則中的不同類型條件通常必須同時符合;同一個網域陣列中的多個項目通常表示符合其中任一項。例如同時指定網域與連接埠,代表目標網域必須符合且使用指定連接埠,而不是網域或連接埠符合其一即可。若希望兩項條件各自獨立觸發,應拆成兩條規則。誤解條件之間的關係,比打錯字更難從介面中察覺。
常見的網域寫法中,full:example.com 比對完整網域,domain:example.com 比對該網域及其子網域。一般字串與正規表示式的比對範圍較廣,容易誤中名稱相近的目標。能用完整網域指定例外時,就別先用模糊關鍵字;網域本身不包含協定、路徑或網頁參數。
最精簡的分流範例
以下範例展示將私有位址、中國大陸常見網域與位址範圍設為直連,其餘 TCP 和 UDP 流量則透過代理的規則架構。請將此物件合併到主設定的 routing 層。範例需要可用的 Geo 資料檔,並假設已有名為 direct 與 proxy 的出站;標籤只是命名慣例,不會自動建立對應連線。
{
"routing": {
"domainStrategy": "IPIfNonMatch",
"rules": [
{
"type": "field",
"ip": ["geoip:private"],
"outboundTag": "direct"
},
{
"type": "field",
"domain": ["geosite:cn"],
"outboundTag": "direct"
},
{
"type": "field",
"ip": ["geoip:cn"],
"outboundTag": "direct"
},
{
"type": "field",
"network": "tcp,udp",
"outboundTag": "proxy"
}
]
}
}
IPIfNonMatch 表示網域規則未符合時,可以嘗試解析並繼續比對 IP 規則。這不保證所有應用程式要求都帶有網域,也不代表最終出站一定會使用這次解析的結果。若要求中只有目標 IP,網域規則可能無法參與;若要還原網域資訊,需搭配入口嗅探或其他機制,單靠增加網域清單無法解決。
Geo 規則的效果取決於資料檔及其分類。一項服務可能同時使用多個網域、內容傳遞網路位址與第三方資源,不能因為首頁直連,就認定整個應用程式都已直連。若要為特定服務設定例外,先觀察實際要求的目標,再逐一補上必要網域。不要把整段公有雲位址範圍直接加入直連規則,以免策略涵蓋範圍過大。
規則驗收
| 測試目標 | 預期行為 | 優先檢查 |
|---|---|---|
| 區域網路裝置 | 透過直連出站存取 | 私有位址規則與本機路由 |
| 明確指定的網域例外 | 命中指定標籤 | 網域寫法與規則順序 |
| 未列出的普通目標 | 進入兜底出站 | 最後一條規則與標籤 |
每次只修改一組規則,並使用相同的測試目標比較修改前後的結果。瀏覽器快取、連線重用與應用程式背景程序可能讓舊連線繼續運作,因此儲存後應重新啟動核心,並關閉相關應用程式的舊連線。查看記錄時,請留意目標網域、目標位址與出站標籤;連線建立成功,不代表命中了預期規則。
廣告分類封鎖可作為獨立的首要規則,但不適合一律封鎖所有大型分類。啟用後若登入、付款或驗證碼功能異常,先停用該規則重新測試,再將必要網域設為優先比對的例外。封鎖需要已有封鎖出站,通常使用 blackhole 協定;只建立名為 block 的標籤並不會自動生效。
也要區分「系統代理模式」與「核心路由模式」。前者決定應用程式是否將要求送到用戶端,後者決定收到的要求要如何轉送。未進入用戶端的流量不會經過上述規則處理。兩者的詳細關係請參閱系統代理與路由模式詳解;排錯時務必先確認流量入口。
03/網域解析
DNS 設定最佳化
解析流程
最佳化 DNS 時,先確保解析路徑一致,再考慮回應速度。一次連線可能經過系統解析器、瀏覽器內建的加密解析、用戶端 DNS 與遠端伺服器解析。唯有確認由誰發出查詢、查詢經過哪個出站,以及結果交給誰使用,才能判斷修改是否有效。單純更換一個伺服器位址,通常無法掌控整條解析流程。
系統代理主要轉送遵循代理設定的應用程式要求,不一定會接管系統 DNS。瀏覽器可能直接將網域交給代理,也可能先自行解析;其他程式則可能直接連到固定的解析位址。因此,在用戶端填入 DNS,不代表裝置上的所有查詢都會使用它。請分別檢查瀏覽器設定、系統網路設定與用戶端的接管範圍。
遠端解析與直連解析的分工,應配合路由目標安排。直連資源通常適合使用目前網路可連線的解析器;代理資源則需確認解析要求能沿著預期路徑送達。若加密解析伺服器使用網域位址,就需要先解析該伺服器本身,這一步稱為引導解析;若引導路徑設定錯誤,就可能形成「解析器必須先解析自己」的相依問題。
核心 DNS 範例
以下是主設定中的局部 dns 物件。中國大陸網域優先交由指定伺服器解析,其他查詢則使用 DoH 位址。此範例用來說明依網域分配解析器的設定方式,不保證適用於所有網路。DoH 要求在特定核心與設定下如何選擇出站,仍須搭配路由及記錄驗證,不能只憑位址前綴推定一定會走代理。
{
"dns": {
"queryStrategy": "UseIPv4",
"servers": [
{
"address": "223.5.5.5",
"domains": ["geosite:cn"]
},
"https://1.1.1.1/dns-query"
]
}
}
domains 用來指定優先套用此伺服器的網域範圍,但查詢失敗後的處理方式也會受到回退選項與核心實作影響。這不應被視為嚴格的網路隔離策略。若要限制某類查詢絕不使用其他解析器,請進一步確認目前核心支援的回退欄位、失敗處理方式與實際網路路徑,再設計規則;不能只保留這段範例。
queryStrategy 在此限定核心 DNS 的查詢策略,不會關閉作業系統的 IPv6,也不會阻止所有應用程式自行查詢其他記錄。選用 IPv4 可用來排除雙協定堆疊問題,但不是通用的加速開關。若目前網路與伺服器都能正確處理 IPv6,應先個別測試,再決定是否保留,而不是長期掩蓋相關問題。
快取與分層驗證
更換解析設定後,舊結果可能仍留在系統、瀏覽器、應用程式與核心的快取中。先關閉目標應用程式並重新啟動用戶端,再依系統提供的方式清除快取。比較時使用相同網域,記錄解析結果與實際連線位址;不要只重新整理一次網頁,就認定新設定已生效,頁面資源可能來自本機快取,或仍沿用舊連線。
若「位址可以連線、網域無法開啟」,先檢查 DNS;若「網域解析成功、但連線失敗」,接著檢查路由與遠端連線。解析成功只代表取得了解析結果,不代表結果適合目前的網路路徑。有些服務會依解析器所在位置回傳不同的連線位址;若將直連解析結果交給遠端出站,可能造成不必要的繞路或連線失敗。
若只有瀏覽器異常,請暫時關閉瀏覽器自訂的安全 DNS,改回跟隨系統設定後再比較;若只有特定應用程式異常,請確認它是否使用獨立解析器或固定位址。測試完成後再決定最終策略。此處暫時關閉是為了縮小問題範圍,並非建議所有網路都採用相同的解析方式。
用戶端中的「遠端 DNS」、「直連 DNS」等表單欄位,可能會由設定產生器轉換成多個核心物件。優先使用同一組表單完成設定,不要又在自訂 JSON 中加入另一套相反設定。若需手動擴充,請查看最終產生的檔案,確認沒有重複物件或覆寫情形,再將有效修改記錄在獨立的變更說明中。
04/流量入口
TUN 模式
系統代理與虛擬網卡
TUN 模式會透過虛擬網路介面,將符合路由條件的 IP 流量送入處理流程,適合不遵循系統代理設定的應用程式。它解決的是流量入口涵蓋範圍,不會自動修正遠端伺服器、協定參數或 DNS 設定。若一般系統代理模式仍無法成功連線,應先修復基本連線再啟用 TUN;否則多個設定層同時故障,很難判斷原因。
v2rayN 的 TUN 功能可能由用戶端調度獨立網路元件實作,不能把介面中的 TUN 選項理解為在 Xray 主設定中加入固定欄位。實際的流量入口、路由與 DNS 接管方式,取決於用戶端使用的元件。手動設定前請確認設定檔是供哪個元件使用,不要將不同實作的網卡欄位混入同一個 JSON 物件。
Android 上的 v2rayNG 與 v2flyNG 會透過系統 VPN 介面接管流量,並需要使用者核准連線要求。系統狀態列出現 VPN 圖示,只代表介面已建立,不代表遠端連線可用。桌面版與 Android 的流量入口、權限及應用程式篩選能力各不相同,不能直接照搬某個平台的開關組合;只能沿用分流目標與驗證方法。
啟用順序與權限
啟用前先儲存目前可用的設定,關閉其他會修改預設路由的網路工具,再授予用戶端所需權限。桌面系統可能需要管理員權限、背景服務或虛擬網卡元件;請依用戶端提示操作。不要為了通過一次測試就長期關閉安全機制,應先確認缺少哪項權限,再使用用戶端支援的授權方式。
初次測試時保留最精簡的設定:一條已驗證的遠端連線、簡單路由與明確的 DNS 路徑。啟動後檢查虛擬介面是否出現、是否建立預期路由,以及一般應用程式能否存取目標。只有在系統代理模式可用、TUN 模式不可用時,才應優先排查流量入口元件、權限與路由接管,而不是重新匯入所有訂閱。
| 平台 | 檢查重點 | 常見衝突 |
|---|---|---|
| Windows | 權限、虛擬介面、路由優先順序 | 其他虛擬網卡與安全軟體策略 |
| macOS / Linux | 服務權限、介面與 DNS 狀態 | 系統網路管理工具或既有通道 |
| Android | VPN 授權、應用程式範圍與背景執行 | 其他 VPN 服務占用系統介面 |
路由迴圈與區域網路
用戶端連往遠端伺服器的連線,必須避免再次被自身的 TUN 接管,否則可能形成迴圈。自動路由通常會設定出口保護或例外,但手動新增路由仍可能破壞這種關係。若啟動後網路立即全面中斷,先關閉 TUN 確認網路是否恢復,再檢查伺服器出口與預設路由,不要繼續增加更多全域規則。
區域網路印表機、共用資料夾與管理頁面都需要分別測試。私有位址直連規則只會控制已進入核心的流量;作業系統是否將這些流量送入虛擬介面,仍由系統路由決定。若無法連線到區域網路,應同時檢查兩層:系統是否有正確的區域網路路徑,以及用戶端收到流量後是否選擇直連出站。
UDP、即時通訊與部分遊戲流量,也會受到伺服器能力、網路限制及 TUN 元件支援程度影響。網頁能開啟、但某個應用程式失敗,不足以判定整個模式失效。先確認該應用程式使用的傳輸類型,以及是否被應用程式篩選排除,再檢查出站是否支援相應功能。不要只用單一網頁取代實際應用程式測試。
MTU 會影響虛擬介面傳輸的封包大小。只有在特定網站停滯、大型要求失敗,或連線建立後卡住等情況下,才需要將 MTU 列入排查項目。先使用用戶端預設值,並記錄調整前後的狀況;不要盲目套用網路上的固定數值,因為底層網路、通道封裝與路徑條件都可能不同。
最後再決定是否同時啟用系統代理。兩種入口同時存在不一定會出錯,但會增加判斷應用程式實際流量路徑的難度。測試期間一次只保留一種入口;穩定後,再依應用程式需求組合使用。全域、繞過中國大陸與入口設定的差異,可參閱模式選擇說明逐項確認。
05/網域映射
FakeDNS
虛擬位址與原始網域
FakeDNS 會從位址池中回傳虛擬位址,並在內部保存位址與網域之間的映射。應用程式之後連線到這個虛擬位址時,配套入口會還原原始網域,再交由路由與出站處理。它不是公用解析器,也不會讓目標網站取得新位址。FakeDNS 的作用是保留網域資訊,減少本機實際解析結果對後續分流判斷的影響。
這套機制要求 DNS 查詢與連線都經過同一條受控路徑。如果只有 DNS 查詢進入 FakeDNS,後續連線卻繞過用戶端,應用程式就會嘗試直接連到一個並非真實伺服器的位址。反過來說,若連線進入了流量入口,但查詢由瀏覽器的獨立加密 DNS 完成,用戶端可能從未建立映射,網域也就無法如預期還原。
因此,不要將 FakeDNS 當成一般 DNS 位址填入系統。請先確認用戶端及流量入口元件明確支援相應模式,再依同一套實作設定 DNS 接管、位址池路由與映射還原。v2rayN 調度的 TUN 元件可能使用自己的虛擬位址機制,不能只因功能名稱相似,就同時啟用另一套核心 FakeDNS。
Xray 局部設定
以下展示 Xray 中的三個相關層級:頂層位址池、DNS 伺服器清單,以及需合併至目標入口的嗅探物件。位址池採用保留的基準測試位址範圍,並非公網目的位址。此範例沒有建立透明入口,也沒有新增系統路由;缺少這些配套條件時,複製範例不會讓整台裝置自動具備 FakeDNS 功能。
{
"fakedns": [
{
"ipPool": "198.18.0.0/15",
"poolSize": 65535
}
],
"dns": {
"servers": ["fakedns"]
}
}
{
"sniffing": {
"enabled": true,
"destOverride": ["fakedns"],
"routeOnly": false
}
}
ipPool 定義虛擬位址範圍,poolSize 控制映射池容量。池中的位址只作為識別用途,不應當成真實遠端位址交給直連出口。設定前也請確認現有區域網路、其他通道與測試網路是否使用相同範圍。位址範圍衝突可能導致部分連線被錯誤送到實體介面或其他虛擬介面。
destOverride 中的 fakedns 用於依據映射還原目標。此處明確使用 routeOnly: false,因為若只將還原結果用於路由判斷,實際連線目標仍保留虛擬位址,無法達成此範例的目的。一般 HTTP 或 TLS 嗅探與 FakeDNS 映射並非同一種機制,不應只因欄位名稱相似就互換。
相容性與故障排查
啟用後,先檢查一般網域的解析結果是否落在設定的位址池內,再確認連線是否正確還原為網域。若結果仍是真實公網位址,請檢查查詢是否進入指定 DNS 路徑;若取得虛擬位址但連線失敗,應優先檢查位址池流量是否回到配套入口,以及入口是否使用同一份映射狀態。
有些程式會在本機檢查位址類型、拒絕保留位址,或將解析結果傳給另一台裝置使用。這些情況可能不適合使用 FakeDNS。區域網路裝置探索、依賴真實位址的服務及特定網路診斷工具,應依用戶端支援的方式設定真實解析例外。例外必須同時處理解析與路由,不能只將虛擬位址範圍設為直連。
重新啟動後,系統或應用程式可能仍快取舊的虛擬位址,但新程序中的映射表已經改變,因此會出現「剛啟用時正常,重啟後部分功能失敗」的情況。請先清除相關快取並重新啟動目標應用程式,再判斷設定是否有誤。不要將舊虛擬位址寫入長期 hosts 記錄,也不要把它當成服務的固定連線位址儲存。
若一般 DNS 與網域嗅探已能滿足分流需求,就不必為了增加設定項目而啟用 FakeDNS。它適合解決明確的網域保留需求,並非所有網路的預設最佳化方式。請先用單一應用程式驗證效果與相容性,保留可快速還原的設定副本,再逐步擴大使用範圍。
06/來源與生命週期
多組訂閱管理
來源、用途與測試基準
管理多組訂閱的目標,是讓來源可追蹤、更新可還原,而不是把所有記錄混成一份長清單。請依來源建立獨立分組,再在名稱或備註中標明用途。日常使用、臨時測試與備用連線可以採用不同的更新安排,但用途名稱不代表品質保證;每個來源都必須分別驗證目前是否可用。
新增來源時,先個別匯入並手動更新一次,不要立刻設為預設連線。檢查目前用戶端能否辨識協定類型、伺服器位址與必要的傳輸欄位,再用單筆設定完成基本測試。若來源輸出的格式不適用於目前用戶端,應要求提供相容的訂閱格式,而不是反覆匯入多份副本碰運氣。
不同來源出現同名記錄,不一定代表重複。同一個顯示名稱可能對應不同位址、連接埠、傳輸方式或驗證資訊;同一個位址也可能提供多種不同服務。去重時應比較實際連線參數,並保留來源關係。只按名稱批次刪除,可能誤刪備用設定;只依位址合併,也可能把用途不同的連線混在一起。
更新策略
自動更新應以手動更新穩定為前提。先確認每個分組都有可用的更新路徑,再決定更新頻率。若來源沒有變更,頻繁要求通常沒有實際效益,還可能觸發存取限制。若用戶端支援分組層級的選項,建議分開管理,避免單一來源更新失敗就阻擋全部更新,或讓重要設定隨批次清理一起消失。
更新前記下目前預設連線的來源與實際參數特徵。遠端可能會重新命名、移除或替換項目,用戶端儲存的選取狀態也可能改變。更新完成後,請確認目前連線仍指向預期記錄,再測試最常使用的應用程式。不要只看到「更新成功」提示就結束維護,因為它通常只表示下載與解析流程已完成。
更新所依賴的網路路徑也應納入規劃。若所有訂閱都只能透過目前代理更新,一旦連線失效,就可能無法取得替代設定。可以保留一筆已驗證的獨立備用記錄,並清楚標明它不會自動更新。備用設定並非永久有效,仍需定期手動測試;過期後留在清單中,並不代表真正具備復原能力。
| 記錄內容 | 用途 | 注意事項 |
|---|---|---|
| 來源與分組名稱 | 追查更新與格式問題 | 不要記錄完整的敏感連結 |
| 更新路徑 | 註明直接連線或透過代理要求 | 先驗證,再自動化 |
| 手動修改項目 | 區分來源資料與本機調整 | 註明是否會被更新覆蓋 |
| 還原設定 | 恢復已驗證的基本連線 | 定期確認仍可使用 |
搬移與敏感資訊
搬移至新裝置時,優先使用用戶端支援的方式匯出設定,並區分伺服器資料、訂閱網址與完整設定。完整備份可能包含帳戶憑證、本機監聽位址與自訂路由,不應當成一般文件分享。搬移前記下必要設定,搬移後重新檢查權限與系統整合,不要假設複製資料就能自動複製所有系統狀態。
在桌面版與 Android 之間搬移時,尤其要留意功能差異。伺服器連線參數可能共用,但應用程式篩選、VPN 授權、TUN 元件與檔案路徑無法直接共用。請先匯入連線資料,再依新平台重新設定流量入口與分流。若直接搬移整套自訂檔案,路徑引用與元件欄位不相容,往往會導致啟動失敗。
清除舊來源前,先確認沒有預設連線、規則參照或手動複本仍依賴該來源。刪除訂閱分組前,請保留必要設定;刪除後再檢查清單與目前選取項目。若訂閱網址曾出現在公開截圖或錯誤報告中,應透過來源提供的帳戶功能更換網址;只在本機刪除分組,無法讓已洩漏的網址失效。
最後請將「訂閱更新」與「切換伺服器」分開處理。前者更新設定資料,後者選擇目前的連線,不必同時執行。自動更新後若應用程式異常,先確認預設記錄是否改變,再檢查連線參數是否有變。依此順序排查,可避免把遠端項目變更誤認為 DNS 或路由規則故障。
07/出口編排
自訂出站
標籤與協定物件
出站定義收到流量後如何建立下一段連線。路由中的 outboundTag 只是參照,必須對應實際出站物件的 tag。標籤有區分大小寫,建議使用簡短且用途明確的名稱。新增一條指向不存在標籤的規則,不會讓用戶端自動建立連線,並可能在啟動檢查或實際轉送時發生錯誤。
先區分用戶端產生的出站與手動擴充的出站。v2rayN 通常會依目前選取的伺服器產生遠端連線物件,切換伺服器後該物件可能會重建。若直接編輯暫存檔,修改可能在重新啟動時遺失。請使用用戶端明確提供的自訂設定入口,並確認其作用是合併、取代,還是完全接管主設定。
以下是獨立的局部範例:直連、封鎖,以及轉送至本機另一項 SOCKS 服務的出站。範例不包含遠端伺服器驗證資料,並假設本機服務確實在指定位址監聽,且不是目前的流量入口。複製前務必確認監聽連接埠,避免將流量再次送回同一處理流程而形成迴圈。
{
"outbounds": [
{
"tag": "direct",
"protocol": "freedom",
"settings": {}
},
{
"tag": "block",
"protocol": "blackhole",
"settings": {}
},
{
"tag": "local-socks",
"protocol": "socks",
"settings": {
"servers": [
{
"address": "127.0.0.1",
"port": 10810
}
]
}
}
]
}
freedom 表示依核心所在的網路直接建立連線,不代表繞過本機所有其他網路工具。若系統預設路由已指向另一個通道,直連出站仍可能經過該通道。判斷實際出口時,應同時查看作業系統路由與用戶端記錄,不能只憑標籤名稱是 direct,就認定流量走實體網路。
blackhole 用於丟棄符合條件的流量。封鎖出站適合明確不需要建立連線的目標,但不應拿來當作設定錯誤時的預設補救方式。若某項服務失敗,先確認是否誤命中封鎖規則,再調整比對範圍。要求遭到靜默丟棄可能會讓連線長時間等待,因此排錯時應將封鎖規則獨立列出檢查。
規則接入與預設出口
以下規則會將文件範例網域交給本機 SOCKS 出站處理,並應放在範圍較廣的兜底規則之前。範例網域僅用於展示語法,實際使用時請改成業務需要的目標。若要涵蓋更多服務,應依實際要求補上網域,而不是直接把所有連接埠交給本機服務,導致無關應用程式也改走其他出口。
{
"type": "field",
"domain": ["full:example.com"],
"outboundTag": "local-socks"
}
未命中任何規則時,核心通常會使用預設出站;常見設定中,預設出站與出站陣列的第一個項目有關。上述範例的第一項是直連,因此不能整段取代原設定後,還假設未符合規則的流量會走代理。請保留原有遠端物件並明確設定兜底策略,或重新檢查陣列順序,確保最終行為符合預期。
鏈式連線的界線
轉送至本機服務與核心內部的鏈式連線不是同一種設定方式。前者會先連到另一個監聽連接埠,再由對方繼續處理;後者則依賴特定核心支援的出站組合欄位。不同核心的欄位與作用層級可能不同,不能將某種實作的傳輸設定直接複製到另一種實作。優先選擇用戶端明確支援、且容易觀察的方式。
新增一層轉送後,需分段驗證。先確認本機 SOCKS 服務能獨立運作,再確認核心能連上該連接埠,最後測試規則是否命中。若前一段正常、完整連線仍失敗,請檢查網域解析位置、UDP 支援與額外封裝需求。不要同時修改兩端設定,否則無法判斷是哪項變更造成結果差異。
自訂出站穩定後,請記錄用途、標籤對應與還原方式。敏感連線參數應留在受保護的用戶端設定中,不要複製到一般維護文件。日常只修改必要規則,避免每次切換訂閱都重寫所有出站;將設定來源與出口編排分開,更新與還原才容易控管。
08/相容性與驗收
協定、核心與設定驗證
用戶端、核心與協定
用戶端負責介面、訂閱管理與系統整合,核心負責解析設定並處理連線。Project V 是相關技術生態的起點,V2Fly 與 Xray 屬於不同的核心家族,不能只因設定都採用 JSON,就認定欄位完全相容。v2rayN 的實際功能取決於選用的元件;v2rayNG 以 Xray 為核心,v2flyNG 則面向 V2Fly 核心。
選擇核心時,應先確認伺服器端的需求,而不是先比較名稱。VMess、VLESS 等屬於協定層概念;TCP、WebSocket 等是傳輸層選項;TLS 與 REALITY 則是不同的安全連線機制。必須一併核對協定、傳輸、安全參數與流量控制的組合。伺服器端要求什麼,用戶端就必須支援相應設定,不能單獨替換其中一項。
REALITY 與 XTLS Vision 不是任何設定都能啟用的通用加速選項。它們需要相應的伺服器端參數與核心實作配合;欄位填寫正確,也不代表組合就正確。現有設定無法連線時,先核對伺服器端提供的完整連線要求,再確認用戶端使用的核心。相關技術說明請參閱REALITY 與 XTLS Vision 說明。
設定產生與欄位相容性
調整核心前先保留目前可用的設定,並記錄用戶端選項與實際產生檔案之間的對應關係。有些介面允許選擇欄位,但儲存後可能會依目前元件轉換或忽略;有些自訂物件則會直接交由核心解析。確認是否支援時,應以產生結果、啟動記錄與實際行為為準,不能只看介面上是否有名稱相似的選項。
檢查設定時,先確認語法,再檢查結構,最後才排查網路。JSON 中多餘的逗號、未閉合的引號與重複鍵都應優先處理;結構方面則要核對欄位所在物件、標籤參照與檔案路徑。成功啟動只代表設定已被接受,不代表所有規則都符合預期。核心差異的進一步說明請參閱Xray 與 V2Fly 核心比較。
桌面介面框架的選擇也不能取代核心判斷。v2rayN 桌面版與經典 WPF 版的差異主要在介面、平台與執行相依項目;實際協定能力仍取決於所用核心與設定。若只是介面入口不同,請尋找功能相同的選項,不要為了照著教學截圖操作而更改已可用的協定。版本選擇請參閱桌面版與 WPF 版差異。
分層驗收與還原
建立固定的驗收順序:先在一般系統代理模式下驗證遠端連線,再檢查私有位址與網域例外,接著驗證 DNS 路徑,最後啟用 TUN 與 FakeDNS。每增加一層,都使用相同的應用程式與目標重新測試,並保留上一層的可用狀態。如此一旦發生問題,只需還原最後一次修改,不必從頭重建全部設定。
收集記錄時,應聚焦於同一次失敗的要求。先記下發生時間、目標與使用的入口,再查看前後相關記錄中的解析、比對與連線錯誤。分享前請遮住伺服器驗證資料、訂閱網址及不必要的存取記錄。整段貼上大量無關記錄,不只會增加敏感資訊外洩的風險,也可能掩蓋真正相關的內容。
故障分類應盡可能具體。「無法連線」可拆分為核心無法啟動、入口未收到流量、解析失敗、出站連線失敗,以及目標應用程式未回應。每種情況的檢查位置都不同。若只有某個應用程式異常,先確認其他應用程式連到同一目標時是否正常;若整個系統都有問題,再回頭檢查介面、系統代理與預設路由等共用設定。
儲存規則後看不出變化,該先檢查什麼?
先確認修改的是目前啟用的設定,再重新啟動核心並關閉應用程式的舊連線。接著查看要求是否進入用戶端、實際命中哪個出站,最後確認是否有更前面的廣泛規則覆蓋新增規則。
系統代理可用,但 TUN 無法使用,需要更換訂閱嗎?
先保留已驗證的連線,優先檢查權限、虛擬介面、出口迴圈與 DNS 接管。只有記錄顯示遠端連線本身失敗時,才重新核對伺服器設定。入口故障時,不要同時更換所有來源。
切換核心後無法啟動,該如何還原?
恢復原本的核心及對應設定,確認基準設定重新可用。接著逐項核對新核心支援的協定、傳輸方式與自訂欄位,刪除或改寫不相容的部分。不要只更改核心名稱,卻繼續沿用未經檢查的完整自訂檔案。
最後保留兩份名稱清楚的狀態:一份是設定精簡且可正常使用的基準版本,另一份是目前的進階方案。只需記錄兩者差異、啟用條件與還原步驟,不必複製敏感資訊。日後遇到網路變更、來源更新或元件調整時,先用基準版本確認基本連線,再逐步恢復進階功能,讓排錯流程始終簡單且可重複。