把 Xray 放到路由器上,需要同时处理内核运行、流量接管、DNS 和故障回退。本文适合已经能在客户端连接节点、准备让多台局域网设备共用出口的用户:先比较主路由、旁路由与桌面部署,再给出硬件规划、单设备验证步骤和排障顺序,不把启动内核等同于完成全网代理。
一、先区分 Xray 内核与路由接管
Xray 是处理代理协议、入站、出站与路由规则的内核,不是路由器固件,也不负责自动配置整个局域网。把可执行文件放进路由器并启动,只完成了其中一层。终端发来的数据是否进入内核,还取决于网关、系统转发、防火墙规则以及入站配置。
v2rayN 是桌面客户端,v2rayNG 是使用 Xray 内核的安卓客户端,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,应用也可能使用自己的加密解析。嗅探只能在适用流量中补充信息,不能保证还原所有连接的原始域名。
其中 10808 与 12345 只是本文的规划示例,不是所有客户端或路由配置的固定默认值。端口不同不构成故障,只要防火墙目标端口与实际入站一致即可。DNS 的 53 端口则需同时考虑 UDP 与 TCP,不能只处理其中一种传输。
- 先排除基础网络:保留 DHCP、必要的组播与广播、局域网管理地址及内核自身连接,避免误送入代理。
- 防止代理回环:到节点服务器的外层连接必须能走正常出口,不能再次被透明规则送回原入站。节点地址为域名时,还要考虑地址变化与启动解析。
- 拆开解析职责:局域网主机名通常由本地解析器处理;公共域名按策略选上游。解析器自身的出口也必须符合规划。
- 单独检查 IPv6:只配置 IPv4 接管时,终端仍可能通过 IPv6 直连。应完整部署双栈策略,或在测试范围内明确关闭相关 IPv6 通告与连通路径。
- 限制监听范围:供局域网使用的 DNS 和代理入站不应直接向 WAN 开放;结合监听地址与防火墙限制来源。
六、常见故障:按网关、解析、出站顺序检查
排障时每次只改变一个条件。先确认终端拿到了预期网关,再确认解析结果,最后观察连接是否进入正确出站。只用浏览器刷新页面会混入缓存、连接复用和应用独立解析,难以定位故障发生在哪一层。
网关改了,为什么还是走原来的出口?
先查看终端实际路由表和 IPv6 默认路由,排除旧租约或 RA 仍指向主路由的情况。再检查旁路由是否真的命中了接管规则;把默认网关改到旁路由,只能证明流量经过它,不能证明流量已经进入 Xray。
地址能连通,域名却打不开?
在支持 nslookup 的测试终端执行 nslookup example.com 192.168.10.2,检查查询是否超时。若旁路由没有监听 DNS,就不要把终端 DNS 指向它;继续检查解析服务监听地址、53 端口规则与上游出口。
网页能用,游戏或语音为什么不通?
核对 UDP 是否进入预期入站、出站是否支持对应转发,以及策略路由是否完整。TCP 网页成功不等于 UDP 成功;需要通过具体应用和日志验证,不能仅凭一次 TCP 延迟测试判定整条链路正常。
重启后全网断开,先改哪里?
先把测试终端网关和 DNS 恢复为原值,使用保留的管理设备登录。检查内核、解析服务和防火墙规则的启动顺序,再查时间同步与存储挂载。确认服务恢复后才重新启用接管,避免反复重启掩盖原因。
还应提前确定故障策略:内核退出后,是允许指定流量直连,还是阻断这些流量。两种策略都需要显式实现并实际测试。可以在维护窗口停止内核一次,观察终端表现,再核对是否符合预期;不要把“进程有自动重启”当成完整回退方案。
七、验收与取舍:有多设备需求再迁移
路由部署的主要价值是集中维护规则、覆盖不方便逐个配置代理的设备;代价是网络故障的影响面更大。仅一台电脑使用时,v2rayN 的节点切换、日志查看与设置回退通常更直接。安卓设备可先用 v2rayNG 验证 Xray 节点;选择 v2flyNG 时,应另行确认节点与 V2Fly 的协议兼容性。
- 功能验收:分别测试直连目标、代理目标、局域网服务、DNS 与 UDP,不用一个网页代替全部检查。
- 性能验收:在相同节点、相近时间段比较桌面与路由吞吐,同时记录 CPU、内存和温度,区分节点拥塞与本地瓶颈。
- 重启验收:重启旁路由后重新获取租约,确认地址、规则、解析和出站全部恢复,而不只是管理页能打开。
- 回退验收:记录撤销网关、DNS 与接管规则的具体步骤;确认备份能恢复,并保留不经过测试路径的管理入口。
完成单设备验证后,再按设备或地址分组推广。不要同时替换固件、升级内核、切换节点和重写 DNS 策略;把变化拆开,才能用日志与对照测试判断每一步是否有效。