--- title: "OpenWrt旁路由" source: "https://chenbuer.github.io/2024/08/27/OpenWrt%E6%97%81%E8%B7%AF%E7%94%B1/" author: - "[[陈不二]]" published: created: 2025-12-04 description: "谈技术也谈风月" tags: - "clippings" --- ### 一、ImmortalWRT系统及其安装 openwrt的一个分支,有好的软件源。 1. [固件选择器](https://firmware-selector.immortalwrt.org/) 2. [写盘工具refus](https://rufus.ie/) ,也可以用winPE 3. 安装的软件包 - luci-theme-argon(更换主题) - luci-i18n-ttyd-zh-cn(获得terminal) - 上网工具(选择打开其一即可) - luci-app-openclash - luci-i18n-passwall-zh-cn - luci-i18n-homeproxy-zh-cn ### 二、旁路由设置 #### 2.2 旁路由原理 本质是终端的网关设置:设置为主路由就不经过旁路由;设置为旁路由就经过旁路由,在旁路由上可以增加软件包或者一些其他的hook来封装原始数据包。 旁路由连接到主路由的lan口,这样一个网段内就有两个DHCP服务了。 **关闭主路由的DHCP服务,打开旁路由DHCP服务** ,那么其他接入的终端就从旁路由获取IP信息。DHCP获取到网关是DHCP服务器的IP,也就是旁路由的ip地址。这样,所有终端访问外网的流量先到网关(旁路由),旁路由再到它的网关(主路由),最终到互联网。 #### 2.2 设置分流规则 1. 配置规则。 网络 → 接口 → 编辑lan → DHCP服务器 → 高级设置 → DHCP选项,添加规则 ```shell tag:direct,3,10.0.0.1 # 3,指的是设置网关;direct是标签,可以随便写 tag:direct,6,10.0.0.1 # 6,指的是设置DNS tag:proxxy,3,10.0.0.2 tag:proxxy,6,10.0.0.2 ``` 2. 利用规则。 网络 → DHCP/DNS → 静态地址分配 → 选择终端,添加标签 #### 2.3 大部分终端走主路由,少部分终端走旁路由 设置规则为: ```shell tag:!proxy,3,10.0.0.1 tag:!proxy,6,10.0.0.1 ``` `!`:不是proxy标签的,网关和dns为主路由(10.0.0.1),标签为proxy的是默认的旁路由(10.0.0.2)。所以,只要指定 `走旁路由的终端` 的标签为proxy。 #### 2.4 防火墙设置 一定要把 `网络 → 防火墙 → 区域 → lan-wan(入站、出站、转发)` 的 `IP地址动态伪装` 给选上。不然 **网关为旁路由的终端无法上网** ,即使在旁路由上可以正常访问百度等外网。 和主路由类型有关系:主路由是openwrt的话,不打开也没关系。 另外,网络 → 防火墙 → 常规设置中的 `丢弃无效数据包` 这个选项不能勾选,不然网关为旁路由的终端不能上网。因为数据包出去的时候经过旁路由,但是响应回来的时候,都不经过旁路由,无法完成握手。 ### 三、相关概念 1. 固件版本分EXT4和SQUASHFS,他们之间什么联系与区别?还分FACTORY和SYSUPGRADE,他们之间又是什么关系? > SYSUPGRADE用于保留设置的升级,提供的是增量更新;FACTORY是完整映像,用于首次刷机。SQUASHFS和EXT4都是文件系统,SQUASHFS有一个layout层,可以恢复出厂设置。 ### 十、TODO: 1. 什么是layout层? 2. 用refus写入的系统只占用了很小的磁盘?为什么没有使用全部的磁盘空间?要是自己mount分区,是mount到哪个分区? 3. 什么是动态伪装? [▲](https://chenbuer.github.io/2024/08/27/OpenWrt%E6%97%81%E8%B7%AF%E7%94%B1/#)