家里的路由器要不要做透明代理?三种方案的真实代价
先说结论
一台台配烦了,想在路由器上一次搞定——这个念头很合理。但它是一个把故障点集中到一处、把影响面扩大到全家的决定,值不值得做,取决于下面六条。
一、这不是一篇部署教程。 本文不给 iptables/nftables 规则、不给订阅地址、不给「一键脚本」。它回答的是上一个问题:这件事对你划不划算。真要动手,以你选中的那个项目自己的文档为准。
二、先查硬件,别先想方案。 OpenWrt 官方 Wiki 的 4/32 警告页原文写着:「For OpenWrt 21.02, we recommend 16/128 devices - at least 16Mbytes Flash and 128MBytes RAM」,4MB 闪存「is absolute minimum (but you won’t be able to install LuCI web interface)」。这段话写于 21.02 时期,而 OpenWrt 官网首页目前标的当前稳定系列是 25.12——门槛只会更高。硬件不够,后面三种方案一种都不用看。
三、三条路的差别是「故障时谁遭殃」。 主路由刷机=全家绑在一起;旁路由=可以只让部分设备走;独立小主机=性能最好、最贵、最占地方。三者对照见第二节。
四、真实代价主要不是钱,是依赖和 DNS。 OpenClash 的依赖清单里第一项就是 dnsmasq-full——也就是说全家的域名解析都要经过这个插件。它还依赖 ruby 和 ruby-yaml,在小闪存设备上这是实打实的空间。轻量一些的 homeproxy 依赖只有四项,但它的仓库简介直接写明面向 ARM64/AMD64。细节见第三节。
五、最容易被忽略的一条:连上这个网络的所有东西都会被路由。 包括来做客的人的手机、你家的摄像头、扫地机器人、智能音箱。这些设备你不会去看它们在连什么。这不是危言耸听,这是「透明」这两个字的字面含义。见第五节。
六、做完一定要在客户端上验证,不是在路由器面板上。 用IP 地址查询看出口,用 DNS 泄露检测看解析。插件面板上的绿灯只代表路由器自己连上了。方法见第六节。
本文的边界:本站不在中国境内部署设备,不做也不引用「实测吞吐」。所有产品、版本、依赖和硬件门槛,都是 2026 年 9 月 21 日当天从项目自己的仓库或官方 Wiki 取到并逐字核对的;凡涉及「你家这台路由器能跑多快」,本文只教你自己怎么量,不给数字。
一、透明代理到底改了什么
一句话:它把「要不要走代理」这个决定,从设备身上挪到了网关身上。
在电脑上装客户端时,是这台电脑自己知道要走代理。透明代理是网关按规则替所有设备做分流,设备什么都不知道,所以叫「透明」。
这带来两个后果,一好一坏,而且是同一件事的两面:
- 好的那面:电视盒子、游戏主机、智能音箱这些根本装不了客户端的设备,被自动覆盖了。
- 坏的那面:覆盖范围不可选。你没有一个「只让我的笔记本走」的开关,除非你额外做设备白名单(旁路由方案才方便做,见第二节)。
它没有改变的事情也要说清楚:
- 它不改变你用的是什么线路,也不改变线路的质量。线路挂了,透明代理只会让全家一起挂。相关:《2026 年 4 月的「断线潮」》。
- 它不让任何协议变得更难被识别。协议层的事和网关无关,见《2026 年还在用的协议》。
- 它不替你做 Kill Switch。「隧道断了之后流量退回本地出口」这个问题在网关上依然存在,而且影响的是全家。概念和做法见《Kill Switch 实操》。
二、三条路的对照表
| A. 主路由刷机 | B. 旁路由 | C. 独立小主机 | |
|---|---|---|---|
| 做法 | 把家里唯一那台路由器刷成 OpenWrt,插件跑在上面 | 保留原路由器,另接一台设备做网关,需要的设备才指向它 | 一台 x86 小主机/ARM 开发板常开,做主路由或旁路由 |
| 硬件门槛 | 设备必须在 OpenWrt 支持列表内,且满足闪存/内存要求 | 同左,但可以用一台便宜的旧设备 | 最低,因为你是按需求买的 |
| 覆盖范围 | 全家,不可选 | 可选:改哪台设备的网关,哪台才走 | 取决于你把它放在 A 还是 B 的位置 |
| 坏了会怎样 | 全家断网,包括不需要代理的设备 | 原路由器还在,没指过去的设备不受影响 | 同 A 或 B |
| 转发性能 | 受限于路由器 CPU | 受限于旁路由设备 CPU | 通常最好 |
| 谁在维护 | 你,且必须在家 | 你,但可以先让它掉线不修 | 你 |
| 额外成本 | 0(但刷坏就是一台砖) | 一台闲置设备 | 几百到上千元+常年功耗 |
| 回滚难度 | 高:要刷回原厂固件 | 低:把设备网关改回去就行 | 低:拔电 |
如果你只想记住一句话:旁路由(B)之所以在国内家庭里最流行,不是因为它性能好,而是因为它的回滚成本几乎为零——出问题时把设备的网关地址改回原路由器,五秒钟恢复,家里其他人甚至不会察觉。主路由刷机(A)没有这个退路。
三、三个常见插件:它们自己写了什么
下面每一条都来自项目自己的仓库,2026 年 9 月 21 日核对。本站不推荐其中任何一个,也不提供节点或订阅来源。
OpenClash
- 仓库
vernesong/OpenClash,MIT 许可证,GitHub 上 27,529 个 star。 - 自述(README 原文):「本插件是一个可运行在 OpenWrt 上的 Mihomo(Clash) 客户端」。
- 最新正式版 v0.47.156,发布于 2026-08-10。
- 它跑的内核 mihomo,当前稳定版是 v1.19.31(2026-09-14 发布)。
- 依赖清单值得逐条看,README 里列着:
luci、luci-base、dnsmasq-full、bash、curl、ca-bundle、ipset、ip-full、ruby、ruby-yaml、unzip,以及按防火墙版本分别需要的iptables-mod-tproxy/kmod-nft-tproxy,TUN 模式还要kmod-tun。
这份清单说明两件事。 第一,dnsmasq-full 意味着路由器的 DNS 服务会被换成完整版由它接管——全家的域名解析都从这里走,这既是它能做分流的原因,也是它出问题时全家都上不了网的原因。第二,ruby 和 ruby-yaml 在一台 16MB 闪存的老路由器上是很占地方的东西。功能强和吃资源,是同一件事的两面。
homeproxy
- 仓库
immortalwrt/homeproxy,GPL-2.0,1,081 个 star,最近提交 2026-08-11(UTC)。 - 仓库简介原文:「The modern ImmortalWrt proxy platform for ARM64/AMD64 (powered by sing-box)」——名字里就写了面向 ARM64/AMD64,不是给老 MIPS 小路由准备的。
- 它的
Makefile里LUCI_DEPENDS只有四项:sing-box、firewall4、kmod-nft-tproxy、ucode-mod-digest。和上面那份清单对比一下,轻重立判。 - 它跑的内核 sing-box,当前稳定版 v1.14.1(2026-09-15 发布);同期另有 v1.15.0-alpha 系列在并行推进,是预发布。
- 它没有发布 Release——这类插件通常随固件的软件源分发,而不是单独下载安装包。
- 仓库里的
README文件目前只有一个 TODO 列表,其中一条写着「Subscription page slow response with a large number of nodes」。项目自己把待办摊开写着,这是判断成熟度的有用信息。
Passwall
- 仓库
Openwrt-Passwall/openwrt-passwall,GPL-3.0,9,933 个 star,2026-09-20 仍有推送。 - README 顶上是一条 2026 年 6 月 1 日起生效的兼容性公告,讲的是 Xray 内核弃用
allowInsecure、自签证书需要配置pinnedPeerCertSha256的事。 - 它的编译说明要求把 OpenWrt 官方软件源自带的一批内核包(xray-core、sing-box、hysteria 等)先删掉再用它自己的源替换。
这一条是三个里最该注意的成本:一个需要替换系统自带软件源的插件,意味着以后每次升级固件,你都要重新处理一遍这件事。不是做不到,是它会持续消耗你的时间。
四、没人提前告诉你的三笔开销
1. 吞吐天花板从宽带挪到了路由器
加密和转发都吃 CPU。家用路由器的 CPU 是为「转发明文包」设计的,不是为「一边解密一边转发」设计的。结果是:你办了 1000M 宽带,但走代理的那部分流量可能跑不到宽带的零头。
本站不给任何型号的数字——那需要我们手上有那台设备。你要做的是自己量:在一台客户端设备上跑中国网络测速方法,分别在走网关和不走网关的状态下各测一次,差值就是这台网关的代价。慢的原因怎么定位,走这一篇:《翻墙慢,到底是节点问题还是本地问题》。
2. 所有故障都变成了「网络坏了」
设备上装客户端时,出问题的范围是一台设备,而且报错在你眼前。挪到网关之后,同一个问题的表现变成:家里人说「网坏了」。
- 是宽带的问题,还是插件的问题?
- 是规则配错了,还是线路挂了?
- 是 DNS 的问题,还是转发的问题?
你在排查的时候,全家在等。这是主路由方案(A)最贵的一笔隐性成本,而它不会出现在任何一篇教程里。DNS 那一层怎么分清,见《DNS 污染自测》;线路整条挂掉时的处置,见《机场突然全挂了:30 分钟自救清单》。
3. 升级变成一件需要挑时间做的事
固件升级、插件升级、内核升级,三者版本要对得上。上面 Passwall 那条「替换自带软件源」的编译说明,和 OpenClash 那串依赖,都会在升级时找你。
一个实际建议:不要在你需要用网的时候升级网关。这听起来像废话,但正是主路由方案最常翻车的场景。
五、全家一起被路由,这件事要先想清楚
这一节和技术无关,但它可能是整页最重要的部分。
「透明」的字面意思是:设备不知道自己被代理了。 那么:
- 客人的手机连上你家 Wi-Fi 后,也走你的线路出去。他们不知道,也没同意。
- 摄像头、门锁、扫地机器人、智能音箱这些 IoT 设备,会按你的规则被分流。它们平时连什么、往哪发数据,你大概率没看过。
- 家里人的所有设备都一样。工作电脑、老人的手机、孩子的平板。
这带来三个需要你自己回答的问题,本文不替你回答:
- 你愿意为连上这个网络的所有流量负责吗? 网关是以你的名义连出去的。
- 你家里的人知道吗? 至少应该知道。
- IoT 设备真的需要走吗? 绝大多数不需要——它们连的是国内服务器,走了反而慢,还白白占用带宽。
由此得出一条很实际的设计建议:如果决定要做,优先用旁路由(B),并且默认只让需要的设备指过去,而不是把全家都拉进来。这一条同时解决了上面三个问题里的两个。至于「国内流量要不要走代理」——答案是不要,否则国内网站会集体变慢,这也是所有这类插件都内置分流规则的原因。
六、验证与回滚
验证:一定在客户端上做
装完插件后,面板上那个绿色的「已连接」只说明路由器自己连上了,不说明你手机的流量真的经过了它。真正的验证要在一台客户端设备上做,全程不到两分钟:
- 拿一台手机或电脑连上这个网络,什么代理都别配。
- 打开本站的 IP 地址查询,看出口 IP、国家和运营商(ASN)是不是你预期的。不是——说明分流没生效。
- 打开 DNS 泄露检测。这一步最容易挂:流量走了但 DNS 没走,是透明代理最常见的半成品状态,表现是「能上网但某些站还是打不开」。
- 找一台不该走代理的设备(比如只连国内服务的 IoT 设备),确认它没有被卷进去。
第 2 步和第 3 步都过了,才算做成了。
回滚:动手之前先写好
这一条不是可选项。 在你改任何东西之前,先把回滚步骤写在纸上或手机备忘录里——不是写在那台即将被你改坏的设备上。
- 旁路由(B):把受影响设备的网关和 DNS 改回原路由器地址即可。这就是旁路由的全部价值所在。
- 主路由刷机(A):需要原厂固件包(提前下载好并存在本机)和刷回的方法。设备一旦无法启动,你连下载页都打不开——这是每年都有人踩的坑。
- 独立小主机(C):拔电,把原路由器恢复成网关。
还有一件事:把路由器的管理地址、后台密码、宽带账号写下来放好。全家断网的时候,你没法上网去查它们。
七、什么情况下别做
诚实地说,下面任何一条成立,就别折腾了:
- 家里只有两三台设备,而且都能装客户端。 收益不够覆盖维护成本,桌面端照着《Clash 使用教程 2026》配,手机端照着《iPhone 上没有 Clash 怎么办》选,就够了。
- 你经常不在家,而家里没有第二个能修的人。 网关故障的修复必须在现场。
- 你的宽带带宽远高于路由器的转发能力。 花钱办的宽带被网关吃掉大半,不值。先量再决定(方法见第四节第 1 点)。
- 你不接受客人和 IoT 设备被一起路由。 那就别做全屋,做旁路由 + 白名单。
- 手上的路由器不在 OpenWrt 支持列表里,或闪存/内存不够。 别硬刷,刷坏的概率不低,且可能连回滚都做不了。
如果上面五条都不成立,那旁路由是性价比最高的起点:找一台闲置设备,从少数几台设备指过去开始,跑通了再考虑扩大范围。先小范围、可回滚地做,比一次性把全家绑上去安全得多。
参考资料
OpenWrt 官方
- OpenWrt Wiki — Warning about 4/32 devices(引用其中「For OpenWrt 21.02, we recommend 16/128 devices - at least 16Mbytes Flash and 128MBytes RAM」「4MB is absolute minimum (but you won’t be able to install LuCI web interface)」「OpenWrt support for those devices has been end with the 19.07 release」三处原文)(2026-09-21 核查)
- OpenWrt 官网首页(核对当前稳定系列为 25.12、旧稳定系列为 24.10)(2026-09-21 核查)
- OpenWrt 官方下载目录(核对 25.12 系列最新点版本为 25.12.5)(2026-09-21 核查)
插件与内核项目(均取自项目自己的仓库)
- vernesong/OpenClash — GitHub 仓库与 README(MIT;自述「本插件是一个可运行在 OpenWrt 上的 Mihomo(Clash) 客户端」;依赖清单含 dnsmasq-full、ruby、ruby-yaml、kmod-nft-tproxy;最新正式版 v0.47.156,2026-08-10)(2026-09-21 经 GitHub API 核查)
- immortalwrt/homeproxy — GitHub 仓库、README 与 Makefile(GPL-2.0;简介「The modern ImmortalWrt proxy platform for ARM64/AMD64 (powered by sing-box)」;LUCI_DEPENDS 为 sing-box、firewall4、kmod-nft-tproxy、ucode-mod-digest;master 分支最近提交 2026-08-11 UTC;无 Release)(2026-09-21 经 GitHub API 核查)
- Openwrt-Passwall/openwrt-passwall — GitHub 仓库与 README(GPL-3.0;README 顶部为 2026-06-01 起 Xray 内核弃用 allowInsecure 的公告;编译说明要求替换 OpenWrt 自带的一批内核软件包;2026-09-20 仍有推送)(2026-09-21 经 GitHub API 核查)
- MetaCubeX/mihomo — GitHub 仓库(当前稳定版 v1.19.31,2026-09-14 发布)(2026-09-21 经 GitHub API 核查)
- SagerNet/sing-box — GitHub 仓库(当前稳定版 v1.14.1,2026-09-15 发布;并行的 v1.15.0-alpha 系列为预发布)(2026-09-21 经 GitHub API 核查)
将本指南加入收藏夹
跨境网络环境瞬息万变。建议按下 Ctrl+D (Windows) 或 Cmd+D (Mac) 收藏本页,以便在连接波动时快速查阅解决方案。
加入 5,000+ 跨境从业者,第一时间获取最新的 GFW 封锁动态与协议升级提醒。
* 我们绝不发送垃圾邮件,您可以随时取消订阅。
更多关于 Howto 的解析
Clash 报错对照表:订阅导入失败、连不上节点、DNS 出错的日志怎么读
屏幕上那行红字到底什么意思?按错误原文查,每条都标了它出自哪个客户端的哪个文件,以及在本机能做的检查。所有修法都是客户端 …
DNS 污染自测:三条命令,分清污染、劫持、节点故障和网站自己挂了
一个网站打不开、别的都正常时,怎么用三条命令定位原因。每条命令的参数出自工具自己的手册,每种输出对应哪一种病,文末有一张 …
Kill Switch 实操:在 Windows 和 macOS 上把「隧道一断就断网」做出来,并验证它真的生效
不是讲概念,是把它配出来:Windows 用防火墙默认出站策略,macOS 用系统自带的 pf。每一步都标了微软或苹果官 …
KUAJIE VPN