OpenWrt 挂 U 盘装 AdGuard Home
摘要
本文记录了将 AdGuard Home 从树莓派迁移至 OpenWrt 路由器的全过程。针对路由器内置存储不足的问题,通过挂载 U 盘、格式化为 ext4、修改 opkg 配置将软件安装至 U 盘,并成功部署 AdGuard Home。配置了上游 DNS、过滤规则及 OpenWrt DNS 重定向。文中总结了端口冲突、环境变量设置及 U 盘故障风险等注意事项,最终实现了广告拦截功能。
之前一直用树莓派跑 AdGuard Home,最近想把它移到路由器上省一台设备。问题来了:路由器内置存储 8MB,AdGuard Home 装不下。此文是挂 U 盘 + 装到 U 盘 + 跑起来的完整记录。
背景
为什么把 AdGuard Home 从树莓派搬到路由器:
树莓派 4B 干 DNS 太浪费了,想让它专心跑别的
路由器一直开着,省一台设备的电
少一个故障点(树莓派 SD 卡挂过一次,怕了)
第一步:挂 U 盘
准备工作:
U 盘或移动硬盘先备份(操作不当会清空)
插到路由器 USB 口
登录 OpenWrt 后台
OpenWrt 默认没有"挂载点"菜单,要自己装:
重启后系统菜单里就有"挂载点"了。如果 U 盘没自动识别,还要装 USB 相关驱动:
手动分区格式化
如果 U 盘之前是 Windows 用过的 NTFS,建议重新格成 ext4(性能更好,权限也好处理):
大 U 盘(256G+)加 -T largefile 优化 inode:
挂载
在 OpenWrt 后台 → 系统 → 挂载点 → 添加,UUID 选你的 U 盘,挂载点填 /mnt/usb,启用。重启后自动挂载。
顺手搞个 swap
路由器内存小(我这台 512MB),搞个 swap 防止 OOM:
第二步:让 opkg 装软件到 U 盘
默认 opkg 装到路由器内置存储,空间不够。要改配置指向 U 盘:
编辑 /etc/opkg.conf,加一行:
改环境变量,编辑 /etc/profile:
立即生效:
以后装软件加 -d usb 就装到 U 盘上:
第三步:装 AdGuard Home
如果路由器配置还行(CPU 1GHz+ / RAM 512MB+),可以直接在后台搜索装:
系统 → 软件包 → 搜 "adguardhome" → 安装
如果空间不够(这就是我的情况),用命令行装到 U 盘:
装完后系统 → 启动项,找到 adguardhome,点启动。
浏览器访问 http://<路由器IP>:3000,进初始化页面。配置:
网页管理界面端口:
80(或者别的,避免冲突)DNS 服务器端口:
53(默认)设置管理员账号密码
第四步:配 AdGuard Home
进控制台后:
上游 DNS
设置 → DNS 设置 → 上游 DNS 服务器:
Bootstrap DNS:
过滤规则
过滤器 → DNS 黑名单:
oisd.nl — 维护活跃,误杀少
国内列表:neodevhost
OpenWrt DNS 重定向
网络 → DHCP/DNS → DNS forwardings:
注意是 # 不是 :,这是 OpenWrt 的特殊格式,填错端口号直接断网。
坑和注意
53 端口冲突:OpenWrt 自带 dnsmasq 占用 53 端口,AdGuard Home 也想用 53。要把 dnsmasq 的 DNS 服务关掉,只留 DHCP。或者改 AdGuard Home 的端口(但不推荐)。
PATH 没改导致命令找不到:
/etc/profile那两个环境变量必须加,不然后续所有装在 U 盘上的软件都跑不起来。U 盘挂了所有服务一起挂:DNS 在 U 盘上跑,U 盘故障或接触不良全家断网。定期检查(U 盘便宜的可读写次数有限)。
swap 用 swapfile 别用 swap 分区:swapfile 灵活,U 盘换电脑照样能用。swap 分区换 U 盘就麻烦。
断电后 U 盘文件系统可能坏:
ext4比ntfs强,但还是建议加个定时fsck。AdGuard Home 重启慢:装在 U 盘上启动比内置存储慢,大概 5-10 秒,能接受。
效果
搬过来一周,AdGuard Home 跑了几天,块率 18-22%。高峰期是视频 App 的广告 SDK 和智能家居的遥测。
Dashboard 长这样:
顺手把科学上网也搞了——旁路由 + AdGuard Home 一把抓,舒服。
写在最后
U 盘 + AdGuard Home 是穷人方案——不花一分钱(家里闲置 U 盘肯定有)就能上全家广告过滤。但别指望它比树莓派或 NUC 稳。
如果只是想试水,先在树莓派或 docker 上跑 AdGuard Home;真要上路由器,买个靠谱的 U 盘(带掉电保护那种企业级的,二手几十块)。
