在路由器上執行 Xray,必須一併處理核心設定、流量導入、策略路由與 DNS。本文適合已能使用桌面用戶端連線,並準備將代理入口移至閘道器的使用者:先選擇主路由或旁路由,再用單一裝置測試 TCP、UDP、名稱解析與回程,最後逐步擴大導流範圍。文中的 IP 位址與連接埠僅供部署說明,並非適用於所有韌體的即用設定。
先釐清 Xray 核心與用戶端的分工
Xray 是負責處理入站、出站與路由規則的核心程式。v2rayN 是桌面用戶端,可管理設定並呼叫核心;把 v2rayN 上可用的節點搬到路由器,不代表整套桌面代理環境也一併移植。Linux 閘道器還需要防火牆規則、轉送設定、DNS 服務與啟動管理。
VMess、VLESS 是代理協定,不是透明導流方式。節點的協定、傳輸層、TLS 或 REALITY 參數必須與伺服器端一致;REDIRECT、TPROXY 則決定區域網路資料如何導入本機核心。出站連得上,只能證明其中一個環節正常。
- 核心設定:定義監聽入口、節點出站、直連出口,以及網域或 IP 比對規則。
- 系統網路:負責將指定裝置的流量送至入口,並確保回應能回到原裝置。
- DNS 流程:決定由誰解析網域、查詢走哪條路徑,以及解析結果是否能配合路由規則。
- 服務管理:負責啟動、重新啟動、記錄檔、權限與故障復原,這些都不會由節點分享連結提供。
主路由與旁路由:依故障影響範圍選擇
主路由通常已負責撥號、DHCP、NAT 與預設閘道,導流位置明確,但規則設定錯誤可能影響整個網路。旁路由則能將測試環境與主路由分開,適合先限定單一終端;但必須釐清預設閘道、DNS 與回程路徑,不能只接上一條網路線就認為流量會自動經過。
旁路由單一裝置試行
建議保留主路由的現有設定,先將一台測試裝置的 IPv4 閘道與 DNS 指向旁路由。若遇到問題,只要恢復該裝置的自動取得設定,影響範圍較小。
適用情境:首次部署、測試透明代理、需要保留現有網路
由主路由集中導流
在實際轉送路徑上統一處理用戶端流量,網路拓樸較清楚。部署前務必備份 DHCP、防火牆與 DNS 設定,並準備本機管理途徑。
適用情境:熟悉 Linux 網路、需要統一管理多台終端
結論:先導流單一裝置,不要一開始就修改全網 DHCP
先手動指定測試終端的閘道與 DNS,完成重新開機及復原測試後,再調整 DHCP 發放範圍;不要把首次除錯和全網遷移安排在同一次變更中。
以同網段旁路由為例:主路由為 192.168.10.1,旁路由為 192.168.10.2,測試終端為 192.168.10.100。旁路由的預設路由指向主路由,測試終端的預設閘道則指向旁路由。先確認這些位址未被占用,並在 DHCP 位址池中排除固定位址。
透明代理流程:分清 REDIRECT 與 TPROXY
透明代理的目的是讓未主動設定 HTTP 或 SOCKS 代理的終端,也能依閘道器規則轉送流量。常見流程為「終端 → 閘道器防火牆 → Xray 入站 → 路由選擇 → 出站」。如果資料根本沒有經過閘道器,修改 Xray 路由規則也不會生效。
| 方式 | 常見適用範圍 | 部署重點 |
|---|---|---|
| 手動設定代理 | 主動設定代理的應用程式 | 先確認節點出站可用,不代表所有裝置都已導流 |
| REDIRECT | 常用於 TCP 透明導流 | 設定原始目的位址識別;不能因此認定 UDP 也已涵蓋 |
| TPROXY | TCP 與 UDP | 搭配透明通訊端、封包標記與策略路由 |
TPROXY 不是只新增一條防火牆規則就能完成。核心與防火牆後端必須支援相關功能,標記過的封包要透過策略路由送往本機,Xray 入站也必須符合透明代理設定。使用 nftables 的系統,不要直接混用來源不明的 iptables 指令碼;即使有相容指令,也要檢查實際產生的規則。
- 先排除保留目的位址:依實際網路排除環回、區域網路、廣播與多點傳播等不應代理的目的位址,並保留路由器管理與 DHCP 通訊。
- 排除節點連線:代理伺服器本身的連線不能再次被同一入口導流,否則會形成迴圈。
- 分清轉送流量與本機流量:轉送流量與閘道器本機發出的流量會經過不同掛接點;首次部署只導流區域網路的轉送流量。
- 避免標記衝突:策略路由標記可能與多重撥接、流量整形等功能共用,使用前請檢查現有規則與遮罩。
不要為了除錯而直接關閉整個防火牆。透明代理監聽連接埠只應允許必要來源存取,不應暴露於廣域網路。若記錄檔出現權限錯誤,應檢查透明通訊端所需的能力與服務執行身分,而不是長期將所有服務改為高權限執行。
DNS 分流:讓解析路徑與出口一致
網頁無法開啟,不一定代表節點失效。終端可能仍在使用主路由發放的 DNS,也可能透過應用程式內建的加密 DNS 繞過預期入口。即使 DNS 查詢已到達旁路由,若解析伺服器的出站路徑與實際連線路徑不一致,仍可能取得不適合目前出口的位址。
這裡的 12345 是自行選用的範例,並非 Xray 的固定連接埠。防火牆轉送目標必須與入站監聽連接埠一致。傳統 DNS 可能同時使用 UDP 與 TCP,不能只允許 UDP 53;加密 DNS 也不能只靠 53 連接埠規則推斷流量去向。
- 確認用戶端取得的設定:查看終端實際取得的 DNS 位址,確認它指向預定的解析入口,而不只是修改路由器介面上的上游位址。
- 分開測試:分別測試內網網域、直連網域與透過代理存取的網域,記錄回應位址與最終出口。
- 檢查啟動解析:若節點位址是網域名稱,請確保在建立代理連線前就能解析,避免「解析必須經過代理、代理又在等待解析」的依賴迴圈。
- 處理快取:修改規則後,清除終端與閘道器的相關快取,再重新啟動測試應用程式,避免舊解析結果與舊連線影響判斷。
網域分流也會受到目標資訊來源影響。透明入站常見的原始目標是 IP 位址;流量嗅探只能從可辨識的協定流量中補充網域資訊,無法保證還原所有連線。若需要網域規則,應一併檢查 DNS 設計、嗅探設定與規則順序,不能把啟用嗅探當成完整方案。
分階段部署:從出站測試到單一裝置導流
以下依通用 Linux 閘道器整理操作順序。設定檔路徑與服務名稱取決於安裝方式,指令中的 /etc/xray/config.json 與 xray.service 是明確範例。使用前請確認本機實際路徑;精簡型韌體可能採用不同的服務管理工具。
-
記錄網路設定
記下主路由位址、DHCP 範圍、DNS、介面名稱與防火牆規則。確認能透過有線連線或本機主控台還原設定,不要只依賴正在修改的遠端連線。
-
測試出站
確認處理器架構與 Xray 版本,先測試節點設定。使用僅監聽環回位址的手動代理入口測試出站,暫時不要新增全網導流規則。
-
檢查入口
確認透明入站連接埠並檢查是否已被占用。若採用 TPROXY,請一併確認入站透明設定、系統支援、策略路由與標記,不要只確認程序正在執行。
-
導流單一裝置
只比對測試終端
192.168.10.100的流量。先測試 TCP,再確認出站確實支援 UDP 轉送;不能以網頁可正常瀏覽代替 UDP 測試。 -
整合測試解析
將測試終端的 DNS 指向已設定的解析入口,分別測試直連、代理、內網存取與 IPv6 路徑,同時查看核心與防火牆記錄檔。
-
確認復原能力
重新啟動閘道器,確認服務啟動順序與規則能持續生效。模擬核心停止,確認預定的故障策略,再決定是否透過 DHCP 擴大導流範圍。
先執行唯讀檢查,再修改轉送規則
# 檢查程式版本與設定;設定測試通過不代表遠端連線正常
xray version
xray run -test -config /etc/xray/config.json
# 查看 IPv4、IPv6 路由與 IPv4 策略路由
ip -4 route show
ip -6 route show
ip -4 rule show
# 查看監聽連接埠與 nftables 目前規則
ss -lntup
nft list ruleset
# 僅適用於使用 systemd 且服務名稱為 xray 的安裝方式
systemctl status xray --no-pager
journalctl -u xray -n 80 --no-pager
讀取部分規則與程序資訊可能需要管理員權限。檢查規則時,應確認比對計數是否隨測試流量增加:若計數沒有增加,先檢查介面、來源位址與規則鏈的掛接位置;若計數增加但核心沒有相應記錄,再檢查連接埠、策略路由與入口設定。不要一次修改多個層面,否則難以判斷哪項變更生效。
路由與效能:依據實際狀況排除瓶頸
路由規則通常依序比對,實際結果也會受協定、網域策略與 IP 解析行為影響。應先設定明確的區域網路規則與必要例外,再安排服務分流和預設出口。若同時依來源位址、網域與目的 IP 管理,請記錄每條規則的用途,避免反覆調整順序碰運氣。
| 狀況 | 優先檢查項目 | 後續處理 |
|---|---|---|
| 手動代理可用,透明代理失敗 | 導流規則、策略路由、原始目的位址 | 觀察單一裝置的規則計數與入站記錄 |
| 網頁可用,即時應用程式異常 | UDP 導流、出站能力、MTU | 單獨測試 UDP,檢查重傳與分片問題 |
| 部分網域一直無法載入 | DNS 入口、上游路徑、IPv6 | 分別查詢 A 與 AAAA 記錄,並測試對應路徑 |
| 負載增加後速度變慢 | CPU、記憶體、連線追蹤表 | 在同一時段比較相同目標的直連與代理結果 |
不要把路由器標示的無線網路速率當成代理傳輸量。加密、連線數量、單核心效能與散熱都會影響結果。測試時優先使用有線終端,固定節點與測試目標,並記錄 CPU 使用率;只看一次測速的峰值,無法分辨無線干擾與閘道器的處理能力。
- IPv6:只導流 IPv4 不代表所有應用程式都經過代理。請檢查路由公告、IPv6 預設路由、防火牆與 DNS 的 AAAA 回應,並明確決定要獨立導流或維持直連。
- 流量卸載:硬體或軟體流量卸載可能繞過預期規則。先在可控範圍內停用相關加速進行比較,確認相容後再重新啟用。
- 反向路徑檢查:複雜的策略路由可能與嚴格檢查機制衝突。先查看介面設定與封包遺失的證據,再進行針對性調整,不要照抄全域停用指令。
- 故障策略:核心停止後,是停止代理流量還是改走直連,必須事先明確規劃。改走直連會變更出口路徑,不應成為未明說的預設行為。
常見問題:旁路由導流後的排查方式
閘道器改用旁路由後,為什麼連管理頁面都打不開?
先將測試終端的閘道恢復為原本的主路由,確認管理入口可以連線。接著檢查旁路由位址衝突、子網路遮罩、轉送設定與區域網路位址排除規則。管理流量不應送往代理出口;排查期間請保留本機連線方式。
節點在 v2rayN 可用,複製到路由器卻連不上?
比較兩端的 Xray 版本與完整出站欄位,特別檢查伺服器連接埠、傳輸路徑、SNI 與 REALITY 參數;接著確認路由器時間與節點網域解析正常。先透過手動代理入口測試出站,成功後再設定透明導流。
只修改 DNS、不改預設閘道,就能代理所有流量嗎?
不行。DNS 只決定解析路徑,不會自動改變一般 IP 封包的下一個路由節點。除非已有其他明確的流量導引機制,終端仍會依預設路由傳送資料。先查看終端的路由表,再決定如何讓目標流量經過旁路由。
重新啟動後失效,手動啟動又正常,該檢查哪些地方?
檢查網路就緒狀態、時間同步、DNS 與核心服務的啟動順序,並確認防火牆重新載入時不會清除自訂鏈或策略路由。分別保存服務記錄檔與規則快照,避免反覆啟動掩蓋相依性問題。
部署完成後,請保留一份可供復原的設定記錄:終端閘道與 DNS、旁路由位址、透明連接埠、規則位置、服務名稱與故障策略。日後更新核心或修改訂閱時,仍依「出站 → 導流 → DNS → 雙協定堆疊 → 重新啟動」的順序重新測試。若要補充核心與解析基礎,可參閱核心說明與DNS 設定說明。