路由器部署的難處不在啟動核心,而在於讓流量經過正確的閘道、解析器與防火牆規則。本文適合已有可用節點、準備接管部分區域網路裝置的使用者,將比較主路由器與旁路由,並說明位址規劃、透明代理與 DNS 的驗收順序。先用一台裝置完成端到端測試,再決定是否擴大接管範圍。
一、架構選擇:在主路由器或旁路由部署
Xray 與 V2Ray 是代理核心,不是完整的路由器系統。核心啟動後,仍須由作業系統負責轉送、防火牆接管與服務管理。韌體中的管理介面可以產生設定,但介面選項、規則檔案與實際執行的核心版本必須彼此相容;不能只看頁面是否顯示「已啟動」。
旁路由:先接管單一測試裝置
建議保留現有主路由器的撥接、無線網路與 DHCP,另以 Linux 裝置處理代理與 DNS,透過手動設定測試裝置的閘道逐步驗證。優點是容易界定回復範圍;缺點是必須處理同網段轉送、回程路徑與 IPv6 繞過問題。
適用情境:已有穩定主路由器,並希望分批接入裝置的家庭或小型區域網路。
主路由器:統一接管網路出口
在負責網際網路出口的路由器上執行核心,由同一處管理閘道與防火牆,流量路徑較直接。代理服務、規則更新或資源不足也較容易影響整個網路,因此應準備本機管理入口與可還原的設定備份。
適用情境:熟悉路由系統、需要統一管理策略且裝置資源充足的環境。
判斷原則:先確認回復方式,再修改全網閘道
首次部署只修改一台測試裝置。先確認將閘道與 DNS 改回主路由器後即可恢復原本的網路連線,再繼續設定透明代理;不要一開始就透過 DHCP 將旁路由位址發給整個位址池。
依節點需求選擇核心。Xray 與 V2Fly 維護的 V2Ray 在協定、傳輸方式與設定欄位上有所差異,尤其不能將包含 REALITY 等特定功能的設定直接交給不支援該功能的核心。v2rayN 是桌面用戶端,v2rayNG 與 v2flyNG 是 Android 用戶端;它們可用來驗證節點,但不是路由器上的流量轉送服務。
二、位址規劃:分別確認閘道、DNS 與回程路徑
以下靜態位址僅供說明,並非適用所有網路的預設值。部署前先確認實際網段、DHCP 位址池與現有裝置,避免位址衝突。旁路由應使用固定位址,並將其排除在動態分配範圍之外,或在主路由器為其設定靜態租約。
兩種架構的閘道分工
核心執行於主路由器
- 終端裝置的預設閘道維持為 192.168.10.1。
- 終端裝置的 DNS 指向主路由器提供的解析服務。
- 在主路由器檢查轉送鏈與本機輸出鏈,並區分這兩類流量。
核心執行於旁路由
- 將測試裝置的閘道設為 192.168.10.2。
- 將測試裝置的 DNS 設為 192.168.10.2。
- 旁路由本身的預設路由指向 192.168.10.1,並啟用必要的 IP 轉送功能。
閘道決定封包的下一個節點;DNS 決定由哪個解析器查詢網域名稱。只修改其中一項,不代表已完成接管。
單網路埠、同網段的旁路由可能出現這種情況:直連流量經旁路由轉送至主路由器,再由主路由器直接回傳終端裝置,形成非對稱路徑。應依防火牆狀態追蹤結果,決定採用受控的來源位址轉換,或調整網路拓樸以維持路徑對稱;也要檢查 ICMP 重新導向是否讓終端裝置繞過旁路由。不要把「啟用 NAT」當成所有問題的通用解法。
三、透明代理:核心正在監聽,不代表流量已接管
使用明確代理時,應用程式必須主動連線至 HTTP 或 SOCKS 代理連接埠。透明代理則由閘道攔截符合條件的流量,交由核心處理,並保留目標位址供路由判斷。只設定 SOCKS 入站,即使裝置的閘道已指向旁路由,一般應用程式流量也不會自動進入該入站。
| 接管方式 | 必要條件 | 檢查重點 |
|---|---|---|
| TCP 重新導向 | 核心的透明代理入站須搭配防火牆重新導向規則 | 常用於 TCP;不可因此認定 UDP 也已接管 |
| TPROXY | 系統支援、透明監聽、流量標記與策略路由須相互配合 | 分別測試 TCP 與 UDP,並確認標記沒有衝突 |
| 明確代理測試 | 在應用程式中指定核心已設定的 HTTP 或 SOCKS 監聽埠 | 可用來隔離節點與出口問題,但無法證明透明轉送正常 |
- 先確認出口:在用戶端使用同一節點確認基本連線正常,再檢查路由器上的系統時間、憑證驗證、伺服器網域名稱解析與連線記錄。桌面裝置可正常使用,不代表路由器的網路環境完全相同。
- 再確認入站:核對監聽位址、協定與連接埠,確認防火牆將流量送至正確的透明代理入站,而非誤送至明確代理連接埠。
- 最後新增攔截規則:先限定測試裝置的來源位址,再逐步擴大目標範圍。TPROXY 需要搭配相應的策略路由;只有防火牆規則而沒有路由設定,仍可能造成連線中斷。
- 避免代理迴圈:核心建立的出站連線不能再次遭到接管。通常可透過專用標記、程序身分或排除目的位址達成,實際方式須符合部署架構。
區域網路管理位址、廣播、多點傳送及其他應直接連線的網段,須分別在防火牆接管層與核心路由層設定。排除節點伺服器 IP 的規則,也應考慮網域解析結果可能變動。在使用 nftables 的防火牆環境中,不要直接疊加執行舊版 iptables 指令碼;重複接管或規則順序錯誤,會讓問題更難重現。
四、DNS 接管:完整串起連接埠、分流與啟動解析
DNS 接管涵蓋終端查詢、路由器本機轉送與上游解析三個環節。終端裝置將 DNS 指向旁路由,只能限制遵循該設定的查詢。應用程式內建的加密 DNS 不會因為攔截一般 53 連接埠就自動改用你的解析器,應另行檢查瀏覽器與應用程式設定。
- 監聽連接埠:一般 DNS 服務使用 UDP/TCP 53。若系統解析服務已監聽 53,可讓另一個解析元件改用本機 5353 連接埠,再由前者轉送查詢;這些連接埠僅為規劃範例,請以實際監聽設定為準。
- 網域分流:為需要直連或經代理連線的網域安排適當的上游,並確認送往上游的流量經過預期的出口。只將上游位址改成公共 DNS 解析器,無法證明查詢是透過代理送出。
- 啟動解析:若節點伺服器位址使用網域名稱,必須先有可用的解析路徑。不要讓節點網域只能依賴尚未建立的代理連線來解析。
- 避免迴圈:本機 DNS 將查詢轉送給核心後,核心不能再把同一筆查詢送回本機原始入口。請檢查每一跳使用的位址、連接埠與出口標籤。
- 網域與 IP 比對:
domainStrategy會影響路由判斷時是否解析網域名稱及解析時機,但不代表系統的所有 DNS 查詢都會被接管。請依所使用的核心版本確認其可用值與行為。
若使用 geosite、geoip 等規則資源,也須確保資源檔案與設定中的參照一致,並確認更新成功。嗅探可協助部分連線還原網域資訊,但無法保證識別所有流量,也不能取代 DNS 路徑規劃。測試分流時,應同時檢查網域命中記錄與實際的出口標籤。
# 在已安裝 dig 的測試裝置上執行;網域名稱僅供連線測試
dig @192.168.10.2 example.com A
dig @192.168.10.2 example.com AAAA
dig @192.168.10.2 example.com A +tcp
這三項查詢分別檢查 IPv4 記錄、IPv6 記錄與 TCP DNS。收到回覆只代表解析服務有回應;若要確認查詢送往哪個上游、使用哪條出口,仍須搭配路由器記錄或有限度的封包擷取進行觀察。修改解析設定後,應清除終端裝置與路由器的快取,避免舊結果掩蓋設定變更。
五、部署順序:先驗證單一裝置,再透過 DHCP 下發設定
路由器上的設定不能直接照搬桌面版匯出的檔案。監聽位址、檔案路徑、使用者權限、資源檔案位置與透明代理入站都可能不同。訂閱網址也不等於可直接啟動的核心設定;能否匯入及如何產生出站,取決於管理層的實作方式。
- 記錄基準狀態:備份網路、DHCP 與防火牆設定,記下主路由器的管理位址。確認測試裝置使用原本的閘道時,能正常解析網域名稱、瀏覽網頁並連線至區域網路裝置。
- 確認執行環境:選擇符合處理器架構的核心程式,並檢查系統時間、可寫入的儲存空間與服務權限。規則資源用量與連線數都會影響記憶體需求,不能只根據安裝套件大小推估執行需求。
- 單獨啟動核心:先檢查設定語法與啟動記錄,再測試節點連線。不同發行版本的核心設定驗證指令可能不同,請先查看程式隨附的說明。
- 限制測試範圍:只為 192.168.10.100 設定閘道與 DNS,並僅接管此來源位址。分別測試直連網站、代理網站與區域網路服務。
- 補齊異常處理策略:明確決定節點無法使用時要阻斷流量,還是允許特定流量直連;也要測試 DNS 故障、核心停止與裝置重新啟動等情況,不能只測試正常狀態。
- 最後擴大接管裝置:確認運作穩定後,再修改 DHCP 設定。OpenWrt 的 LuCI 介面通常可在「網路」→「介面」→「LAN」→「DHCP 伺服器」中檢查分配設定;實際欄位會隨版本而異。現有終端裝置須重新取得租約,才會套用新設定。
六、驗收與故障排除:依路徑逐項定位,不只檢查出口 IP
出口位址改變只能證明某次請求經過某條路徑,無法證明 DNS、UDP、IPv6 與所有應用程式都已正確接管。驗收時應保留正常與異常兩組結果,並分別檢查終端裝置、閘道、DNS 與核心出站。
# 在 Linux 路由裝置上執行;需要具備相應的檢視權限
ip -4 route
ip -6 route
ip rule show
ss -lntup
以上指令可用來檢視 IPv4 路由、IPv6 路由、策略路由規則與監聽連接埠;精簡版系統可能需要另外安裝相應工具。檢查時請對照自己的位址規劃,不要只因輸出中出現某個連接埠就認定部署完成。若記錄包含訂閱網址、存取憑證或裝置識別資訊,分享前請先移除敏感內容。
旁路由本身可以上網,為什麼其他裝置一改閘道就斷線?
先將測試裝置的閘道還原為 192.168.10.1,以確認基準狀態,再檢查旁路由的 IP 轉送、轉送鏈放行規則與回程路徑。旁路由自身透過本機輸出路徑連上網際網路,並不能證明它能轉送終端裝置的資料。
網頁能開啟,語音或遊戲卻連不上?
確認相關應用程式是否依賴 UDP,並檢查透明代理入站、防火牆與節點出口是否支援且確實接管 UDP。若只使用 TCP 重新導向,網頁測試可能成功;不能因此認定 UDP 也能正常通過。
修改 DNS 後,為什麼檢測結果仍顯示原本的解析器?
重新取得 DHCP 租約並清除快取,檢查瀏覽器的安全 DNS、應用程式內建解析,以及 IPv6 下發的 DNS 設定。接著使用指定伺服器執行 dig 查詢,再從閘道觀察上游請求,以分辨終端裝置繞過解析器與解析器轉送的情況。
停止代理後,全家裝置都無法上網,該怎麼辦?
先將測試裝置或 DHCP 下發的閘道與 DNS 還原至原本設定,再移除對應的接管規則。檢查是否仍將流量送往已關閉的監聽連接埠,以及 DNS 是否仍依賴已停止的核心;恢復後重新取得租約。
驗收結論:個別項目通過,不代表整條連線路徑都正常
至少分別記錄直連、代理、DNS、UDP、IPv6,以及核心停止後的行為。只有結果都符合事先訂定的策略,才適合將單一裝置測試擴大為整個區域網路的預設出口。