尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Armbian 上安装 AdGuard Home 完整教程

Armbian 上安装 AdGuard Home 完整教程 Armbian 上安装 AdGuard Home 完整教程从零开始搭建去广告 DNS 服务器1. 前言AdGuard Home 是一款全网级的广告拦截与隐私保护 DNS 服务器它可以拦截广告、跟踪器、恶意网站并支持家长控制。在 Armbian轻量级 Linux 发行版常用于电视盒子、开发板上部署 AdGuard Home可以让你用极低的成本为整个家庭网络提供干净、安全的上网体验。本文将详细介绍在 Armbian 上安装、配置、优化 AdGuard Home 的全过程并附上故障排查脚本助你轻松搭建属于自己的去广告 DNS。2. 准备工作一台运行 Armbian 的设备如电视盒子、树莓派、Orange Pi 等已连接网络。可以通过 SSH 访问设备并拥有 root 权限。确保系统已更新sudoaptupdatesudoaptupgrade-y3. 安装 AdGuard Home3.1 下载并解压访问 AdGuard Home GitHub Releases 获取最新稳定版下载链接。以 ARM64 架构为例大多数电视盒子使用该架构cd~wgethttps://github.com/AdguardTeam/AdGuardHome/releases/download/v0.107.52/AdGuardHome_linux_arm64.tar.gztar-xzfAdGuardHome_linux_arm64.tar.gzcdAdGuardHome如果你的设备是 32 位 ARM 架构请将下载链接中的arm64替换为armv7或armhf。3.2 解决端口 53 被占用问题AdGuard Home 需要占用 53 端口作为 DNS 服务但该端口常被系统自带的systemd-resolved占用。检查端口占用情况sudolsof-i:53若输出显示systemd-resolved占用则需关掉 resolved 的 stub 监听# /etc/systemd/resolved.conf[Resolve]DNSStubListenerno然后重启systemd-resolvedsudosystemctl restart systemd-resolved3.3 安装 AdGuard Home 服务3.3.1 交互式向导安装推荐执行以下命令启动配置向导sudo./AdGuardHome看到类似下面的提示AdGuard Home is available at the following addresses: go to http://127.0.0.1:3000 go to http://192.168.x.x:3000在浏览器中打开http://你的ArmbianIP:3000例如http://192.168.0.111:3000按照向导完成初始设置设置管理员账号和密码请务必牢记。配置上游 DNS 服务器可以暂时填写223.5.5.5和223.6.6.6后续会进行优化。点击「下一步」直至完成。配置完成后在终端按Ctrl C停止程序然后执行以下命令安装为系统服务sudo./AdGuardHome-sinstallsudo./AdGuardHome-sstart3.3.2 验证服务状态通过以下命令验证服务是否正常运行sudo./AdGuardHome-sstatus或sudosystemctl status AdGuardHome输出应显示Active: active (running)。4. 优化配置关键步骤初次安装后默认配置可能不适合国内网络环境需要进行一些优化以提升 DNS 响应速度。强烈建议优先通过 Web 界面进行优化因为它更直观、不易出错。如果你熟悉 YAML 语法也可以直接修改配置文件。4.1 通过 Web 界面优化推荐4.1.1 登录 Web 界面在浏览器中打开http://你的ArmbianIP:80默认端口使用你设置的管理员账号登录。4.1.2 优化 DNS 设置进入「设置」 → 「DNS 设置」上游 DNS 服务器在文本框中每行填入一个上游推荐使用国内公共 DNS 的 IP 地址或加密地址例如223.5.5.5 223.6.6.6 tls://223.5.5.5:853 https://223.5.5.5/dns-query也可以加入腾讯云 DNSPodhttps://doh.pub/dns-query tls://dot.pubBootstrap DNS 服务器填写223.5.5.5、223.6.6.6、114.114.114.114等。后备 DNS 服务器同样填写国内公共 DNS例如223.5.5.5、223.6.6.6。上游超时将默认的 10s 改为2s避免慢速上游拖累整体响应。确保「并行请求」已勾选。修改后点击页面下方的「应用」按钮保存。4.1.3 检查家长控制和安全浏览默认关闭进入「设置」 → 「安全设置」确保「家长控制」和「安全浏览」处于未勾选状态默认应为未勾选。这两个功能会向境外服务器发送查询可能导致高延迟或超时建议保持关闭。如果你不需要强制安全搜索也可以取消勾选「安全搜索」默认可能为开启可根据需要关闭。4.1.4 调整缓存可选在「DNS 设置」中向下滚动找到「DNS 缓存配置」缓存大小如果设备内存充裕如 1GB 以上可适当增大如 16MB以提高缓存命中率。乐观缓存建议保持启用当上游超时或不可用时可以返回过期的缓存结果提高可用性。每次修改后记得点击「应用」保存。4.2 直接修改配置文件可选如果你更喜欢命令行操作也可以直接编辑 YAML 文件。AdGuard Home 的配置文件位于/root/AdGuardHome/AdGuardHome.yaml。建议先备份cp/root/AdGuardHome/AdGuardHome.yaml /root/AdGuardHome/AdGuardHome.yaml.bak编辑配置文件sudonano/root/AdGuardHome/AdGuardHome.yaml4.2.1 检查家长控制和 Safe Browsing找到以下两行大约在第 150-160 行附近确认其值为falseparental_enabled:falsesafebrowsing_enabled:false如果显示为true请改为false。4.2.2 优化上游 DNS将上游 DNS 配置修改为推荐内容upstream_dns:-tls://223.5.5.5:853-tls://223.6.6.6:853-https://223.5.5.5/dns-query-https://223.6.6.6/dns-query-223.5.5.5-223.6.6.6bootstrap_dns:-223.5.5.5-223.6.6.6-114.114.114.114fallback_dns:-223.5.5.5-223.6.6.64.2.3 调整超时参数upstream_timeout:2sfastest_timeout:1s确保upstream_mode: parallel已启用默认就是并行无需修改。4.2.4 处理 IPv6如果你的网络没有 IPv6建议在dns.bind_hosts中只保留0.0.0.0并移除::dns:bind_hosts:-0.0.0.04.2.5 保存并重启服务sudosystemctl restart AdGuardHome5. 验证优化效果执行以下命令测试 DNS 解析速度dig192.168.0.111 bing.com|grepQuery time正常应返回 10ms 左右取决于你的网络。登录 Web 界面首页在「仪表盘」中查看「平均处理时间」应大幅下降至几十毫秒以内。6. 配置客户端使用 AdGuard Home6.1 路由器全局设置推荐登录路由器管理界面找到 DHCP/DNS 设置将 DNS 服务器改为 Armbian 的 IP 地址如192.168.0.111。这样所有连接路由器的设备将自动使用 AdGuard Home。6.2 单台设备手动配置Windows控制面板 → 网络和共享中心 → 更改适配器设置 → 右键网络 → 属性 → IPv4 → 使用以下 DNS 服务器地址填入 Armbian IP。macOS系统偏好设置 → 网络 → 高级 → DNS → 添加 Armbian IP。AndroidWi-Fi 设置 → 长按当前网络 → 修改网络 → 高级选项 → IP 设置改为静态 → 填入 DNS。iOS设置 → Wi-Fi → 点击当前网络右侧i→ 配置 DNS → 手动 → 添加服务器。7. Web 界面日常管理指南7.1 仪表盘首页展示了总查询数、拦截比例、处理时间等概览可以快速了解服务状态。图表可以按时间维度查看流量趋势。7.2 查询日志在「查询日志」中可以按时间、客户端、域名查看详细查询记录并直接对某个域名进行拦截或放行操作。7.3 过滤器进入「过滤器」 → 「DNS 拦截列表」点击「添加阻止列表」从内置列表中选择如 AdGuard DNS filter、anti-AD或输入自定义规则 URL。国内常用优化规则anti-ADhttps://anti-ad.net/easylist.txtAdGuard 基础过滤器https://adguardteam.github.io/HostlistsRegistry/assets/filter_1.txt添加后点击「立即更新」或等待自动更新。在「自定义过滤规则」中可以手动添加黑白名单。7.4 客户端在「客户端」页面可以查看所有发起 DNS 请求的设备及其统计信息并可以为特定客户端设置不同的规则或上游。7.5 设置常规设置可以修改 Web 界面端口、启用加密HTTPS/DNS-over-TLS、调整日志保留时间等。DNS 设置可随时调整上游 DNS、缓存等。加密设置如果需要从外部网络安全访问可以配置 SSL 证书和加密协议。7.6 备份与恢复在「设置」 → 「常规设置」底部有「备份」和「恢复」按钮可以导出当前配置包括所有设置和过滤器为文件方便日后迁移或恢复。8. 故障排查脚本如果你遇到 AdGuard Home 无法正常工作的情况可以使用以下脚本进行全面诊断。将脚本保存为check_agh.sh赋予执行权限chmod x check_agh.sh并以 root 权限运行sudo ./check_agh.sh。#!/bin/bash# AdGuard Home 故障诊断脚本set-eRED\033[0;31mGREEN\033[0;32mYELLOW\033[0;33mBLUE\033[0;34mNC\033[0mecho-e${BLUE}${NC}echo-e${BLUE}AdGuard Home 故障诊断脚本启动${NC}echo-e${BLUE}${NC}if[[$EUID-ne0]];thenecho-e${RED}请使用 sudo 运行${NC}exit1fiecho-e\n${YELLOW}[1] 系统信息${NC}hostnamecat/etc/os-release|grepPRETTY_NAMEuname-ruptime-pecho-e\n${YELLOW}[2] 网络接口 IP${NC}ip-4addr show|grepinet|grep-v127.0.0.1|awk{print $2}|cut-d/-f1echo-e\n${YELLOW}[3] AdGuard Home 服务状态${NC}ifsystemctl list-units--full-all|grep-qAdGuardHome.service;thensystemctl status AdGuardHome --no-pager-l|grep-ELoaded|Active|Main PID||echo服务未安装elseecho-e${RED}未找到 AdGuardHome 服务${NC}fiAGH_PID$(pgrep-fAdGuardHome|head-1)if[[-n$AGH_PID]];thenecho-e\n${YELLOW}[4] 进程信息${NC}ps-p$AGH_PID-opid,ppid,user,%cpu,%mem,cmdelseecho-e${RED}进程未运行${NC}fiecho-e\n${YELLOW}[5] 端口监听${NC}forportin53803000;doifss-tulpn|grep-q:$port;thenecho-e端口$port:${GREEN}已监听${NC}elseecho-e端口$port:${RED}未监听${NC}fidoneecho-e\n${YELLOW}[6] 防火墙规则${NC}ifcommand-vufw/dev/null;thenufw status|grep-E53|80|3000||echo无相关规则elseecho未检测到 ufwfiecho-e\n${YELLOW}[7] 系统 DNS 配置${NC}cat/etc/resolv.conf2/dev/null||echo文件不存在echo-e\n${YELLOW}[8] 域名解析测试${NC}dig223.5.5.5 bing.com short|head-1echo阿里 DNS 解析成功||echo阿里 DNS 解析失败dig192.168.0.111 bing.com short|head-1echoAdGuard Home 解析成功||echoAdGuard Home 解析失败echo-e\n${YELLOW}[9] 日志摘要${NC}journalctl-uAdGuardHome-n20--no-pager2/dev/null||echo无日志echo-e\n${BLUE}${NC}echo-e${BLUE}诊断完成请根据以上输出排查问题${NC}echo-e${BLUE}${NC}注意脚本中假设你的 Armbian IP 为192.168.0.111请根据实际修改。9. 常见问题与解决Q1: 无法访问 Web 界面http://IP:80检查服务是否运行systemctl status AdGuardHome检查端口是否被占用ss -tulpn | grep 80若有其他进程占用如 docker-proxy可修改配置文件中bind_port为其他值如 8080并重启。防火墙是否放行 80 端口sudo ufw allow 80/tcpQ2: DNS 查询超时或很慢100ms确保parental_enabled和safebrowsing_enabled为false通过 Web 界面或配置文件检查。检查上游 DNS 是否可达dig 223.5.5.5 bing.com调整upstream_timeout为 2s并确保使用国内上游。查看日志中是否有context deadline exceeded错误若有说明上游不可达。Q3: 53 端口被 systemd-resolved 占用按本文 3.2 节操作停止并禁用 systemd-resolved手动配置/etc/resolv.conf。Q4: 配置文件损坏导致服务无法启动恢复备份cp /root/AdGuardHome/AdGuardHome.yaml.bak /root/AdGuardHome/AdGuardHome.yaml重新运行配置向导sudo ./AdGuardHome然后按提示重新配置。Q5: 如何更新 AdGuard Home可以通过 Web 界面的「立即更新」按钮自动更新或手动下载新版替换二进制文件后重启服务。10. 结语至此你已经在 Armbian 上成功部署并优化了 AdGuard Home。现在你的家庭网络将享受无广告、安全、快速的上网体验。定期登录 Web 界面查看统计信息根据需要调整过滤规则。如果遇到问题欢迎参考本文的故障排查部分或查阅官方文档。祝使用愉快本文为原创教程发布于 CSDN转载请保留出处。
返回列表