OpenWrt 完全指南 2026:软路由刷机、WiFi 配置、插件安装、Docker 部署

OpenWrt 是一款免费开源的路由器操作系统,基于 Linux 内核开发,广泛应用于软路由、硬路由以及各种嵌入式网络设备。与传统路由器固件不同,OpenWrt 提供了一个完全可写的、带软件包管理的文件系统,让你可以自由安装各种应用来扩展路由器功能,彻底摆脱厂商限制。

作为目前最受欢迎的开源路由系统之一,OpenWrt 拥有活跃的开发者社区和丰富的插件生态,支持超过 1000 个软件包。无论是想把普通路由器改造成智能软路由,还是搭建家庭 NAS、广告过滤,OpenWrt 都能满足你的需求。

准备工作

硬件要求

选择用于 OpenWrt 的路由器时,建议寻找具有大于 8MB 闪存和大于 64MB 内存的设备,以确保操作系统和 Web 管理界面(LuCI)的全部功能正常运行。

固件选择

必须为路由器的特定型号和硬件版本选择正确的固件文件。例如 TP-Link WR841N 硬件版本 8 必须使用对应版本固件,使用错误的文件可能会"砖化"设备。正确的固件文件通常以 factory.bin 结尾。

你可以在 OpenWrt 官方固件选择器 中查询你的设备支持的固件版本。

安装 OpenWrt 固件

刷写步骤

刷写 OpenWrt 固件通过路由器原厂的 Web 管理界面完成:

使用以太网线连接电脑和路由器(不要用 WiFi 刷固件)

登录原厂管理界面

进入「系统工具」→「固件升级」页面

选择下载好的 OpenWrt factory.bin 固件文件

点击升级,等待路由器重启

⚠️ 重要: 刷写过程中切勿断电或拔线,否则可能导致路由器变砖。

初始访问

刷写完成后,通过网线连接路由器,浏览器访问 http://192.168.1.1 即可进入 OpenWrt 的 Web 管理界面(LuCI)。首次登录默认没有密码,直接点击登录即可。

安全加固与基础设置

安装 OpenWrt 后,第一件事应该是安全加固:

设置 root 密码

进入「系统」→「管理权」

在「路由器密码」栏设置新的 root 密码

点击「保存并应用」

开启 WiFi

默认情况下,OpenWrt 的无线功能是关闭的,需要手动开启:

进入「网络」→「无线」

点击无线设备对应的「编辑」按钮

勾选「启用无线」

在「无线安全」标签页中设置加密方式(推荐 WPA2-PSK)和密码

点击「保存并应用」

更改 LAN IP 地址

如果你的网络中已有其他路由器使用 192.168.1.1,需要更改 OpenWrt 的 LAN IP 避免冲突:

进入「网络」→「接口」→「LAN」→「编辑」

修改 IPv4 地址(例如改为 192.168.9.1)

点击「保存并应用」

重要: 同时修改 DHCP 设置,确保分配的 IP 范围与新 LAN IP 在同一网段

更改后需要使用新 IP 重新登录管理界面。

基本网络配置

DHCP 租约

在「状态」→「DHCP 租约」中可以查看所有已连接设备及其 IP 分配情况。

网络接口

OpenWrt 支持多种接口协议:

协议

说明

DHCP

自动从上级路由器获取 IP,最常用

Static(静态)

手动设置 IP 地址、子网掩码和网关

PPPoE

拨号上网,需要输入运营商提供的账号密码

端口转发

在「网络」→「防火墙」→「端口转发」中可以设置端口转发规则,将外部请求转发到内网服务器。

无线客户端模式(中继/桥接)

OpenWrt 可以配置为无线客户端,连接到现有 WiFi 网络后将连接共享给 LAN 上的有线设备。此功能常用于扩展现有网络覆盖范围:

进入「网络」→「无线」

点击「扫描」搜索可用的 WiFi 信号

选择目标网络,点击「加入网络」

配置模式为「客户端」

设置无线安全信息(密码等)

保存并应用

系统日志

OpenWrt 存储了详细的系统日志,可以实时查看网络运行状态,包括哪些设备获取了 IP 地址、系统活动等。

在 LuCI 中通过「状态」→「系统日志」查看,或通过 SSH 执行 logread 命令。

LuCI 插件推荐

OpenWrt 的强大之处在于丰富的插件生态。以下是一些实用的 LuCI 插件:

插件

功能

luci-app-statistics

路由器历史数据图表,监控 CPU、RAM、网络流量等

luci-app-firewall

可视化防火墙管理

luci-app-adblock

广告过滤,自动屏蔽广告域名

luci-app-upnp

UPnP 支持,自动端口映射

安装插件可以通过 SSH 执行:

opkg update

opkg install luci-app-statistics

或在 LuCI 的「系统」→「软件包」中搜索安装。

高级配置

旁路由配置指南

旁路由(Single-Arm Router)是软路由常见的部署模式,不需要替换主路由,只需将 OpenWrt 作为旁路设备接入现有网络。

为什么需要旁路由?

不破坏现有网络:主路由继续负责 DHCP 和 NAT,OpenWrt 作为旁路提供额外功能

灵活切换:需要时切换网关到 OpenWrt,不需要时保持原样

适合家庭/小企业:一台 x86 小主机 + 主路由器即可部署

旁路由网络配置

进入「网络」→「接口」→「LAN」→「编辑」

修改以下设置:

- IPv4 地址:设置为主路由同网段的 IP,如主路由 192.168.1.1,旁路由设为 192.168.1.2

- 子网掩码:255.255.255.0

- 网关:指向主路由 IP,如 192.168.1.1

- DNS:使用公共 DNS 如 223.5.5.5(阿里)或 119.29.29.29(腾讯)

关闭 DHCP 服务:在「DHCP 服务器」标签页中勾选「忽略此接口」

点击「保存并应用」

客户端使用旁路由

有两种方式让设备通过旁路由上网:

方式一:手动指定网关(推荐)

- 在需要走旁路由的设备上,手动设置网关为旁路由 IP(如 192.168.1.2)

- 适合只有部分设备需要特殊功能的场景

方式二:主路由 DHCP 指向旁路由

- 在主路由的 DHCP 设置中,将默认网关指向旁路由 IP

- 所有设备自动走旁路由,适合全屋智能/广告过滤等场景

Docker 容器部署

OpenWrt 支持运行 Docker 容器,可以在路由器上部署各种服务。

安装 Docker

# 更新软件源

opkg update

# 安装 Docker 相关包

opkg install docker docker-cli luci-app-dockerman

# 启动 Docker 服务

/etc/init.d/dockerd enable

/etc/init.d/dockerd start

安装完成后,可以在 LuCI 界面中看到「Docker」菜单,通过 Web 界面管理容器。

常用 Docker 容器部署

部署 AdGuard Home(广告过滤):

docker run -d \

--name adguardhome \

--restart unless-stopped \

-p 53:53/tcp -p 53:53/udp \

-p 80:80/tcp -p 3000:3000/tcp \

-v /etc/adguardhome/work:/opt/adguardhome/work \

-v /etc/adguardhome/conf:/opt/adguardhome/conf \

adguard/adguardhome

部署 Home Assistant(智能家居):

docker run -d \

--name homeassistant \

--restart unless-stopped \

--network host \

-v /etc/homeassistant:/config \

ghcr.io/home-assistant/home-assistant:stable

部署 Aria2(下载器):

docker run -d \

--name aria2-pro \

--restart unless-stopped \

-p 6800:6800 \

-p 6880:6880 \

-e PUID=1000 -e PGID=1000 \

-e RPC_SECRET=your-secret-token \

-v /mnt/downloads:/downloads \

p3terx/aria2-pro

注意: 在路由器上运行 Docker 需要考虑硬件性能,建议至少 2GB 内存 + 8GB 存储的设备。

多拨与负载均衡

多拨(Multi-WAN)允许 OpenWrt 同时使用多个宽带连接,提升总带宽或实现冗余。

多拨配置

安装多拨相关包:

opkg update

opkg install luci-app-mwan3

进入「网络」→「接口」,添加多个 WAN 接口:

- WAN1:连接宽带 1(如 eth1)

- WAN2:连接宽带 2(如 eth2)

进入「系统」→「负载均衡(MWAN3)」配置策略:

- 均衡负载:流量按比例分配到多个 WAN

- 主备模式:主 WAN 故障时自动切换到备用 WAN

- 按策略分流:特定 IP/端口走指定 WAN

MWAN3 均衡配置示例

# 查看 WAN 接口状态

mwan3 status

# 查看策略

mwan3 policy

广告过滤方案

OpenWrt 上实现广告过滤有多种方案:

方案一:AdBlock(轻量级)

opkg install luci-app-adblock

AdBlock 通过修改 DNS 解析,将广告域名指向 0.0.0.0,实现去广告。配置简单,资源占用低。

方案二:AdGuard Home(推荐)

通过 Docker 部署(见上文),功能更强大:

- 支持自定义过滤规则

- 提供详细的查询日志

- 支持家长控制

- 可设置上游 DNS

方案三:PassWall / OpenClash

适用于需要特殊网络需求的用户,支持多种代理协议和分流规则。

# 以 PassWall 为例

opkg install luci-app-passwall

说明: 这些工具仅供技术研究和合法用途使用,请遵守当地法律法规。

配置文件结构

OpenWrt 的配置文件使用节和选项/值结构,位于 /etc/config/ 目录下。

通用语法:config [""] 用于定义节,option "" 用于定义选项

这些文件由 UCI(Unified Configuration Interface)系统解析

网络配置文件

网络接口配置存储在 /etc/config/network 中,可设置为以下协议:

none — 不配置

static — 静态 IP(需要设置 ipaddr 和 netmask)

dhcp — 自动获取

pppoe — 拨号上网

交换机与 VLAN 配置

OpenWrt 支持交换机配置以设置 VLAN:

交换机配置存储在 /etc/config/network 中

在 Broadcom 硬件上,节名称需要为 eth0

每个 VLAN 命名为 vlan,其中 n 是 VLAN 号

端口标记:*(默认 VLAN)、u(未标记)、t(已标记)

Broadcom 硬件上的 CPU 端口为端口 5

无线配置(命令行)

WiFi 设置在 /etc/config/wireless 中配置,每个无线驱动程序在 /lib/wifi/.sh 中有对应配置文件。

常见配置选项:

设备级: distance、mode、diversity、rxantenna、txantenna、txpower

接口级: network、device、mode、ssid、bssid

支持的无线模式包括:接入点(AP)、客户端(Client)、Ad-hoc、监视器(Monitor)和 WDS 点对点。

802.1x 身份验证

OpenWrt 支持 802.1x 身份验证(客户端和接入点配置),EAP 类型支持 TLS、TTLS 和 PEAP。

WAN 和 WAN6 接口

WAN: IPv4 上游连接

WAN6: IPv6 上游连接

LAN: 处理下游 IPv4 和 IPv6,无需单独的 LAN6 接口

Hotplug 热插拔

可以通过 hotplug 脚本根据硬件事件动态配置 OpenWrt,例如 USB 设备插入时自动挂载。

Init 脚本

所有系统服务的启动脚本位于 /etc/init.d/ 下,使用 /etc/rc.common 作为包装器。

常用命令:

/etc/init.d/ enable # 开机自启

/etc/init.d/ start # 立即启动

/etc/init.d/ stop # 停止服务

/etc/init.d/ restart # 重启服务

其他实用信息

SSH 访问

通过 SSH 可以完成 OpenWrt 的命令行管理:

ssh root@192.168.1.1

SSH 访问需要在「系统」→「管理权」→「SSH 访问」中开启。

文本编辑器

vi 和 nano 可用于在命令行中编辑配置文件。推荐使用 nano,对新手更友好:

opkg install nano

nano /etc/config/network

Windows 管理工具

从 Windows 管理 OpenWrt 可以使用以下工具:

PuTTY — SSH 客户端

WinSCP — SFTP 文件传输

SmarTTY — 现代化 SSH 客户端

cmder — 增强版命令行

开发和自定义(进阶)

📌 本节面向开发者,如果你只是把 OpenWrt 作为路由器使用,可以跳过本节。

构建系统

OpenWrt 构建系统使开发人员能够使用交叉编译创建自定义固件映像。

获取源代码

git clone https://git.openwrt.org/openwrt/openwrt.git

cd openwrt

主要目录结构:

目录

说明

tools/

构建工具

toolchain/

交叉编译工具链

package/

软件包定义

target/

目标平台配置

配置和构建

./scripts/feeds update -a # 更新软件源

./scripts/feeds install -a # 安装软件源

make menuconfig # 配置构建:选择平台、工具链和软件包

make -j$(nproc) # 开始编译

软件包

OpenWrt 固件中的几乎所有内容都是 .ipk 格式的软件包,可以自由添加或删除。

创建自定义软件包

通过创建 Makefile 来定义一个新的软件包:

include $(TOPDIR)/rules.mk

PKG_NAME:=my-package

PKG_VERSION:=1.0

PKG_RELEASE:=1

include $(INCLUDE_DIR)/package.mk

define Package/my-package

SECTION:=utils

CATEGORY:=Utilities

TITLE:=My custom package

endef

define Package/my-package/install

$(INSTALL_DIR) $(1)/usr/bin

$(INSTALL_BIN) ./files/my-script $(1)/usr/bin/

endef

$(eval $(call BuildPackage,my-package))

可配置选项包括:PKG_NAME、PKG_VERSION、PKG_RELEASE、PKG_SOURCE、PKG_SOURCE_URL、PKG_MD5SUM 等。

创建内核模块软件包

通过定义 KernelPackage 节来为内核模块创建软件包,可配置选项包括:TITLE、DESCRIPTION、SUBMENU、KCONFIG、FILES 和 AUTOLOAD。

故障排除

# 诊断软件包是否显示在 menuconfig 中

make -C package/ DUMP=1 V=99

# 清理特定软件包

make package//clean V=99

# 安装特定软件包

make package//install V=99

添加新平台支持

将 OpenWrt 移植到新设备的技术包括:

操作系统指纹识别(nmap 等)

端口扫描

分析二进制固件映像

检查闪存容量

连接串口调试

找到设备信息和开发工具包后,可以为 OpenWrt 调整内核补丁和二进制驱动,开发新的闪存映射驱动和固件构建工具。

报告 Bug

OpenWrt 使用 GitHub Issues 进行 Bug 报告和功能请求。开发者可以关闭、接受和修复问题工单。

对比:OpenWrt vs DD-WRT vs pfSense vs MikroTik RouterOS

维度

OpenWrt

DD-WRT

pfSense

MikroTik RouterOS

开源

✅ 完全开源(GPL)

✅ 开源

✅ 开源(BSD)

❌ 商业软件

价格

免费

免费

免费

$45-295(按授权等级)

硬件支持

极广泛(1000+ 设备)

广泛(700+ 设备)

仅 x86/APU

仅 MikroTik 硬件

插件生态

1000+ 软件包

有限

丰富(FreeBSD ports)

内置功能丰富

Web 界面

LuCI(轻量)

自研 Web 界面

专业 Web 界面

WinBox / WebFig

Docker 支持

✅ 可运行 Docker

⚠️ 有限

学习曲线

中等

中等

较陡

陡峭

适合场景

软路由/家庭/小企业

家用路由

企业防火墙

企业网络/ISP

社区活跃度

⭐⭐⭐⭐⭐

⭐⭐⭐

⭐⭐⭐⭐

⭐⭐⭐

选择建议:

- OpenWrt — 软路由刷机首选,硬件兼容性最广,插件生态最丰富

- DD-WRT — 老牌子路由固件,适合不想折腾但需要比原厂更强功能的用户

- pfSense — 专业级防火墙/路由方案,适合企业网络

- MikroTik RouterOS — 企业网络/ISP 级别,功能强大但需要专业培训

OpenWrt 常见问题 FAQ

Q1: OpenWrt 是什么?和普通路由器固件有什么区别?

A: OpenWrt 是一个基于 Linux 内核的开源路由器操作系统。与普通路由器固件的最大区别在于:

- 完全可定制:OpenWrt 提供带软件包管理的完整文件系统,可以自由安装/卸载软件

- 开源透明:代码完全公开,无后门,社区驱动开发

- 硬件兼容性广:支持超过 1000 种路由器设备

- 高级功能:支持 Docker 容器、VPN、QoS、广告过滤、软路由等

Q2: 哪些路由器可以刷 OpenWrt?

A: OpenWrt 支持非常广泛的硬件设备:

- 家用路由器:TP-Link、Netgear、Linksys、ASUS、Xiaomi 等

- x86 软路由:Intel/AMD x86 平台的小主机、工控机

- 开发板:Raspberry Pi、Banana Pi 等 SBC

建议访问 OpenWrt 固件选择器 输入你的设备型号查询是否支持。

Q3: 刷 OpenWrt 会变砖吗?如何救砖?

A: 刷机有风险,但遵循正确步骤通常安全:

- 降低风险:使用正确的固件版本、刷写过程不断电、先备份原厂固件

- 救砖方法:

1. TFTP 恢复:大多数路由器支持 TFTP 恢复模式

2. 串口调试:通过 TTL 串口连接修复

3. CFE/Bootloader 模式:进入 bootloader 重新刷写

4. 编程器硬刷:拆机用编程器直接写入 flash 芯片

建议: 刷机前先备份原厂固件,并了解你设备的救砖方法。

Q4: OpenWrt 支持 Docker 吗?

A: 是的,OpenWrt 支持运行 Docker 容器。需要安装 dockerd 和相关依赖:

opkg install docker docker-cli luci-app-dockerman

建议在至少 2GB 内存的设备上运行 Docker 容器,以确保稳定性和性能。

Q5: OpenWrt 和 LEDE 是什么关系?

A: LEDE(Linux Embedded Development Environment)是 OpenWrt 的一个分支。2016 年,部分开发者因开发流程分歧创建了 LEDE 项目。2018 年,LEDE 和 OpenWrt 重新合并,现在统一使用 OpenWrt 名称。你现在看到的 OpenWrt 实际上包含了 LEDE 时期的改进成果。如果你在旧资料中看到 LEDE,实际上就是 OpenWrt。