Files
StudyDiary/10-WebClipper/OpenWrt旁路由.md
T
2026-07-23 20:36:13 +08:00

76 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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/#)