Openwrt相关
一、整体架构
光猫(桥接模式,IP:8080进去管理员模式网页)+ 交换机 + x64电脑(单臂路由,安装PVE系统,虚拟化Openwrt路由) + 若干PC、AP等
整体架构如图:

图片代码
flowchart TD
classDef wanNode fill:#ffebee,stroke:#c62828,stroke-width:2px,color:#333
classDef lanNode fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px,color:#333
classDef switchNode fill:#e3f2fd,stroke:#1565c0,stroke-width:2px,color:#333
classDef pveNode fill:#fff3e0,stroke:#e65100,stroke-width:2px,color:#333,stroke-dasharray: 4 4
subgraph WAN [ 外部网络 - VLAN 2]
Modem["光猫 (桥接模式)<br/>IP: 192.168.1.1<br/>(仅做光电转换)"]:::wanNode
end
subgraph CORE [ 核心交换]
Switch{"TP-Link 交换机<br/>IP: 192.168.10.3<br/>网关: 192.168.10.1"}:::switchNode
end
subgraph PVE [ PVE 笔记本 - 单臂路由核心]
direction TB
Openwrt[" Openwrt (主路由)<br/>IP: 192.168.10.1<br/>(内网网关 & PPPoE拨号 & DHCP服务端)"]:::pveNode
PVE_Host[" PVE 宿主机<br/>IP: 192.168.10.2<br/>网关: 192.168.10.1"]:::pveNode
end
subgraph LAN [ 内网设备 - VLAN 1 / 默认]
direction LR
PC[" 台式机<br/>IP: 192.168.10.x<br/> (IP 自动分配)"]:::lanNode
AP[" TP-Link 路由器<br/>AP,有线中继<br/>IP: 192.168.10.x"]:::lanNode
Devices[" 其他设备<br/>IP: 192.168.10.100~250<br/>(由Openwrt分配)"]:::lanNode
end
Modem ===| 1号口 - 外网数据 / VLAN 2| Switch
Switch ===| 2号口 Trunk口 - 内外网复用| Openwrt
Switch -.-|内部虚拟网桥 - 管理流量 / VLAN 1| PVE_Host
Switch -->| 3号口 - 内网数据 / VLAN 1| PC
Switch -->| 4号口 - 内网数据 / VLAN 1| AP
Switch -->| 预留口 - 内网数据 / VLAN 1| Devices
(一)IP地址分配
| 设备角色 | 设备名称 | IP地址 | 网关 | 工作模式/说明 |
|---|
| 光猫 | 光猫(桥接) | 192.168.1.1 | — | 桥接模式,仅做光电转换,无需管理,不用修改光猫的管理IP |
| 主路由 | Openwrt | 192.168.10.1 | — | 内网网关,启用DHCP服务器,修改 vi /etc/config/network |
| 虚拟化宿主机 | PVE | 192.168.10.2 | 192.168.10.1 | 运行虚拟机容器,网关指向主路由,修改 vi /etc/network/interfaces |
| 网络交换 | 交换机 | 192.168.10.3 | 192.168.10.1 | 二层交换,管理IP指向主路由网关,在交换机面板可以修改管理IP |
| 终端设备池 | 台式机/其他设备 | 192.168.10.100 - 250 | 192.168.10.1 | 由Openwrt 的DHCP自动分配,网关同主路由 |
(二)物理接线指南
| 交换机端口 | 连接设备 | 数据流向 | 端口模式 | 说明 |
|---|
| 1号口 | 光猫(千兆网口) | 外网数据 | Access / WAN | 仅走外网流量,不做VLAN标记 |
| 2号口 | PVE笔记本 | 内外网数据同时走 | Trunk | 允许内外网VLAN通过,需在PVE内做VLAN子接口 |
| 3号口 | 台式机 | 内网数据 | Access (内网VLAN) | 仅走内网流量 |
| 其他口 | 预留给后续内网设备 | 内网数据 | Access (内网VLAN) | 待扩展使用 |
二、下载软件
路由 ImmortalWrt 下载地址(跟 Openwrt 一样的),
download link,
download link2,对于我的情况,搜索:x86/64,选择
COMBINED (SQUASHFS-COMBINED.IMG.GZ),
| 名词 | 类别/本质 | 主要作用 | 读写特性 | 典型应用场景 |
|---|
| EFI | 固件接口标准(引导层) | 负责开机硬件初始化,并引导加载操作系统内核 | 规范/协议(非存储格式) | 现代电脑(替代BIOS)的启动过程;UEFI引导分区(ESP)中的.efi启动文件 |
| COMBINED | 镜像打包方式(固件包) | 将引导器、内核、文件系统合并成一个单一文件,便于烧录 | 只读(烧录后不可修改镜像本身) | 路由器固件(如OpenWrt)、嵌入式设备的一体化刷机包;制作即写即用的启动U盘 |
| SquashFS | 压缩文件系统(镜像格式) | 将系统核心文件高度压缩并挂载为只读目录,节省存储空间 | 只读(运行时不写入,重启还原) | Linux Live CD/USB系统;Android的/system分区;路由器的根文件系统(防止核心文件损坏) |
| ext4 | 磁盘文件系统(存储格式) | 管理硬盘/固态硬盘上的数据存储规则,支持大文件和日志功能 | 可读写(支持增删改,永久保存) | Linux系统的/home用户目录、/var数据目录;作为SquashFS的“数据存储区”搭配使用 |
- COMBINED 是一个 “包裹”(打包方式),里面可以装 SquashFS(只读核心)或 ext4(可读写数据),具体取决于固件制作者的设定。
- EFI 是这个“包裹”的 “打开方式”(引导协议),告诉电脑如何读取包裹里的启动文件。
- SquashFS 和 ext4 是包裹内部的 “存储格式”,一个专供系统运行且只读,另一个专供用户数据存储且可写。
追求稳定还原(不怕折腾)选 SquashFS 版;需要直接修改系统底层文件选 ext4 版;不确定选哪个时,一般选 COMBINED(EFI)版本兼容性最好,我选择的是 SQUASHFS-COMBINED
三、配置交换机 VLAN
两个需要配置,
802.1Q VLAN设置 和
802.1Q VLAN PVID设置浏览器访问交换机管理后台(我的 SG-2005),VLAN 里面设置 -> 第三个 802.1Q VLAN设置 -> 启用
(一)VLAN 2
先
配置 VLAN 2,VLAN 输入 2,VLAN 描述填入 wan,端口选择
| 端口 | 角色 | 状态 | 说明 |
|---|
| 1 | UnTagged | ✅ 成员 | 数据包不带 VLAN 标签进出(如连接 PC/普通设备) |
| 2 | Tagged | ✅ 成员 | 数据包带 VLAN 2 标签通过(如连接另一台交换机/Trunk) |
| 3 | Non-Member | ❌ 非成员 | 不属于 VLAN 2,不参与转发 |
| 4 | Non-Member | ❌ 非成员 | 不属于 VLAN 2,不参与转发 |
| 5 | Non-Member | ❌ 非成员 | 不属于 VLAN 2,不参与转发 |
(二)VLAN 1
后
配置 VLAN 1,VLAN 输入 1,VLAN 描述填入 lan,端口选择
| 端口 | 角色 | 状态 | 说明 |
|---|
| 1 | Non-Member | ❌ 非成员 | 不属于 VLAN 1,不参与转发 |
| 2 | UnTagged | ✅ 成员 | 数据包不带 VLAN 标签进出 |
| 3 | UnTagged | ✅ 成员 | 数据包不带 VLAN 标签进出 |
| 4 | UnTagged | ✅ 成员 | 数据包不带 VLAN 标签进出 |
| 5 | UnTagged | ✅ 成员 | 数据包不带 VLAN 标签进出 |
(三)PVID
接下来,
设置 802.1Q VLAN PVID,根据 VLAN 1 中配置
| 端口 | PVID | 说明 |
|---|
| 1 | 2 | 属于 VLAN 2,接收无标签数据包时打上 VLAN 2 标签 |
| 2 | 1 | 属于 VLAN 1,接收无标签数据包时打上 VLAN 1 标签 |
| 3 | 1 | 属于 VLAN 1,接收无标签数据包时打上 VLAN 1 标签 |
| 4 | 1 | 属于 VLAN 1,接收无标签数据包时打上 VLAN 1 标签 |
| 5 | 1 | 属于 VLAN 1,接收无标签数据包时打上 VLAN 1 标签 |
最后记得,
配置保存四、在 PVE 中安装 ImmortalWrt
(一)PVE 中操作
| 步骤 | 操作 |
|---|
| 常规 | 对于当前节点,pve01,右键点击选择,创建虚拟机 → 添加一个名称(例如 openwrt),记住 VM ID(例如 100) |
| 操作系统 | 不使用任何介质 |
| 系统 | BIOS 如果是 SquashFS,则默认 SeaBIOS 就行,如果是 EFI,则选择 OVMF (UEFI) |
| 磁盘 | 删除默认的磁盘(例如 scsi0) |
| CPU | 可以调整核心,类型可以选择 host |
| 内存 | 内存按实际填 |
| 网络 | 默认 vmbr0,不用填 VLAN 标签 |
创建后,还有几个步骤
- (1)在 PVE 控制台中,执行
qm importdisk 【替换为VM ID,例如 100】 /var/lib/vz/template/iso/【替换为对应 img,xxx-x86-64-squashfs-combined.img】 local-lvm,local-lvm 是存储名,执行后会有 successful
- 完整命令 qm importdisk 100 /var/lib/vz/template/iso/immortalwrt-24.10.6-x86-64-generic-squashfs-combined.img local-lvm
- (2)在 openwrt -> 硬件 -> 选择
硬盘,填入(如果存储空余的话,可以磁盘操作 -> 调整大小 -> 增量 10G) - (3)在 openwrt -> 硬件 ->
新增,网络设备 -> 还是桥接(vmbr0),VLAN 标签填入 2 (之前初始那个网络设备,VLAN 标签不用填) - (4)在 openwrt -> 选项 ->
引导顺序,取消默认的全部(eth0 等),只选择 scsi0
最后
启动 Openwrt五、网络接口配置
只需要两个,lan 口和 wan 口(都是小写)
lan 口,协议为静态地址,设备选择 以太网适配器 eth0(lan),IPv4 地址为 Openert 地址(192.168.10.1),掩码 255.255.255.0。防火墙设置 lan,DHCP 打开
wan 口,协议为 PPPoE,设备选择 以太网适配器 eth1(wan),填入宽带账号密码,防火墙设置 wan,DHCP 关闭(忽略)
Tips
笔记本电脑关闭显示屏:
vbetool dpms offPVE调整CPU频率:
- 安装软件:
apt update && apt install linux-cpupower - 低频:
cpupower -c all frequency-set -g powersave - 平滑:
cpupower -c all frequency-set -g conservative - 高频:
cpupower -c all frequency-set -g performance - 可视化查看:
watch -n 1 cpupower monitor
修改 Openwrt 默认分配的 DHCP 租约
vim /etc/config/dhcp
config dhcp 'lan'
option interface 'lan'
option start '100'
option limit '200'
option leasetime 'infinite' # 将这里的值修改为 'infinite'
# 重启
service dnsmasq restart
# 修改动态租约记录,需重启
vim /tmp/dhcp.leases
常用插件:| 插件名称 | 描述 |
|---|
| bandix | 网络监控、流量监控、连接监控、DNS监控 |
| passwall | 科学 |
| Argon | 皮肤 |
最后编辑于:2026 年 08 月 06 日 11:19