OpenWrt 路由器 VPN 分流,核心不是把所有流量简单地塞进代理通道,而是先确定哪些设备、域名和应用需要代理,哪些请求必须保持直连,再让路由器按照规则转发。配置正确后,家里的电脑、手机、电视和其他终端无需逐台安装客户端,也能使用统一的网络策略。
实际配置中最容易出问题的地方有三个:代理核心没有真正接管流量,DNS 请求没有跟随分流策略,以及主路由与旁路由之间的网关关系不完整。本文以 OpenWrt 常见的旁路由或主路由部署为背景,说明规则设计、DNS 配置、订阅导入、设备分流和故障排查方法。不同固件的菜单名称可能略有差异,但排查顺序基本一致。
先理解 OpenWrt 分流的工作方式
分流通常由代理核心、透明代理入口、规则集和 DNS 组件共同完成。代理核心负责建立 Shadowsocks、VMess、Trojan、VLESS、Hysteria2、TUIC 或 WireGuard 等连接;透明代理负责接收局域网设备发来的请求;规则集根据目标域名、IP 地址、端口、设备地址或策略组决定走直连还是代理。
这几个部分不能相互替代。导入订阅只代表节点配置进入了客户端,并不代表局域网流量已经经过 OpenWrt。开启代理核心也不代表所有设备都自动被接管。如果防火墙转发、DNS 劫持或策略路由没有配好,可能出现“路由器自身能访问,但手机不能访问”“域名能解析,网页却打不开”或“部分应用仍然走直连”等现象。
90+
可选国家覆盖
200+
可选线路
不限
同时在线设备
5
支持平台
在路由器上使用订阅时,还要注意客户端核心的兼容性。OpenClash、Mihomo、sing-box 等方案的配置格式和规则语法并不完全相同。Clash 生态通常使用 YAML 配置和策略组,sing-box 则使用 JSON 结构;WireGuard 也属于独立的隧道配置方式。不要把一个客户端生成的完整配置直接复制到另一个核心中,应该使用对应客户端的订阅转换或原生导入功能。
| 分流对象 | 常见匹配方式 | 适合的使用场景 | 主要注意事项 |
|---|---|---|---|
| 设备 | IP、MAC、DHCP 静态租约 | 让电视、工作电脑或访客设备使用不同策略 | 设备地址变化后,原有规则可能失效 |
| 域名 | 域名列表、后缀、规则集 | 按网站或服务类别选择直连与代理 | 必须配合正确的 DNS 解析方式 |
| IP 地址 | 单个地址、CIDR 网段 | 处理没有明显域名特征的应用或服务器 | 云服务 IP 可能变化,不宜长期手工维护 |
| 端口与协议 | TCP、UDP、端口范围 | 补充处理特定应用或游戏流量 | 仅按端口判断可能误伤其他服务 |
选择主路由还是旁路由部署
如果 OpenWrt 负责家庭网络的拨号、DHCP 和默认网关,通常可以直接在主路由上部署透明代理。这样局域网设备只需要从 OpenWrt 获取网络参数,规则和 DNS 入口比较集中,适合设备数量较少、网络结构简单的家庭环境。
如果现有主路由运行稳定,不希望更改拨号、无线或家庭存储设置,可以把 OpenWrt 设置为旁路由。旁路由与主路由处在同一局域网中,代理核心和规则运行在 OpenWrt 上。此时可以按设备设置网关,也可以让主路由继续提供 DHCP,再通过静态路由或手动网关把指定流量交给旁路由。
旁路由配置的重点不是“把网线插上”这么简单,而是保证返回路径一致。客户端发出的请求经过旁路由后,响应必须能够回到同一条路径。如果主路由仍然把相关流量直接转发出去,或者旁路由没有正确处理 NAT 与转发,连接就会表现为偶尔成功、部分网站超时或只有路由器本机可用。
- ✅ 给 OpenWrt 设置固定的局域网地址,避免重启后管理地址变化。
- ✅ 为需要固定策略的设备设置 DHCP 静态租约,再用该地址编写分流规则。
- ✅ 主路由和旁路由只保留一个 DHCP 服务,避免设备拿到不一致的网关。
- ✅ 先让一台测试设备经过旁路由,确认稳定后再扩大到全屋设备。
- ❌ 不要在主路由和旁路由上同时开启互相冲突的 DHCP、DNS 劫持和透明代理。
按设备制定策略
按设备分流是最容易验证的方式。可以先让一台电脑或手机全部走直连,另一台测试设备走代理,分别检查网页访问、DNS 解析和日志记录。确认策略生效后,再把电视、平板或家庭服务器加入对应组。
对于经常切换 Wi-Fi、随机生成 MAC 地址的手机,单纯按 MAC 匹配可能不稳定。更可靠的做法是为设备保留 DHCP 地址,并在路由器中关闭该设备的随机地址功能,或者使用客户端提供的设备标签。家庭服务器、打印机和智能家居设备通常应优先保持直连,避免代理链路中断时影响本地控制。
导入订阅并建立基础代理策略
在 OpenWrt 的代理管理界面中,通常可以找到“订阅管理”“配置文件”“远程订阅”或类似入口。先从服务面板复制完整订阅链接,再粘贴到对应输入框,保存并执行更新。订阅链接包含访问凭据,应像密码一样保管,不要公开到论坛、截图或日志中。
更新结束后,检查节点列表是否出现内容、配置文件是否生成、代理核心是否启动,以及日志中有没有解析错误。如果订阅包含多种协议,而路由器上的核心只支持其中一部分,可能会出现配置生成成功但某些节点无法使用的情况。此时应优先选择兼容协议,或者更换支持范围合适的核心,而不是盲目修改节点参数。
基础策略建议从简单规则开始:局域网地址和本地网段直连,明确需要代理的域名交给代理组,其他未知流量先采用直连或手动选择。等基础链路稳定后,再加入广告域名、地区规则、应用分类和自定义例外。规则越多,越需要关注匹配顺序;通常先处理局域网、本地地址和明确例外,再处理规则集,最后设置兜底策略。
# 仅作规则思路示例,具体语法以所用核心为准
局域网网段 -> DIRECT
路由器管理地址 -> DIRECT
指定域名集合 -> PROXY
其他请求 -> DIRECT
配置 DNS,避免规则与解析结果脱节
DNS 是路由器分流中最常见的隐性故障来源。设备访问域名时,先要获得 IP 地址;如果 DNS 请求被主路由、运营商或设备自身的加密 DNS 提前处理,代理核心可能无法根据域名规则作出预期判断。常见表现包括规则看似正确,但网站仍然直连,或者同一个域名在不同设备上得到不同结果。
建议先确定一个唯一的 DNS 入口。最简单的结构是让客户端通过 OpenWrt 获取 DNS,OpenWrt 再根据规则把请求交给直连 DNS 或代理侧 DNS。对于需要域名分流的场景,应启用客户端支持的 DNS 分流、Fake-IP 或 redir-host 模式,并确认防火墙不会让局域网设备绕过 OpenWrt 直接访问外部 DNS。
Fake-IP 模式会为域名返回内部映射地址,由代理核心在后续连接中还原域名;redir-host 模式则尽量保留真实解析结果。两者各有兼容性差异:部分本地设备、游戏、打印服务或需要真实 IP 的软件更适合 redir-host;规则数量较多、希望按域名稳定匹配时,Fake-IP 可能更方便。不要在没有理解模式差异的情况下频繁切换,否则缓存会让测试结果看起来前后不一致。
还要检查 IPv6。若家庭网络已经启用 IPv6,而代理规则只处理 IPv4,部分设备可能通过 IPv6 直连,造成“浏览器测试正常但某些应用没有按规则走”的现象。可以选择让代理核心完整接管 IPv6,或者在确认方案支持前暂时关闭局域网 IPv6。无论采用哪种方式,都应保持主路由、旁路由和终端的设置一致。
- ✅ 确认终端获得的 DNS 地址确实指向预期的 OpenWrt。
- ✅ 清理终端 DNS 缓存后再测试,避免旧解析结果干扰判断。
- ✅ 检查浏览器的安全 DNS、应用内 DNS 和系统私有 DNS 设置。
- ✅ 让局域网域名、路由器地址和家庭服务保持本地解析。
- ❌ 不要只测试出口地址,却忽略 DNS 请求是否绕过了分流入口。
动手完成一套基础分流
下面是一套适合初次配置的操作顺序。它不依赖某个特定插件名称,适用于使用 OpenClash、Mihomo 或 sing-box 方案的 OpenWrt 环境。每完成一个阶段,都先测试,不要一次性修改所有高级选项。
- 登录 OpenWrt,确认 LAN 地址、默认网关、DHCP 服务和当前 DNS 设置,并记录原始配置,方便出现问题时恢复。
- 为一台测试电脑或手机建立 DHCP 静态租约,让它始终获得同一个局域网地址。
- 安装与固件架构匹配的代理管理组件和核心,确认依赖包安装完成后再启动服务。
- 添加订阅链接并更新配置,检查节点名称、协议类型和策略组是否正常生成。
- 先建立“直连”和“代理”两个明确策略,暂时不要加入大量自定义规则。
- 开启透明代理入口,让测试设备的流量进入代理核心;若使用 TUN,还要确认虚拟接口和防火墙权限正常。
- 配置 DNS 入口,确保测试设备使用 OpenWrt 提供的解析服务,并清理设备缓存。
- 用一个本地服务和一个需要代理的域名分别测试,观察代理日志中的命中策略。
- 确认测试设备稳定后,再按设备、域名和应用需求逐步增加规则。
测试时不要只打开一个网页。可以分别检查本地路由器管理页面、局域网文件服务、普通国内网站、需要代理的目标,以及使用 UDP 的应用。这样能够区分 DNS 问题、TCP 连接问题、UDP 不兼容和规则未命中。每次只改动一个变量,并在日志中记录修改前后的结果,比反复重启路由器更容易定位原因。
常见故障与排查顺序
路由器能用,终端不能用
先检查终端的默认网关和 DNS 是否指向正确设备。如果终端仍然使用主路由作为网关,旁路由上的透明代理自然收不到请求。若网关正确,再检查 OpenWrt 的防火墙区域、转发权限、透明代理开关和核心运行状态。日志中没有任何终端请求时,优先排查网络路径,而不是更换节点。
客户端显示连接但网页打不开
这通常说明代理核心启动了,但节点、DNS 或转发环节存在问题。先用直连策略访问路由器管理页面和本地服务,再切换到代理策略。若直连也失败,检查 DNS 和防火墙;若只有代理策略失败,查看节点协议、TLS、UDP 支持和连接日志。Hysteria2、TUIC 等基于 UDP 的方案受网络环境影响更明显,不能仅凭 TCP 网站测试判断全部功能。
规则没有命中预期策略
确认规则集已经下载并加载,检查域名是否被应用直接解析为 IP,检查规则顺序是否被更早的直连项覆盖,也要留意应用使用了独立的 DNS 或加密连接。对单个目标进行测试时,先添加精确的域名规则,验证命中后再改成更宽泛的后缀或规则集。
本地设备无法访问
如果开启透明代理后打印机、NAS、智能家居或路由器管理页面无法访问,通常是局域网网段没有加入直连例外,或者 DNS 把本地域名交给了外部解析。把局域网地址、广播发现和本地 DNS 放在直连策略中,并确认防火墙没有阻断 LAN 内部转发。不要为了恢复本地访问而关闭全部规则,这会掩盖真正的匹配问题。
重启后配置失效
检查代理服务是否设置为开机启动,订阅生成的配置是否保存到持久化存储,以及网络接口启动顺序是否导致核心先于 WAN 或 LAN 启动。旁路由还要确认主路由重新分配地址后,测试设备仍然获得预期网关。若配置来自远程订阅,更新失败时应保留上一份可用配置,不要让空配置直接覆盖当前运行版本。
| 现象 | 优先检查 | 进一步处理 |
|---|---|---|
| 所有设备都无法上网 | 默认网关、DHCP、WAN 状态 | 停用透明代理,恢复基础网络后重新逐项开启 |
| 只有部分域名异常 | DNS 模式、规则顺序、缓存 | 查看域名实际命中策略并增加明确例外 |
| 本地服务打不开 | 局域网直连规则和防火墙 | 把本地网段与本地域名排除在代理之外 |
| 某些应用无法连接 | UDP、IPv6、应用内 DNS | 分别测试协议族和 DNS 设置,不要只更换线路 |
| 重启后规则消失 | 配置保存、服务自启、订阅更新 | 保留可用配置并检查启动日志 |
让全屋分流长期保持稳定
稳定运行后,建议把配置分成基础层和自定义层。基础层保留局域网直连、路由器地址、本地 DNS、主路由管理地址和必要的兜底策略;自定义层再加入设备策略、域名例外和应用规则。这样更新订阅或规则集时,不容易把家庭网络的基本功能一起改坏。
定期查看核心日志和系统日志,重点关注配置解析失败、DNS 超时、接口重复、路由冲突以及磁盘空间不足。OpenWrt 设备资源有限,过大的规则集、过多并发连接和不必要的日志记录都可能增加负担。若路由器同时承担拨号、无线、存储和代理任务,应优先保证基础转发稳定,再逐步增加高级功能。
对于家人使用的设备,建议采用“默认直连、按需代理”的策略;对于需要固定网络路径的设备,则按 DHCP 静态租约指定策略。所有改动都应保留恢复方案,包括原有网关、DNS、DHCP 和防火墙设置。这样即使订阅失效、核心更新失败或某条线路不可用,也能迅速恢复基本上网和局域网访问。