在路由器上部署 Xray,除了執行核心,還得處理流量接管、DNS 與故障回復。本文適合已能在用戶端連線節點,並打算讓多台區域網路裝置共用出口的使用者:先比較主路由、旁路由與桌面端部署,再說明硬體規劃、單一裝置驗證步驟和故障排除順序。啟動核心不代表全網代理已完成。
一、先分清 Xray 核心與路由流量接管
Xray 是處理代理協定、入站、出站與路由規則的核心,不是路由器韌體,也不會自動設定整個區域網路。將執行檔放進路由器並啟動,只完成了其中一個環節。終端裝置的流量是否進入核心,還取決於閘道、系統轉送、防火牆規則及入站設定。
v2rayN 是桌面用戶端,v2rayNG 是採用 Xray 核心的 Android 用戶端,v2flyNG 則使用 V2Fly 核心。用戶端介面中的訂閱管理、節點清單和連線按鈕,不會因為複製一個 Xray 執行檔就出現在路由器上。訂閱內容通常也不能直接當作 Xray 的 JSON 設定檔讀取。
- 應用程式明確設定代理:在應用程式中填入代理位址與連接埠。適用範圍明確,適合先驗證節點,不必接管整個區域網路。
- 透明代理:透過閘道規則將符合條件的流量送進核心。終端裝置通常不必逐一設定代理,但路由器端必須補齊轉送、回程及排除規則。
- DNS 分流:決定將哪些解析請求交給哪個解析器,以及這些請求經由哪個出口傳送;這與應用程式流量分流有關,但並非同一項設定。
二、部署位置:桌面端、旁路由或主路由
選擇部署位置前,先確認要涵蓋幾台裝置,以及代理中斷時是否允許繼續直連。旁路由不是特定軟體,而是網路中的一種角色:由另一台裝置負責部分終端的閘道或策略轉送工作。它可以是獨立迷你主機,也可以是虛擬機器;若使用虛擬機器,還須檢查虛擬網卡、橋接設定及主機資源配置。
先用桌面端驗證
建議先用 v2rayN 在相同網路環境驗證同一個節點。確認能存取目標服務後,再移轉到閘道;發生問題時,也能分辨是節點問題還是路由接管問題。
適合:首次部署、單台電腦使用、需要快速復原
獨立旁路由
保留主路由的撥號與一般 DHCP,只讓指定裝置經過旁路由。這種方式方便分批測試,但必須規劃預設閘道、DNS 與回程路徑,不能只接上網路線就當作設定生效。
適合:多台裝置共用規則、希望減少主路由設定變更
主路由直接執行
在同一台裝置上處理撥號、轉送、解析與代理,網路路徑較集中。但升級、記憶體不足或防火牆規則錯誤,都可能同時影響所有終端的網路連線。
適合:硬體資源充足,且已有維護時段與復原方式
單網路埠旁路由的進出流量可能共用同一個介面,交換路徑與回程必須另外驗證。雙網路埠也不代表效能一定更好:網卡驅動程式若不穩定,或 CPU 單核心效能不足,遇到大量連線或複雜規則時仍可能成為瓶頸。不要把網路埠標示的速率當成代理吞吐量保證。
三、硬體需求:預留足夠資源
沒有適用於所有節點與規則集的最低硬體規格。CPU 架構決定二進位檔能否執行,記憶體會影響規則與連線規模,可寫入儲存空間則關係到安裝、更新與記錄檔。下表是部署規劃建議,不是 Xray 官方最低需求,也不保證能跑滿寬頻速度。
| 檢查項目 | 規劃參考 | 驗證方式 |
|---|---|---|
| CPU 與架構 | 優先選擇有相符版本可用的 ARM64 或 x86-64 裝置 | 執行 uname -m,並確認系統 ABI 與套件架構 |
| 整機記憶體 | 輕量測試可從 512 MiB 開始規劃;規則較複雜或另有附加服務時,建議考慮 1 GiB 以上 | 查看 free -m 的 available 欄位及尖峰時段記錄檔 |
| 可寫入空間 | 建議至少預留 256 MiB,並另計更新暫存檔與資料檔所需空間 | 使用 df -h 檢查實際安裝分割區,不要只看快閃記憶體標示容量 |
| 網路介面 | 依寬頻速率與單網路埠或雙網路埠拓撲選擇 | 分別測試一般轉送與代理轉送,比較 CPU 使用率及封包遺失情況 |
| 散熱與電源 | 以持續負載下穩定運作作為驗收標準 | 查看溫度、降頻、重新啟動及網路埠斷線記錄 |
在快閃儲存空間較小的裝置上,記錄檔塞滿分割區可能比核心本身更早引發故障。平時只保留必要的錯誤記錄,排查問題時再短暫提高記錄層級,並設定記錄輪替或改用記憶體記錄。若使用外接儲存裝置,也要確認開機掛載順序,避免服務啟動時設定目錄尚未就緒。
結論:先測試具代表性的負載
選一個實際使用的節點,連續執行 30 分鐘,期間同時瀏覽網頁、播放影片並查詢 DNS;記錄可用記憶體、CPU 使用率與溫度。資源餘裕不足時,先精簡規則及附加服務,再決定是否更換硬體。
四、旁路由試運作:一次只接入一台終端
以下以常見的 OpenWrt LuCI 介面作為操作路徑參考;不同翻譯與版本可能略有差異。範例中的主路由為 192.168.10.1,旁路由為 192.168.10.2,測試終端為 192.168.10.100,子網路前綴長度皆為 /24。這只是位址規劃範例,使用前請檢查現有網段及位址是否已被占用。
-
備份原有設定
在 LuCI「系統」→「備份/更新」中儲存設定備份,並記下原本的閘道與 DNS。保留一台仍以主路由為閘道的管理裝置,確認可透過有線連線開啟管理頁面。
-
設定固定管理位址
前往「網路」→「介面」→「LAN」→「編輯」→「一般設定」,將旁路由位址設為 192.168.10.2;採用指定的單網路埠方案時,將旁路由上游閘道設為 192.168.10.1,並確認該位址不在動態分配範圍內。
-
確認位址分配設定
若由主路由統一分配位址,請在旁路由的「網路」→「介面」→「LAN」→「編輯」→「DHCP 伺服器」→「一般設定」中勾選「忽略此介面」。另外確認 IPv6 的 RA 與 DHCPv6 設定,避免出現未經規劃的第二個閘道公告。
-
驗證核心設定
準備符合架構的 Xray 執行檔與實際設定,先測試設定檔,再啟動程序。先用明確設定的代理確認出站連線可用,再依選定的接管方案設定轉送、入站及排除規則;此時不要更動全網 DHCP 設定。
-
切換測試終端
只在測試終端將 IPv4 閘道改為 192.168.10.2。若旁路由已提供可用的 DNS 服務,再將 DNS 改為該位址。分別測試本機管理頁、直連服務與代理服務,確認正常後再分批套用到其他裝置。
以上位址設定只建立基本網路拓撲,並非完整的透明代理規則。同網段的單網路埠方案可能造成非對稱回程;是否需要來源位址轉換,取決於轉送與流量接管方式。應配合封包擷取、連線追蹤及核心需求進行驗證,不要將來源不明的整段防火牆指令貼到正式閘道。
# 以下指令用於檢查;請依實際安裝位置調整
uname -m
free -m
df -h
ip route
xray version
xray run -test -config /etc/xray/config.json
# 在 OpenWrt 上查看近期系統記錄
logread | tail -n 80
# 在使用 nftables 的系統上查看現有規則
nft list ruleset
五、透明代理與 DNS:釐清兩條流量路徑
透明接管通常包含兩種路徑:應用程式連線進入哪個入站,以及 DNS 查詢交給哪個解析器。Linux 上的 REDIRECT 與 TPROXY 並不相同。REDIRECT 常用於 TCP 重新導向;若以 TPROXY 接管 TCP、UDP,還需要核心支援、流量標記與策略路由互相配合。只新增一條重新導向規則,不能據此認定 UDP 已可正常使用。
分流規則也必須明確指定比對順序與預設去向。依網域名稱比對時,須考慮核心是否能取得網域名稱:用戶端可能已將目標解析為 IP 位址,應用程式也可能使用自己的加密 DNS。嗅探只能在適用的流量中補充資訊,無法保證還原所有連線的原始網域名稱。
其中 10808 與 12345 只是本文的規劃範例,不是所有用戶端或路由器設定的固定預設值。連接埠不同不代表故障,只要防火牆的目標連接埠與實際入站設定一致即可。DNS 的 53 連接埠則須同時考慮 UDP 與 TCP,不能只處理其中一種傳輸方式。
- 先排除基礎網路流量:保留 DHCP、必要的多點傳送與廣播、區域網路管理位址及核心本身的連線,避免誤將這些流量送進代理。
- 避免代理迴圈:連往節點伺服器的外層連線必須經由一般出口,不可再次被透明規則送回原入站。若節點位址使用網域名稱,也要考慮位址變動與啟動時的 DNS 解析。
- 分開處理解析工作:區域網路主機名稱通常由本機解析器處理;公共網域則依策略選擇上游解析器。解析器本身的連線出口也必須符合規劃。
- 另外檢查 IPv6:若只設定 IPv4 流量接管,終端仍可能透過 IPv6 直接連線。應完整部署雙協定堆疊策略,或在測試範圍內明確停用相關 IPv6 公告與連線路徑。
- 限制監聽範圍:供區域網路使用的 DNS 與代理入站不應直接對 WAN 開放;請透過監聽位址與防火牆限制來源。
六、常見故障:依閘道、DNS、出站順序檢查
排除故障時,每次只變更一項條件。先確認終端取得預期的閘道,再確認解析結果,最後檢查連線是否進入正確的出站。只用瀏覽器重新整理頁面,會受到快取、連線重用及應用程式自行解析等因素干擾,不容易判斷故障發生在哪個環節。
改了閘道,為什麼仍走原本的出口?
先查看終端實際的路由表與 IPv6 預設路由,排除舊租約或 RA 仍指向主路由的情況。接著確認旁路由是否真的命中接管規則;將預設閘道改為旁路由,只能證明流量經過該裝置,無法證明流量已進入 Xray。
IP 位址連得上,網域名稱卻無法開啟?
在支援 nslookup 的測試終端執行 nslookup example.com 192.168.10.2,確認查詢是否逾時。若旁路由沒有提供 DNS 監聽服務,就不要將終端 DNS 指向它;接著檢查解析服務的監聽位址、53 連接埠規則與上游出口。
網頁可以開,遊戲或語音為什麼連不上?
確認 UDP 是否進入預期的入站、出站是否支援相應轉送,以及策略路由是否完整。TCP 網頁能用不代表 UDP 也正常;須透過實際應用程式與記錄檔驗證,不能只憑一次 TCP 延遲測試就判定整條連線正常。
重新啟動後全網斷線,該先改哪裡?
先將測試終端的閘道與 DNS 還原,再使用保留的管理裝置登入。檢查核心、解析服務與防火牆規則的啟動順序,接著確認時間同步與儲存裝置掛載情況。確認服務恢復後再重新啟用流量接管,避免一再重新啟動而掩蓋問題原因。
也應事先決定故障時的處理方式:核心停止後,是允許指定流量直接連線,還是阻擋這些流量。兩種策略都需要明確設定並實際測試。可在維護時段停止一次核心,觀察終端狀況,再確認是否符合預期;不要把「程序會自動重新啟動」當成完整的故障復原方案。
七、驗收與取捨:有多裝置需求再移轉
路由器部署的主要優點是集中管理規則,並涵蓋不方便逐一設定代理的裝置;缺點是網路故障的影響範圍更大。若只有一台電腦使用,v2rayN 的節點切換、記錄檢視與設定復原通常更簡單。Android 裝置可先用 v2rayNG 驗證 Xray 節點;若選擇 v2flyNG,則須另外確認節點與 V2Fly 的協定相容性。
- 功能驗收:分別測試直連目標、代理目標、區域網路服務、DNS 與 UDP,不要只用一個網頁代替所有檢查。
- 效能驗收:使用相同節點,在相近時段比較桌面端與路由器的吞吐量,同時記錄 CPU、記憶體與溫度,以區分節點壅塞和本機瓶頸。
- 重新啟動驗收:重新啟動旁路由後重新取得租約,確認位址、規則、解析與出站連線都已恢復,而不只是管理頁能開啟。
- 復原驗收:記下撤除閘道、DNS 與流量接管規則的具體步驟;確認備份可以還原,並保留不經測試路徑的管理入口。
完成單一裝置驗證後,再依裝置或位址分組逐步推廣。不要同時更換韌體、升級核心、切換節點並重寫 DNS 策略;將變更拆開,才能透過記錄與對照測試判斷每一步是否有效。