Skip to content

OpenWrt 生态概览

什么是 OpenWrt

OpenWrt 是一个面向嵌入式设备的 Linux 发行版,最初为路由器设计,现已广泛应用于工业网关、IoT 边缘节点、储能 EMS 终端等场景。与厂商固件不同,OpenWrt 提供完整的 Linux 环境和包管理系统,允许用户深度定制。

官方网站:https://openwrt.org
代码仓库:https://github.com/openwrt/openwrt
当前稳定版:23.05.x(基于 Linux 5.15 LTS)

核心特性

特性说明
包管理opkg,支持在线安装 3000+ 软件包
配置系统UCI(统一配置接口),所有配置集中在 /etc/config/
网络框架netifd,统一管理网络接口
防火墙nftables(新版)/ iptables,通过 UCI 配置
Web 管理LuCI,基于 Lua/uHTTPd
构建系统OpenWrt Build System(基于 Makefile)

生态版图

OpenWrt 生态
├── 硬件支持
│   ├── x86/x86_64(工控机、软路由)
│   ├── ARM(树莓派、NXP i.MX、Rockchip)
│   ├── MIPS(传统路由器芯片)
│   └── RISC-V(新兴平台)

├── 工业/IoT 扩展
│   ├── kmod-usb-serial(串口转 USB)
│   ├── kmod-can(CAN 总线)
│   ├── mosquitto(MQTT Broker)
│   ├── node-red(可视化流程编排)
│   └── python3(脚本自动化)

├── 网络协议栈
│   ├── 有线:eth, VLAN (802.1Q), PPPoE
│   ├── 无线:mac80211, hostapd, wpa_supplicant
│   ├── 隧道:WireGuard, OpenVPN, GRE
│   └── 路由:OSPF, BGP (via FRRouting)

└── 管理接口
    ├── UCI CLI
    ├── LuCI Web UI
    ├── ubus (IPC 总线)
    └── NETCONF/YANG (企业级)

典型应用场景

1. 工业网关

OpenWrt 作为工业网关操作系统,承担以下职责:

  • 协议转换:Modbus RTU → MQTT,IEC 104 → HTTP/REST
  • 边缘计算:本地数据预处理、报警判断、数据缓存
  • 安全隔离:IT/OT 网络隔离,防火墙策略
  • 远程运维:VPN 接入、远程 SSH、OTA 升级

2. 储能 EMS 终端

储能柜
  └── RS485/CAN → OpenWrt 网关
        ├── Modbus 采集 BMS 数据
        ├── IEC 104 上报调度中心
        ├── MQTT 推送云平台
        └── 本地 Web 监控(LuCI 扩展)

3. 5G/4G 边缘节点

结合 ModemManager + QMI/MBIM 驱动,OpenWrt 可管理蜂窝模块,实现:

  • 双 SIM 卡自动切换
  • 信号质量监控
  • 数据流量统计

主流发行版对比

发行版基础特点适用场景
OpenWrt 官方Linux社区驱动,包最全通用网关
LEDE(已合并)OpenWrt已回归主线-
Turris OSOpenWrt安全增强,自动更新家庭/企业
Gl.iNet SDKOpenWrt商业支持,快速开发商业产品
厂商定制版OpenWrt针对特定硬件优化OEM 产品

版本选择建议

生产环境  → 23.05.x(当前稳定版,长期维护)
开发测试  → snapshot(最新功能,不稳定)
老硬件    → 21.02.x(兼容性更好)
工业定制  → 基于稳定版 fork,锁定内核版本

快速上手

刷机流程(以 x86 为例)

bash
# 1. 下载镜像
wget https://downloads.openwrt.org/releases/23.05.3/targets/x86/64/openwrt-23.05.3-x86-64-generic-ext4-combined.img.gz

# 2. 解压
gunzip openwrt-23.05.3-x86-64-generic-ext4-combined.img.gz

# 3. 写入磁盘(Linux)
dd if=openwrt-23.05.3-x86-64-generic-ext4-combined.img of=/dev/sdX bs=4M status=progress

# 4. 首次登录(默认无密码)
ssh root@192.168.1.1

基础配置

bash
# 设置 root 密码
passwd

# 配置 WAN 口
uci set network.wan.proto='dhcp'
uci commit network
/etc/init.d/network restart

# 安装常用工具
opkg update
opkg install nano htop tcpdump mosquitto-nossl

延伸阅读

褚成志的IoT笔记