banner
约 1,500 字
5 分钟

OpenWrt 旁路由设置笔记

摘要

本文介绍使用 R2S 软路由作为 TP-LINK 主路由的旁路由方案。主路由负责拨号和 DHCP,旁路由负责科学上网等功能。搭建时需将旁路由 LAN 口 IP 改为与主路由同网段,关闭其 DHCP,并开启防火墙 IP 动态伪装。核心在于终端需手动指定网关为旁路由 IP 才能走旁路由。文中总结了网段冲突、DHCP 未关等常见坑,并提供了通过主路由 DHCP 选项强制下发网关的进阶方法。

家里主路由是运营商送的 TP-LINK,能用但扩展性基本为零。折腾的活都丢给 R2S 软路由当旁路由。此文是搭建过程 + 我掉进去的几个坑

为什么是旁路由不是主路由

选旁路由而不是把 R2S 顶上去当主路由,理由:

  • 主路由负责拨号、DHCP、WiFi,不能挂。运营商送的虽然菜,但稳定

  • R2S 当旁路由,挂了主路由照样能上网,只是没有那些花哨功能

  • 维护方便——折腾旁路由不影响全家网络

原理(30 秒版)

数据流:终端 → 主路由 LAN → 旁路由 LAN → 主路由 WAN → 互联网。来回来两趟,看起来很蠢,但这就是旁路由的本质——它是路由,它是网关

关键就一句话:终端的网关指向旁路由,旁路由的网关指向主路由。其他都是细节。

搭建前

我家里的 IP 分配:

  • 主路由 LAN:192.168.0.1(默认)

  • 旁路由 LAN:10.0.5.1(OpenWrt 默认网段,和主路由不同

  • 子网掩码:255.255.255.0

物理连接

R2S 的 LAN 口接主路由的 LAN 口,电脑接主路由另一个 LAN 口(或 WiFi)。

刚开始你会发现进不去旁路由后台——因为电脑在 192.168.0.x 网段,旁路由在 10.0.5.x,根本不通。

解决:电脑临时改 IP

把电脑的 IPv4 改成手动:

  • IP:10.0.5.101和旁路由同网段

  • 子网掩码:255.255.255.0

  • 网关:10.0.5.1旁路由 IP

这时候就能进 10.0.5.1 的 OpenWrt 后台了。

改旁路由到和主路由同网段

进后台后:网络 → 接口 → LAN → 修改:

  • 协议:静态地址

  • IPv4 地址:192.168.0.2避开主路由 .1,避开其他设备

  • 子网掩码:255.255.255.0

  • IPv4 网关:192.168.0.1主路由不是自己

  • DNS:192.168.0.1交给主路由

  • IPv6 分配长度:禁用主路由的事

  • DHCP:忽略此接口DHCP 是主路由的活

保存。不要等页面回应——因为旁路由 IP 变了,你现在的电脑已经访问不到它了。

防火墙配置

网络 → 防火墙 → 区域转发:

  • 关闭 SYN-flood 防御(旁路由不需要,主路由在前面挡着呢)

  • 开启 IP 动态伪装(关键,否则流量出不去

保存应用。进 网络 → 诊断,ping 一下 8.8.8.8,能通就说明上网没问题了。

客户端配置(最重要的部分)

搭好之后你会发现:客户端连主路由,根本没走旁路由

这是旁路由的核心特点:它不强制接管流量。要让流量走旁路由,必须在终端上手动指定网关。

iPhone 例子(WiFi 配置 → 配置 IP → 手动):

  • IP:192.168.0.150和主路由同网段,避开其他设备

  • 子网掩码:255.255.255.0

  • 路由器(即网关):192.168.0.2旁路由

  • DNS:192.168.0.1主路由,或者你自己填

这样配了之后,终端的流量会先到旁路由,旁路由处理完再丢回主路由,最终出互联网。

我掉进去的坑

  1. 网段不一致导致连不上后台:第一次弄的时候不知道要改电脑 IP,傻愣了 10 分钟。OpenWrt 默认 192.168.1.1,主路由也是 192.168.1.1,更混乱。后来把旁路由改到 10.0.5.x,清爽多了。

  2. DHCP 没关:刚开始旁路由还开着 DHCP,结果家里设备随机拿到旁路由的 IP 当网关,部分设备能上网部分不能。把 DHCP 关掉,让主路由独占

  3. IP 动态伪装没开:开防火墙配置那一项的时候忘了勾"IP 动态伪装",ping 8.8.8.8 不通。开了之后立刻好。

  4. 客户端没指定网关:以为搭好就完事,结果流量没走旁路由。旁路由不是无脑接管的,必须每个设备手动配,或者通过 DHCP option 强制下发(这个后面再写)。

  5. 端口转发从主路由做:我之前在旁路由上配的 DDNS 和端口转发,搭旁路由后全失效。主路由直接转发到旁路由 LAN IP:端口就行,旁路由里不用再配。这点和很多人想的不一样。

现在的拓扑

纯文本
互联网

光猫(桥接)

TP-LINK 主路由(拨号 + DHCP + WiFi)
  │ 192.168.0.1
  ├── LAN1 ──── NAS (192.168.0.10)
  ├── LAN2 ──── R2S 旁路由 (192.168.0.2)
  ├── LAN3 ──── 树莓派 (192.168.0.3)
  └── WiFi ──── 终端们

终端想用旁路由的功能(科学上网、AdGuard Home 等),就手动指定网关 192.168.0.2。不想用就默认 DHCP 拿到的 192.168.0.1灵活切换

DHCP 强制下发旁路由网关(进阶)

不想每个设备都手动配?主路由的 DHCP 里能加 Option:

bash
# TP-LINK 类(不同固件位置不一样)
# DHCP 服务器 → 高级 → Option 3(路由器/网关)
# 填: 192.168.0.2

这样所有 DHCP 拿 IP 的设备,网关都是旁路由。省事,但全家流量都过旁路由,性能压力大时主路由更累。我现在是混用——需要旁路由功能的设备手动配,其他设备用主路由默认。

写在最后

旁路由的最大优点是折腾不影响主网络,最大缺点是不强制接管。理解了这两点,剩下的就是命令行

如果只是需要广告过滤,旁路由不是必须,直接在主路由上装 AdGuard Home 或者 Pi-hole 就行(参考之前那篇)。但如果想科学上网、去广告、流量监控、DDNS 一把抓,旁路由是甜蜜点

END