路由器與旁路由部署 Xray:透明代理與設定重點概覽

整理在 Linux 路由器或旁路由部署 Xray 的方式,比較主路由與旁路由架構,並說明透明代理、DNS 分流及常見注意事項。

本文重點

在路由器上執行 Xray,必須一併處理核心設定、流量導入、策略路由與 DNS。本文適合已能使用桌面用戶端連線,並準備將代理入口移至閘道器的使用者:先選擇主路由或旁路由,再用單一裝置測試 TCP、UDP、名稱解析與回程,最後逐步擴大導流範圍。文中的 IP 位址與連接埠僅供部署說明,並非適用於所有韌體的即用設定。

先釐清 Xray 核心與用戶端的分工

Xray 是負責處理入站、出站與路由規則的核心程式。v2rayN 是桌面用戶端,可管理設定並呼叫核心;把 v2rayN 上可用的節點搬到路由器,不代表整套桌面代理環境也一併移植。Linux 閘道器還需要防火牆規則、轉送設定、DNS 服務與啟動管理。

VMess、VLESS 是代理協定,不是透明導流方式。節點的協定、傳輸層、TLS 或 REALITY 參數必須與伺服器端一致;REDIRECT、TPROXY 則決定區域網路資料如何導入本機核心。出站連得上,只能證明其中一個環節正常。

主路由與旁路由:依故障影響範圍選擇

主路由通常已負責撥號、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 也已涵蓋
TPROXYTCP 與 UDP搭配透明通訊端、封包標記與策略路由

TPROXY 不是只新增一條防火牆規則就能完成。核心與防火牆後端必須支援相關功能,標記過的封包要透過策略路由送往本機,Xray 入站也必須符合透明代理設定。使用 nftables 的系統,不要直接混用來源不明的 iptables 指令碼;即使有相容指令,也要檢查實際產生的規則。

不要為了除錯而直接關閉整個防火牆。透明代理監聽連接埠只應允許必要來源存取,不應暴露於廣域網路。若記錄檔出現權限錯誤,應檢查透明通訊端所需的能力與服務執行身分,而不是長期將所有服務改為高權限執行。

DNS 分流:讓解析路徑與出口一致

網頁無法開啟,不一定代表節點失效。終端可能仍在使用主路由發放的 DNS,也可能透過應用程式內建的加密 DNS 繞過預期入口。即使 DNS 查詢已到達旁路由,若解析伺服器的出站路徑與實際連線路徑不一致,仍可能取得不適合目前出口的位址。

53
傳統 DNS 使用的 TCP/UDP 連接埠
12345
本文透明入站範例使用的連接埠
兩條路徑
分別測試 IPv4 與 IPv6

這裡的 12345 是自行選用的範例,並非 Xray 的固定連接埠。防火牆轉送目標必須與入站監聽連接埠一致。傳統 DNS 可能同時使用 UDP 與 TCP,不能只允許 UDP 53;加密 DNS 也不能只靠 53 連接埠規則推斷流量去向。

  1. 確認用戶端取得的設定:查看終端實際取得的 DNS 位址,確認它指向預定的解析入口,而不只是修改路由器介面上的上游位址。
  2. 分開測試:分別測試內網網域、直連網域與透過代理存取的網域,記錄回應位址與最終出口。
  3. 檢查啟動解析:若節點位址是網域名稱,請確保在建立代理連線前就能解析,避免「解析必須經過代理、代理又在等待解析」的依賴迴圈。
  4. 處理快取:修改規則後,清除終端與閘道器的相關快取,再重新啟動測試應用程式,避免舊解析結果與舊連線影響判斷。

網域分流也會受到目標資訊來源影響。透明入站常見的原始目標是 IP 位址;流量嗅探只能從可辨識的協定流量中補充網域資訊,無法保證還原所有連線。若需要網域規則,應一併檢查 DNS 設計、嗅探設定與規則順序,不能把啟用嗅探當成完整方案。

分階段部署:從出站測試到單一裝置導流

以下依通用 Linux 閘道器整理操作順序。設定檔路徑與服務名稱取決於安裝方式,指令中的 /etc/xray/config.json 與 xray.service 是明確範例。使用前請確認本機實際路徑;精簡型韌體可能採用不同的服務管理工具。

  1. 記錄網路設定

    記下主路由位址、DHCP 範圍、DNS、介面名稱與防火牆規則。確認能透過有線連線或本機主控台還原設定,不要只依賴正在修改的遠端連線。

  2. 測試出站

    確認處理器架構與 Xray 版本,先測試節點設定。使用僅監聽環回位址的手動代理入口測試出站,暫時不要新增全網導流規則。

  3. 檢查入口

    確認透明入站連接埠並檢查是否已被占用。若採用 TPROXY,請一併確認入站透明設定、系統支援、策略路由與標記,不要只確認程序正在執行。

  4. 導流單一裝置

    只比對測試終端 192.168.10.100 的流量。先測試 TCP,再確認出站確實支援 UDP 轉送;不能以網頁可正常瀏覽代替 UDP 測試。

  5. 整合測試解析

    將測試終端的 DNS 指向已設定的解析入口,分別測試直連、代理、內網存取與 IPv6 路徑,同時查看核心與防火牆記錄檔。

  6. 確認復原能力

    重新啟動閘道器,確認服務啟動順序與規則能持續生效。模擬核心停止,確認預定的故障策略,再決定是否透過 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 使用率;只看一次測速的峰值,無法分辨無線干擾與閘道器的處理能力。

常見問題:旁路由導流後的排查方式

閘道器改用旁路由後,為什麼連管理頁面都打不開?

先將測試終端的閘道恢復為原本的主路由,確認管理入口可以連線。接著檢查旁路由位址衝突、子網路遮罩、轉送設定與區域網路位址排除規則。管理流量不應送往代理出口;排查期間請保留本機連線方式。

節點在 v2rayN 可用,複製到路由器卻連不上?

比較兩端的 Xray 版本與完整出站欄位,特別檢查伺服器連接埠、傳輸路徑、SNI 與 REALITY 參數;接著確認路由器時間與節點網域解析正常。先透過手動代理入口測試出站,成功後再設定透明導流。

只修改 DNS、不改預設閘道,就能代理所有流量嗎?

不行。DNS 只決定解析路徑,不會自動改變一般 IP 封包的下一個路由節點。除非已有其他明確的流量導引機制,終端仍會依預設路由傳送資料。先查看終端的路由表,再決定如何讓目標流量經過旁路由。

重新啟動後失效,手動啟動又正常,該檢查哪些地方?

檢查網路就緒狀態、時間同步、DNS 與核心服務的啟動順序,並確認防火牆重新載入時不會清除自訂鏈或策略路由。分別保存服務記錄檔與規則快照,避免反覆啟動掩蓋相依性問題。

部署完成後,請保留一份可供復原的設定記錄:終端閘道與 DNS、旁路由位址、透明連接埠、規則位置、服務名稱與故障策略。日後更新核心或修改訂閱時,仍依「出站 → 導流 → DNS → 雙協定堆疊 → 重新啟動」的順序重新測試。若要補充核心與解析基礎,可參閱核心說明與DNS 設定說明。

下載v2rayN