路由器运行 Xray,需要同时处理内核配置、流量接管、策略路由和 DNS。本文面向已能使用桌面客户端连接、准备把代理入口放到网关的用户:先选主路由或旁路由,再用单台设备验证 TCP、UDP、解析与回程,最后逐步扩大接管范围。以下地址与端口仅为部署示例,不是可直接套用到任意固件的一键配置。
先分清 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 配置说明。