首页
/ Asuswrt-Merlin路由器AdGuard Home部署与优化指南

Asuswrt-Merlin路由器AdGuard Home部署与优化指南

2026-04-07 11:40:52作者:裴锟轩Denise

一、问题引入:家庭网络广告过滤的技术方案

在现代家庭网络环境中,广告推送、恶意网站跟踪和不安全的DNS解析已成为影响网络体验的主要问题。AdGuard Home作为一款开源的DNS服务器软件,通过在网络入口处拦截广告域名请求,实现全网络设备的广告过滤。与传统浏览器插件相比,其优势在于:一次部署即可保护所有联网设备,包括智能家居、智能电视等无法安装客户端的设备。本文将系统介绍在Asuswrt-Merlin固件环境下的完整部署流程。

二、准备工作:环境检查与依赖配置

2.1 硬件与固件要求 ⚙️

  • 硬件兼容性:基于ARM架构的华硕路由器(推荐RT-AC68U及以上型号)
  • 固件版本:Asuswrt-Merlin 384.11或更高版本
  • 存储配置
    • 启用JFFS分区(在路由器管理界面"系统设置>系统>启用JFFS2支持")
    • 连接至少8GB容量的USB存储设备(建议Class 10以上)

2.2 软件环境准备

  1. Entware安装

    # 连接路由器SSH后执行
    opkg update && opkg upgrade
    

    操作目的:更新软件包管理系统
    预期结果:显示"Upgrading packages"进度,最终提示"Collected errors: None"

  2. 交换空间配置

    # 创建2GB交换文件
    dd if=/dev/zero of=/opt/swap bs=1M count=2048
    mkswap /opt/swap
    swapon /opt/swap
    # 设置开机自动挂载
    echo "/opt/swap none swap sw 0 0" >> /etc/fstab
    

    注意事项:交换文件需位于USB存储设备,避免占用路由器内置存储

三、核心实施:安装与基础配置

3.1 快速部署流程

  1. 获取安装脚本

    # 下载安装程序
    curl -L -s -O https://gitcode.com/gh_mirrors/as/Asuswrt-Merlin-AdGuardHome-Installer/master/installer
    
  2. 执行安装过程

    # 运行安装脚本
    sh installer
    # 安装完成后清理临时文件
    rm installer
    

    操作说明:安装过程中需根据提示选择:

    • 安装位置(建议选择USB设备的/opt分区)
    • 网络接口(通常选择br0或eth0)
    • 端口配置(默认3000管理端口,53 DNS端口)

3.2 初始配置向导

  1. 访问管理界面
    在浏览器中输入 http://路由器IP:3000,首次访问将启动配置向导

  2. 关键配置步骤

    • 设置管理员用户名和强密码(至少8位,包含大小写字母和特殊符号)
    • 确认DNS监听端口(默认53,若与其他服务冲突需修改)
    • 配置上游DNS服务器(推荐使用Cloudflare DNS:1.1.1.1)

四、进阶优化:性能调优与功能配置

4.1 性能调优建议 🚀

  1. 内存优化

    # 调整AdGuard Home内存使用参数
    sed -i 's/--max-memory=0/--max-memory=128/' /opt/etc/init.d/S99AdGuardHome
    

    适用场景:路由器内存小于512MB的设备,限制内存使用避免卡顿

  2. 缓存策略配置

    • 在管理界面"设置>DNS设置"中:
      • 启用"缓存大小"并设置为2048(单位:条)
      • 启用"缓存TTL",设置最小值300秒,最大值86400秒
  3. 并发连接优化

    • 编辑配置文件 /opt/etc/AdGuardHome/AdGuardHome.yaml
      dns:
        max_concurrent: 500
        ratelimit: 20
      

4.2 高级功能配置

  1. DNS加密设置

    • DNS-over-TLS:启用后设置服务器地址(如tls://dns.cloudflare.com)
    • DNS-over-HTTPS:推荐使用"https://cloudflare-dns.com/dns-query"
  2. 自定义过滤规则

    • 推荐添加的规则列表:
      • 基础广告过滤:https://adguardteam.github.io/AdGuardSDNSFilter/Filters/filter.txt
      • 隐私保护:https://raw.githubusercontent.com/RooneyMcNibNug/pihole-stuff/master/SNAFU.txt

五、运维保障:系统管理与故障处理

5.1 系统运维命令集

操作目的 执行命令 预期结果
启动服务 /opt/etc/init.d/S99AdGuardHome start 显示"Starting AdGuardHome..."
停止服务 /opt/etc/init.d/S99AdGuardHome stop 显示"Stopping AdGuardHome..."
状态检查 pidof AdGuardHome 返回进程ID(数字)表示运行中
日志查看 tail -f /opt/var/log/AdGuardHome.log 实时显示服务运行日志

5.2 常见配置错误对比表

错误类型 错误配置 正确配置 影响
端口冲突 DNS端口设置为53,同时运行dnsmasq 更改AdGuardHome端口为5353,或停用dnsmasq 服务启动失败
内存溢出 未限制内存使用 添加--max-memory=128参数 路由器频繁重启
规则失效 仅使用单一过滤列表 同时启用3-5个互补规则列表 广告过滤不彻底

5.3 自动化备份方案

创建备份脚本 backup_agh.sh

#!/bin/sh
# AdGuard Home配置备份脚本
BACKUP_DIR="/mnt/usb/backup"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
mkdir -p $BACKUP_DIR

# 备份配置文件
tar -czf $BACKUP_DIR/agh_config_$TIMESTAMP.tar.gz -C /opt/etc/AdGuardHome .

# 保留最近10个备份
ls -tp $BACKUP_DIR/*.tar.gz | grep -v '/$' | tail -n +11 | xargs -I {} rm -- {}

设置定时任务:

# 添加到crontab
echo "0 3 * * * /opt/bin/backup_agh.sh" >> /etc/crontab

5.4 故障排查流程

  1. 服务无法启动

    • 检查端口占用:netstat -tulpn | grep 53
    • 查看错误日志:cat /opt/var/log/AdGuardHome.log | grep -i error
  2. 过滤规则不生效

    • 验证DNS是否被正确接管:nslookup example.com 127.0.0.1
    • 检查规则更新状态:管理界面"过滤器>过滤器更新"
  3. 网页加载缓慢

    • 检查上游DNS响应时间:管理界面"统计>DNS查询>平均处理时间"
    • 优化规则数量:移除重复或低效的过滤列表

通过以上步骤,您已完成AdGuard Home在Asuswrt-Merlin路由器上的完整部署与优化。建议每月进行一次系统检查,包括规则更新、日志审计和性能监控,以确保家庭网络环境的持续安全与高效运行。

登录后查看全文
热门项目推荐
相关项目推荐