路由器与旁路由运行 Xray 内核:部署方式、硬件要求与分流思路概览

概览在主路由或旁路由上直接运行内核的几种方式,讲清内存与存储要求、透明代理与 DNS 分流的基本关系,以及和桌面客户端的取舍。

本文速览

把 Xray 放到路由器上,需要同时处理内核运行、流量接管、DNS 和故障回退。本文适合已经能在客户端连接节点、准备让多台局域网设备共用出口的用户:先比较主路由、旁路由与桌面部署,再给出硬件规划、单设备验证步骤和排障顺序,不把启动内核等同于完成全网代理。

一、先区分 Xray 内核与路由接管

Xray 是处理代理协议、入站、出站与路由规则的内核,不是路由器固件,也不负责自动配置整个局域网。把可执行文件放进路由器并启动,只完成了其中一层。终端发来的数据是否进入内核,还取决于网关、系统转发、防火墙规则以及入站配置。

v2rayN 是桌面客户端,v2rayNG 是使用 Xray 内核的安卓客户端,v2flyNG 使用 V2Fly 内核。客户端界面中的订阅管理、节点列表和连接按钮,不会因为复制一个 Xray 可执行文件就出现在路由器上。订阅文本也通常不能直接作为 Xray 的 JSON 配置文件读取。

二、部署位置:桌面、旁路由还是主路由

选位置之前,先确认要覆盖几台设备,以及断开代理后是否允许继续直连。旁路由不是某一种软件,而是网络中的角色:另一台设备承接部分终端的网关或策略转发任务。它可以是独立小主机,也可以是虚拟机;虚拟机还要检查虚拟网卡、桥接与宿主机资源分配。

桌面先行验证

推荐

先用 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。这是地址规划示例,使用前应检查现有网段及地址占用。

  1. 保存原配置

    在 LuCI「系统」→「备份/升级」保存配置备份,记录原网关和 DNS。保留一台仍以主路由为网关的管理设备,确认能通过有线连接访问管理页。

  2. 固定管理地址

    进入「网络」→「接口」→「LAN」→「编辑」→「常规设置」,设置旁路由地址为 192.168.10.2;在选定的单臂方案中,把旁路由上游网关设为 192.168.10.1,并确认该地址不在动态分配池内。

  3. 核对地址分配

    若由主路由统一分配地址,在旁路由「网络」→「接口」→「LAN」→「编辑」→「DHCP 服务器」→「常规设置」勾选「忽略此接口」。另行核对 IPv6 的 RA 与 DHCPv6 设置,避免出现第二个未经规划的网关通告。

  4. 验证内核配置

    准备匹配架构的 Xray 与实际配置,先做配置测试,再启动进程。先用显式代理验证出站可用,然后按所选接管方案配置转发、入站和排除规则;此时不要更改全网 DHCP。

  5. 切换测试终端

    仅在测试终端中把 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,应用也可能使用自己的加密解析。嗅探只能在适用流量中补充信息,不能保证还原所有连接的原始域名。

53
DNS 常用 UDP/TCP 端口
10808
示例 SOCKS 入站端口
12345
示例透明接管入站端口

其中 10808 与 12345 只是本文的规划示例,不是所有客户端或路由配置的固定默认值。端口不同不构成故障,只要防火墙目标端口与实际入站一致即可。DNS 的 53 端口则需同时考虑 UDP 与 TCP,不能只处理其中一种传输。

六、常见故障:按网关、解析、出站顺序检查

排障时每次只改变一个条件。先确认终端拿到了预期网关,再确认解析结果,最后观察连接是否进入正确出站。只用浏览器刷新页面会混入缓存、连接复用和应用独立解析,难以定位故障发生在哪一层。

网关改了,为什么还是走原来的出口?

先查看终端实际路由表和 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 策略;把变化拆开,才能用日志与对照测试判断每一步是否有效。

客户端下载选择平台与安装包