---
url: https://eoht.net/esxi/openwrt/bypass.md
description: >-
  本文解释旁路由（旁路网关）的工作方式与优缺点，并以 OpenWrt/iStoreOS 为例，分别说明设备手动指定网关和由 DHCP 统一下发网关与 DNS
  的配置步骤、地址规划及恢复方法。
---

# OpenWrt/iStoreOS 旁路由设置：旁路网关原理与两种配置 {#openwrt-bypass-router-setup}

旁路由通常指接入主路由 LAN 的旁路网关，用来分担特定网络功能。本文先说明其原理和适用场景，再介绍单设备手动选择网关、全网设备通过 DHCP 使用旁路由两种配置。

## 旁路由（旁路网关）是什么？ {#bypass-router-overview}

我们经常在各种文章和视频里面看到听到 `旁路由` 这个词，但并不清楚他究竟是何方神圣。其实 `旁路由` 这并不是一个严谨的词汇，在官方的技术用语里，正确的叫法应该是 `旁路网关`（为了方便，后续将依旧以旁路由为准）。

而所谓的 `旁路网关` ，是指挂靠在主路由网络下的一个旁系网络，他分担了一部分路由器的功能，因此被大众简称为 `旁路由` ，本质上它是一个通过 LAN 口与主路由连接的一个客户端设备。

这种主旁路由构成的网络架构可以分成两种，一种是发烧友在软路由系统中，通过虚拟化的形式，安装两套路由系统，它们各司其职，在软件层面上形成了主旁网络架构。另一种就是通过使用两个实体路由器，通过连接和配置打造的硬件形式上的主旁网络结构。虽然他们形式上有一定区别，但这种双路由系统（硬件或虚拟化）的网络布局，殊途同归，最终目的都是为了将家庭网络带宽进行合理的分配利用，并提供更强的扩展性，以实现更多强大的功能。

## 旁路由模式的优缺点 {#bypass-router-benefits-and-drawbacks}

既然我们已经简单了解了什么是 `旁路由` ，那么为什么大家会使用这种方式来构建家庭网络呢？总结来说，旁路由的有以下优点：

* 分担功能——可将 DNS 过滤等服务交给另一台设备；是否改善体验取决于硬件、配置和流量路径，不能保证没有性能损耗
* 可扩展性——旁路由可以在对当前的网络架构影响最小的情况下，扩展出新的功能，且在配置阶段可以不影响他人使用网络，非常适合在城市里合租的人员优化自己的网络
* 多功能性——旁路由同样可以安装各种插件，扩展出很多实用的功能，增强上网体验，可以安装的插件可以参照之前的文章用这些 OpenWRT 插件来武装你的路由器

当然使用 `旁路由` 的时候也需要一定的网络基础知识和额外的硬件成本支出，最重要的是你需要有耐心和动力去折腾改善家中的网络状况，如果这些都不是问题，就可以开始动手了。

## 配置 OpenWrt/iStoreOS 旁路由 {#configure-bypass-router}

选择好了 `旁路由` 设备后，我们就需要配置它了。根据不同的 `旁路由` 设备，配置的方法也有很多种，这里就不一一赘述，主要介绍两种配置和操作都相对简单，且对当前网络构造影响最小的方案。

### 设备自行选择网关设备 {#per-device-gateway-selection}

这套方案配置方法非常简单，可以在不影响当前网络的情况下进行配置，配置完成后，不同的设备只需要自己在设备中修改网络信息就可以自行选择使用 `主路由` 或者 `旁路由` 上网，非常适合 `X漂` 人士改造自己合租屋的网络，只让自己的设备使用 `旁路由` 。具体的网络架构图如下：

![旁路由设置 =688x](https://i.eoht.net/docs/20240423222144.webp "设备自行选择网关设备")

他的配置和使用方式很简单，只需要以下几个步骤：

* 旁路由设备的 LAN 口连接主路由的 LAN 口，然后进入旁路由的配置界面
* 以 OpenWRT 系统为例，进入 `网络` - `接口` - `LAN 口`，在设置中 `协议` 选择 `静态地址` ，然后 `IPv4 地址` 设置为 `192.168.1.x`（与主路由网段相同但不冲突）
* `IPv4 网关` 填写主路由 IP（192.168.1.1），上游 DNS 使用可用的解析服务器；在旁路由 LAN 的 DHCP 服务器设置中勾选忽略接口，继续由主路由发放地址
* 需要使用 `旁路由` 的设备，只需要将网络设置中的 `网关` 和 `DNS` 填写成 `旁路由` 的 IP（192.168.1.x）；DNS 需要旁路由已运行并监听 DNS 服务，设备的静态 IP 也应避开动态地址池
* 需要管理 `旁路由` 时，在浏览器输入 `旁路由` 的 IP（192.168.1.x）即可进入管理页面

**路由器配置详情可参考下图：**

![旁路由设置 =688x](https://i.eoht.net/docs/20240423222307.webp "设备自行选择网关设备")

### 所有设备通过旁路由联网 {#route-all-devices-through-bypass-router}

全网统一使用旁路由，需要由 **一台 DHCP 服务器**向客户端下发旁路由的网关与 DNS。OpenWrt 的“强制 DHCP”只会忽略对其他 DHCP 服务器的检测，不能让客户端优先选择旁路由；主路由与旁路由同时发放不同租约时，客户端可能拿到不同网关。

下面以主路由 `192.168.1.1`、旁路由 `192.168.1.2`、掩码 `255.255.255.0` 为例。旁路由地址应固定，并排除在 DHCP 动态地址池之外；例如地址池可使用 `192.168.1.100` 至 `192.168.1.199`。先备份两台设备的配置，并保留一台电脑能用静态地址访问管理页。

![旁路由设置 =688x](https://i.eoht.net/docs/20240423222353.webp "旁路网关连接示意，DHCP角色以本文配置为准")

**方案 A：由主路由发放地址。** 主路由支持自定义 DHCP 网关与 DNS 时，保留主路由 DHCP，关闭旁路由 LAN 的 DHCP。将主路由下发的网关设置为 `192.168.1.2`，DNS 设置为旁路由实际运行 DNS 服务的地址。旁路由自身的上游网关仍是 `192.168.1.1`。

**方案 B：由旁路由发放地址。** 主路由不能自定义这些选项时，可关闭主路由的 DHCP，再开启旁路由 LAN 的 DHCP；确保同一广播域内没有其他设备发放地址。旁路由 LAN 保持 `192.168.1.2/24`，上游网关设为 `192.168.1.1`。在 DHCP 高级选项中分别填写：

```text
3,192.168.1.2
6,192.168.1.2
```

其中选项 `3` 是默认网关，`6` 是 DNS。只有旁路由确实在该地址提供 DNS 时，才能这样填写 DNS；不要让主路由和旁路由互相转发 DNS 形成循环。旁路由还需具备正确的 IPv4 转发、防火墙与目标服务配置，下发网关本身不会自动启用代理。

旧截图中的“强制”选项不能代替关闭另一台 DHCP 服务器：

![旁路由设置 =688x](https://i.eoht.net/docs/20240423222443.webp "旧版DHCP界面示例，使用前先确定唯一的DHCP服务器")

### 验证与恢复 {#verify-and-revert-bypass-router}

1. 让一台测试设备断开并重新连接网络，或主动更新 DHCP 租约。检查实际 IP、默认网关和 DNS，不能仅看路由器“保存成功”。
2. 在该设备上分别验证主路由管理页、普通网站、DNS 查询和需要旁路由处理的应用。确认后再让其他设备更新租约。
3. IPv6 的默认路由通过 RA 等机制获取，不由上述 IPv4 DHCP 选项控制。若网络启用了 IPv6，需要另行规划，不能声称所有 IPv6 流量也会经过旁路由。
4. 恢复方案 A 时，将主路由下发的网关/DNS改回原值；恢复方案 B 时，先停止旁路由 DHCP，再恢复主路由 DHCP。随后让客户端更新租约。不要直接拔掉旁路由就假定旧租约会立即失效。

本文按 [OpenWrt DHCP 配置说明](https://openwrt.org/docs/guide-user/base-system/dhcp)与 [DHCP 协议的租约选择流程](https://www.rfc-editor.org/rfc/rfc2131.html#section-3.1)整理。不同固件的界面名称可能不同，实施前应核对当前配置。
