旁路由从零配起:和主路由分工,只让部分设备走代理
3 个地址决定旁路由能不能用:IP、网关、DNS。本文讲清旁路由和主路由怎么分工、透明代理怎么接管流量、怎样只让部分设备走旁路由,以及旁路由停机时让全家照常上网的 4 个做法。
旁路由不拨号,也不负责发地址。它是挂在家里局域网上的一台普通设备,专门替一部分流量做代理。主路由照常管上网,旁路由只接手你交给它的那一部分。弄清这层分工,后面的 IP、网关、DNS 就很好填。
认识旁路由和透明代理
家里通常已经有一台路由器在拨号、发 IP,这台叫主路由。旁路由是另一台装了 OpenWrt 一类系统的设备,用一根网线插到主路由的 LAN 口上,和手机、电脑同处一个网段。
它的工作方式叫透明代理。设备把“网关”指向旁路由以后,所有要出网的数据包先送到旁路由;旁路由上的插件按规则判断,国内流量原样转给主路由,需要代理的流量加密后发往机场节点。设备本身不装客户端、不填代理端口,感觉不到中间多了一层,所以叫“透明”。电视、游戏机、智能音箱这类装不了客户端的设备,就靠这一点用上代理。
下面几种情况适合用旁路由:
- 主路由是运营商送的或品牌路由器,刷不了系统,也不想换。
- 家里只有几台设备需要代理,其余设备保持原样。
- 想把代理和拨号、Wi-Fi 拆开,出了问题能分清是哪一层的毛病。
硬件还没买,先看软路由选购;系统还没装,先看 OpenWrt 安装。
理清两台路由器各管什么
| 职责 | 主路由 | 旁路由 |
|---|---|---|
| 拨号上网(PPPoE) | 负责 | 不管 |
| 给设备分配 IP(DHCP) | 负责(多数方案) | 关闭 |
| Wi-Fi | 负责 | 一般不开 |
| 规则分流与代理 | 不管 | 负责 |
| 用到的网口 | WAN 加若干 LAN | 1 个,接主路由 LAN |
只占一个网口,是旁路由和“主路由模式软路由”最直观的区别。也正因为如此,单网口的小盒子也能胜任旁路由。
填好 IP、网关和 DNS
下面假设主路由地址是 192.168.1.1,网段是 192.168.1.x。你家主路由如果是 192.168.0.1 或 192.168.31.1,把前三段替换掉即可。
- 登录主路由后台,找到 DHCP 地址池范围,例如 192.168.1.100 到 192.168.1.199。
- 给旁路由挑一个池子之外、没有设备占用的地址,例如 192.168.1.2。放在池外,是为了不和主路由分出去的地址撞车。
- 登录旁路由后台,打开 LAN 接口,协议选静态地址,依次填写:
- IPv4 地址:192.168.1.2
- 子网掩码:255.255.255.0
- IPv4 网关:192.168.1.1,指回主路由
- DNS 服务器:192.168.1.1,或一个公共 DNS
- 在这个接口的 DHCP 设置里勾选“忽略此接口”,关闭旁路由自己的 DHCP。两台设备同时发地址,局域网会乱套。
- 保存并应用。旁路由后台地址随之变为 192.168.1.2,用新地址重新登录。
- 在旁路由的诊断页面 ping 一个外部域名,能通,说明旁路由自己已经能上网。
习惯命令行的话,在 OpenWrt 上用 UCI 也能一次改好:
uci set network.lan.proto='static'
uci set network.lan.ipaddr='192.168.1.2'
uci set network.lan.netmask='255.255.255.0'
uci set network.lan.gateway='192.168.1.1'
uci add_list network.lan.dns='192.168.1.1'
uci set dhcp.lan.ignore='1'
uci commit
/etc/init.d/network restart
防火墙还有一处要看。在“网络 → 防火墙”里,LAN 区域的“IP 动态伪装”多数教程建议打开。原因是直连流量从设备经旁路由转给主路由,回程时主路由发现设备就在同一网段,会把数据直接发回设备,绕开了旁路由。来回路径不一致,旁路由只看到单向的数据包,连接跟踪对不上,部分连接就会卡住或被当成无效包丢掉。打开伪装后,转发出去的流量源地址改为旁路由,回程也统一经过它。
让指定设备走旁路由
想要“只让部分设备走旁路由”,有三种接法,影响范围从小到大。
接法一:在设备上手动改。 手机进入 Wi-Fi 详情,把 IP 设置从自动改为静态,填一个池外地址,网关和 DNS 都写 192.168.1.2。电脑在网卡的 IPv4 属性里改同样三项。其他设备完全不受影响,缺点是设备一多,要一台台改。
接法二:主路由按设备下发网关。 DHCP 协议里,选项 3 是网关、选项 6 是 DNS。主路由如果是 OpenWrt、爱快这类系统,可以按 MAC 地址给电视、Switch 单独下发 192.168.1.2 作为网关和 DNS,其余设备照旧拿主路由的地址。品牌路由器的原厂后台大多不开放这个设置,这时退回接法一。
接法三:旁路由接管 DHCP。 关掉主路由的 DHCP,让旁路由发地址,并把网关和 DNS 设为它自己,再靠插件规则让国内流量直连。配置量少,但全家设备都压在旁路由一台机器上。
第一次搭建,建议从接法一开始,拿一两台设备验证通了,再考虑扩大范围。
防止旁路由停机连累全家
断电、插件崩溃、升级出错,旁路由迟早会停一次。停机的影响由接法决定:
| 接法 | 旁路由停机时 | 恢复方法 |
|---|---|---|
| 一:设备手动改 | 只有改过的几台断网 | 设备改回自动获取 |
| 二:主路由按设备下发 | 被指定的设备断网 | 主路由删规则,设备重连 |
| 三:旁路由发地址 | 全家断网,新设备拿不到地址 | 重新打开主路由 DHCP |
据此可以做四件事,把停机的代价压到最小:
- 主路由保留 DHCP。 让旁路由只当网关,不发地址。这样即使它停机,主路由的拨号和后台都不受影响,你随时能登录主路由改回来。
- 留一台逃生设备。 至少留一台电脑或手机不走旁路由,出事时用它进后台、查资料。
- 缩短 DHCP 租期。 采用接法二时,把租期设成一两个小时,改回网关后设备续租就生效,不用等一整天。
- 进阶:做虚拟网关。 用 keepalived 一类 VRRP 工具在主路由和旁路由之间设一个虚拟 IP,设备把网关指向它;旁路由在线时虚拟 IP 落在旁路由上,停机后自动转到主路由。前提是主路由也能装这类工具(OpenWrt 软件源里有 keepalived),配置也更复杂,第一次搭旁路由不必一步到位。
排除几个常见毛病
- 连得上 Wi-Fi,网页打不开。 先 ping 192.168.1.2,再 ping 192.168.1.1。前一个不通,是设备上的地址或网关填错;后一个不通,多半是旁路由的网关没指回主路由。
- 国内网站正常,国外打不开。 插件没运行,或订阅没拉取成功,到插件的日志页看报错。
- 能用但时好时坏。 重点看 IPv6。主路由开着 IPv6 时,设备可能经 IPv6 直接找主路由出网,DNS 也可能返回 IPv6 地址,旁路由就被绕过去了。第一次配置时,可以先在主路由关掉 IPv6 下发,或在插件里关掉 IPv6 解析,等跑通了再处理。
- 设备地址忽东忽西。 两台路由器都在发地址,回头确认旁路由的 DHCP 已经忽略。
- 主路由的设备列表里流量都记在旁路由名下。 打开 IP 动态伪装后,转发流量的源地址就是旁路由,这是正常现象。
备好一条机场订阅
旁路由只是管道,真正的出口是机场节点。插件装好以后,你需要一条订阅链接贴进去,选哪款插件见 iStoreOS 科学上网那篇的对照表。
全家设备共用一条订阅,月流量消耗比单独一台手机大得多,电视看视频尤其费流量,选套餐时把这部分算进去。下单前先问客服两件事:订阅是 Clash 格式还是分享链接格式;同时在线设备数怎么计算。候选机场在推荐号位,也可以直接看 一翻云 的资料页。
问与答
旁路由和主路由必须在同一个网段吗?
只有一个网口的设备能当旁路由吗?
加了旁路由会不会拖慢网速?
旁路由突然停机,怎样尽快恢复上网?
接着看
文中提到的机场
佣金交代:本站收录的机场与本站之间都有推广合作关系;读者由本站过桥页进入官网并完成付款后,本站会得到一笔佣金。各家价格、流量与优惠码照官网记录,谁排前谁排后的规则见「本站」页。