PC 资源

旧笔记本别急着卖:装 OpenWrt 当旁路由,主路由一点不用动

🦋admin LV1 · 1 次浏览 · 2 条回复

家里那台运营商光猫拨号,下面挂了个用了四年的路由器。想给全家设备加个去广告和分流,但一想到要换主路由、重新配 WiFi、重新输一遍所有设备的密码,就一直拖着。

后来发现旁路由这个方案特别适合这种情况:主路由完全不动,只在旁边加一台小设备,谁想用新功能就把网关指过去。试错成本几乎为零——旁路由关掉,网络立刻回到原样。

旁路由和主路由到底差在哪

| | 主路由 | 旁路由 |
|---|---|---|
| 拨号 | 是 | 否 |
| DHCP 分配 IP | 是 | 否(或只给指定设备) |
| 位置 | 网络出口 | 跟普通设备平级 |
| 挂了会怎样 | 全家断网 | 指向它的那几台断,其余正常 |
| 改配置影响 | 影响所有人 | 只影响指定的设备 |

关键区别就一句:旁路由不是出口,它只是个「中转」。设备的流量先发给旁路由,旁路由处理完再交给真正的主路由出去。

好处是主路由的 WiFi、拨号、IPTV 全都不用碰。坏处也很直接:所有流量多走一跳,理论上会有一点点延迟。

实测(家里 500M 宽带,旁路由是 J4125 四网口小主机):
- 延迟:主路由直连 6ms,走旁路由 7ms,多 1ms
- 下载速度:58MB/s → 56MB/s,损耗约 3%
- 整机功耗:待机 7W,满载 11W,一年电费大概 50 块
- 断网演练:把旁路由电源拔了,走它的两台设备 30 秒内切回主路由

硬件怎么选

不是所有旧机器都合适,三个硬指标:

  • 至少一个网口(只有一个也能跑,后面说怎么配)
  • 功耗低:24 小时开着,15W 和 40W 一年差一百多块电费
  • 有 x86 或小主机的 armbian 固件:性能不用强,J1900 / J4125 / N100 都够,千兆跑满没问题

旧笔记本其实挺合适:自带屏幕和键盘,调试方便,电池还能当 UPS。唯一的问题是功耗偏高,闲置也有 15–20W。所以我最后用的是一台四网口小主机,旧笔记本拿去跑了别的服务。

装系统:写盘

去 OpenWrt 官网或者 immortalwrt(国内源,下载快)找对应机型的固件,x86 的话选 generic-squashfs-combined-efi.img.gz。解压后用 balenaEtcher 或者 dd 写到 U 盘:

# Linux / macOS,/dev/sdX 换成你的 U 盘,别写错
gunzip -c openwrt-*.img.gz | sudo dd of=/dev/sdX bs=4M status=progress

U 盘启动进 OpenWrt,然后把它装到机器自带的硬盘里(或者直接长期用 U 盘,坏处是 U 盘寿命撑不了太久)。

网络配置,这一步最容易搞错

进 OpenWrt 后台(默认 192.168.1.1),改这几个地方:

1. 改 LAN 口 IP
网络 → 接口 → LAN → 修改,把 IPv4 地址改成主路由网段里的一个空闲地址,比如主路由是 192.168.1.1,旁路由就设 192.168.1.2。网关填主路由的地址 192.168.1.1,DNS 也填主路由或者公共 DNS。

2. 关掉旁路由的 DHCP
同一个网段里两个 DHCP 服务器会打架,设备可能拿到错误的网关。在 LAN 接口的「DHCP 服务器」页,勾上「忽略此接口」。

3. 关掉 IPv6 的 DHCP(可选)
如果主路由已经在管 IPv6,旁路由这边也忽略掉,不然会出现设备拿到两个 IPv6 网关的情况。

4. 防火墙放行转发
网络 → 防火墙 → 自定义规则,加一条:

iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE

eth0 换成你的 LAN 口实际名字(在接口页能看到)。不加这条,设备能连上旁路由但出不了网——这是我卡得最久的一步,现象是能 ping 通旁路由但打不开网页。

设备怎么用上它

两种方式,按需选:

方式 A:主路由改 DHCP(全家生效)
进主路由后台,把 DHCP 的默认网关改成旁路由的 IP。优点是所有设备自动生效,缺点是旁路由一挂全家断网。

方式 B:单个设备手动指定(推荐先试这个)
在手机或电脑的网络设置里,把「网关」手动填成旁路由 IP,DNS 也填它。只影响这一台,出问题改回来就行。

我用的是方式 B:电视和主力机走旁路由,家里其他人设备的网络不受影响。建议先用 B 跑一周,确认稳定了再考虑要不要全量切。

三个真实存在的坑

单网口机器:只有一个网口也能跑,但要在同一个口上配 VLAN,或者干脆用「单臂路由」模式。设置麻烦不少,性能也打折。能上双网口就别省。

网段冲突:旁路由 IP 必须和主路由同网段,且不能和已有设备冲突。先在主路由后台看一眼已分配的列表,挑个没人用的。

DNS 循环:如果旁路由的 DNS 填了自己,而它又去问主路由,主路由再问回来,就会形成死循环。DNS 直接填主路由 IP 或者 223.5.5.5 / 119.29.29.29 这类公共 DNS 最省事。

装完之后能干什么

旁路由跑起来之后,我装了这几个:

  • AdGuard Home:DNS 层去广告,全屋设备生效,不用每台装插件
  • 按需分流:指定域名走特定出口
  • 简单的流量统计:看哪台设备半夜还在跑流量

CPU 常年 5% 以下,1G 内存够用。

最大的感受是:旁路由让我敢折腾了。以前改主路由配置,改错一次全家断网,老婆要投诉。现在随便搞,搞坏了拔电源,30 秒恢复原状。

你们家里网络是怎么组的?有没有人试过单网口搞旁路由,效果怎么样?

回复 (2)

  • 折腾不止 #1

    那句 MASQUERADE 规则确实是关键,但要看系统用的是 iptables 还是 nftables。

    新版 OpenWrt(23 之后)默认走 nftables,iptables 命令虽然还在,实际是翻译层,有时候加了规则不生效。如果加了之后还是出不了网,试试在「网络 → 防火墙 → NAT 规则」里用图形界面加一条:出站区域选 lan,目标地址填主路由网段,动作选 MASQUERADE。

    另外接口名也不是一定叫 eth0,多网口机器可能是 br-lan 或者 eth1,在接口页面看清楚再填。

  • 网盘资源 #2

    想问一个场景:如果家里有 IPTV 怎么办?

    运营商的 IPTV 盒子一般是单独走一个口、单独 VLAN 拨号的,跟宽带不是一路。我担心把主路由的 DHCP 网关改成旁路由之后,IPTV 会不会也跟着走旁路由然后挂掉。

    现在家里 IPTV 是插在光猫的 ITV 口上,理论上是独立的。但不确定改了宽带那边的网关会不会有影响,有人试过吗?

登录后即可参与讨论

去登录 注册账号

相关帖子