插件生态:去广告、多拨、按设备限速等常用插件

OpenWrt 的灵魂在软件包。这一篇挑选家庭场景里最实用的几类插件:DNS 层去广告(AdGuard Home)、多 WAN 与负载均衡、按设备限速(SQM/QoS),顺带讲清「插件从哪装、怎么不装出问题」。所有用途均为家庭网络的合法管理。

装插件的两种姿势

姿势一:LuCI 图形界面。 系统 → 软件包 → 先点「刷新列表」(更新 opkg 索引)→ 搜索包名 → 安装。勾选「LuCI」分类能看到带网页界面的插件,装完通常要重启或重登才出现菜单。

姿势二:SSH 命令行。 电脑 ssh root@192.168.10.1(你的网关地址)进入 shell:

opkg update                 # 刷新软件源索引
opkg list | grep sqm        # 按关键词找包
opkg install luci-app-sqm   # 安装

注意:OpenWrt 25.12 系列起,包管理器由 opkg 换成了 apk(除依赖关系变化外用法类似),命令以你系统版本的官方文档为准。两种姿势是等价的,界面装不了或想批量装时用命令行更快。

存储提醒:插件装在路由器闪存里,空间紧张时安装会失败。买硬件时的 Flash/RAM 余量在这里兑现价值;x86 小主机则几乎无此烦恼。

DNS 去广告:AdGuard Home

去广告最干净的路径是在 DNS 层拦:广告域名直接解析失败,全家所有设备(包括不装任何软件的电视)自动生效。社区标准方案是 AdGuard Home——它有官方 OpenWrt 软件包,也可以跑在 NAS 的 Docker 上,本书倾向后者(NAS 性能更从容,管理也统一),两种部署效果相同。

原理与接线:

  1. AdGuard Home 监听一个 DNS 端口(默认值 53,若与 OpenWrt 自身 dnsmasq 冲突需改端口或改由 AdGuard 接管 53);
  2. OpenWrt 的 DHCP 下发 DNS 指向 AdGuard Home 所在地址;
  3. AdGuard Home 上游再指向公网 DNS(如 223.5.5.5、119.29.29.29 等公共 DNS)。

面板里能看到拦截统计与请求日志,按需把误拦的域名加入白名单即可。家用建议:先跑「观察模式」一两天,看拦截日志里有没有误伤(智能音箱、银行 App 偶发异常),再全面启用。

多 WAN:双宽带汇聚与切换

家里有两条宽带(或一条宽带 + 一条备用 4G/5G CPE)时,OpenWrt 的 mwan3(LuCI 包 luci-app-mwan3)提供多 WAN 支持:按比例分流、按设备绑定线路、故障自动切换。

配置思路(LuCI → 网络 → MultiWAN):

  • 在接口页先建好 wan1、wan2 两个 WAN 接口;
  • MultiWAN 里把两个接口加入同一个策略组,选「负载均衡」或「故障切换」;
  • 需要稳定低延迟的设备(如工作电脑)可单独绑定主线路。

注意多拨的前提是物理上有两条线路(两个 WAN 口或 VLAN 划分),「单线多拨」依赖运营商允许多 PPPoE 会话,各地政策不一,不保证可行,以当地运营商规则为准。mwan3 的会话级分流对单个大流量连接(如单线程下载)没有加速作用,它解决的是「总量」而不是「单连接」。

按设备限速:SQM 与简单规则

SQM(Smart Queue Management,包 luci-app-sqm)是解决「抢带宽」的正经方案:在 WAN 口启用后填入你的上下行带宽(略低于实测值,如标称 95%),SQM 用队列算法(默认 cake)压平缓冲膨胀,效果是多人同时使用时每条连接依然流畅。典型场景:家人看 4K 流媒体时,你的视频会议不掉线。

对「给熊孩子的平板限速到 2Mbps」这类需求,SQM 不是干这个的,用更简单的手段:mwan3 或流量规则按设备 IP 设定速率上限;部分固件的 LuCI 也提供按 IP 的简易限速界面。先明确目标是「保流畅」(SQM)还是「卡上限」(按 IP 限速),再选工具。

值得知道的还有哪些

  • watchcat:断网自动重启接口/整机,救「出门几天家里断网」的场景;
  • luci-app-statistics:采集流量与系统图表,观察负载趋势;
  • ttyd:浏览器里开终端,免 SSH 客户端;
  • UPnP(miniupnpd):游戏主机和部分软件需要,但开启即降低网络安全边界,家庭建议默认不开,需要时再开并限源。

AdGuard Home 的部署选点

DNS 去广告的服务可以落在两个位置,选点不同、利弊不同:

部署位置 优点 缺点 适合
路由器上(OpenWrt 软件包) 全屋生效、不依赖 NAS 吃路由器内存,低配机吃力 路由器性能富余
NAS 上(Docker) 资源充裕、与容器体系统一 路由器/NAS 任一故障断网 NAS 常开、有 Docker 习惯

本书多数读者的形态是「NAS 上跑」,理由除了资源,还有管理一致性:AdGuard Home 的配置、日志、升级与 Jellyfin/Immich 等服务放在一起,备份与监控都是同一套流程。部署要点:容器映射 53 端口(若 NAS 本身无占用)或改用 5353,OpenWrt 的 DHCP 设置里把 DNS 下发地址改为 NAS 的 IP;AdGuard 的上游 DNS 填公共 DNS,链路保持单向(旁路由篇坑三的教训通用)。

插件问题的通用排查法

插件「装了不生效」或「生效但出问题」,按固定顺序排查能省大量时间:

  1. 确认进程在跑:SSH 执行 ps | grep 关键词,或 LuCI 的「状态 → 进程」;没跑就先看启动报错;
  2. 确认端口在听:netstat -tlnp 看插件该监听的端口是否存在,端口冲突在这里现形;
  3. 看插件自己的日志:多数服务在 LuCI 有日志页,或 logread 里能翻到;
  4. 最小化复现:把插件配置退回默认再逐步加回,快速定位是哪个选项引入的问题;
  5. 查版本兼容:固件大版本升级后插件失效,多半是包与新版本不兼容,等社区适配或换替代包。

这套方法与 Linux 世界通用的排障思路同构,练熟了以后你面对任何新插件都不会慌——「先看日志」是运维世界的第一美德。

插件清单的克制哲学

最后重申一个态度:OpenWrt 的插件生态像自助餐,盘子的容量是固定的(闪存与内存)。给家庭路由器的建议配置是「少而稳」:DNS 优化(如有需求)、SQM/QoS、DDNS 客户端、 statistics 统计,撑死再加一两个刚需,就够了。跑重负载请升级硬件而不是无限堆插件——低配路由器上插满服务的下场通常是整机卡顿,连累全家上网体验,得不偿失。

定期盘点(系统 → 软件包 → 已安装)也是好习惯:半年前装的、已经想不起来干什么的包,卸掉。路由器应该始终保持在「你能向别人解释清楚每个组件作用」的状态。

快问快答

Q:插件装完 LuCI 菜单没出现? 三步:刷新浏览器缓存、退出重登、确认装的是带 luci-app- 前缀的界面包(只装了核心包没有界面是新手常见乌龙)。

Q:软件源刷新失败? 通常是源地址不可达(网络/DNS 问题)或版本不匹配(软件源与系统版本要对应)。先修网络再刷新;snapshot 系统没有稳定源,换稳定版。

Q:AdGuard Home 和其他去广告方式冲突吗? 同一时刻全屋只应有一个 DNS 拦截点。开 AdGuard Home 后,OpenWrt 自身的 DNS 缓存角色要理顺(上游指向或端口让位),双拦截点必出怪问题。

Q:怎么知道插件吃了多少资源? LuCI 状态页看进程内存占用;低配设备装插件前后各跑一次 free -m 对比,增量一目了然。

新手常见误区

  • 「插件装得越多越好。」 每个插件都占闪存与内存,低配路由装满后整机变卡甚至 OOM 崩溃。按需安装、用不到就卸。
  • 「去广告插件会弄坏网络。」 绝大多数「坏了」是 DNS 配置环:AdGuard 的上游指回 OpenWrt、OpenWrt 的 DNS 又指向 AdGuard,形成回环。记住链路只有一个方向:终端 → AdGuard → 公网 DNS。
  • 「SQM 填标称带宽。」 填满标称值就失去队列效果,要填实测的九成半左右;带宽升级后记得回来改。
  • 「多拨能翻倍网速。」 负载均衡是「加车道」不是「加发动机」,单连接速度上限不变,且运营商对多会话的态度各地不同。

插件玩顺了,下一篇讲进阶架构:旁路由——不动主路由也能享受这些能力的姿势。

本章由 WorkBuddy 原创整理,关键参数以官方文档为准。