AdGuard Home 中DNS TTL(Time to Live)的设置非常重要,它决定了DNS记录在客户端和中间缓存中保存的时间。合理的设置可以平衡性能、实时性和上游DNS查询压力。
核心概念
TTL值以秒为单位,数值越小,记录更新越快,但对上游服务器查询更频繁;数值越大,缓存效果越好,响应更快,但更新延迟越长。
推荐设置策略
1. 访问设置路径
登录AdGuard Home管理界面
进入 设置 → DNS设置
找到 DNS缓存配置 部分
2. 关键配置选项
a. 最小TTL(推荐设置:1800-3600秒)
最小TTL:3600
控制缓存的最短时间
建议值:1800-7200秒(30分钟-2小时)
影响:避免过于频繁的重复查询
b. 最大TTL(推荐设置:86400秒)
最大TTL:86400
控制缓存的最长时间
建议值:86400秒(24小时)
影响:防止过时的记录留存太久
c. 覆盖TTL值(可选功能)
启用覆盖TTL值:是
覆盖值为:3600
强制所有响应使用统一TTL
简化管理,但可能不够灵活
3. 场景化配置建议
家庭网络常规使用
最小TTL:1800 (30分钟)
最大TTL:86400 (24小时)
缓存大小:4000-10000
启用乐观缓存:是
适合大多数家庭用户
平衡性能和更新需求
需要快速响应变更
最小TTL:300 (5分钟)
最大TTL:7200 (2小时)
覆盖TTL值:600 (10分钟)
适用于频繁变更的DNS记录
对广告过滤列表更新更敏感
优化性能/减少上游查询
最小TTL:7200 (2小时)
最大TTL:172800 (48小时)
缓存大小:20000+
减少上游DNS查询次数
提升响应速度
4. 特殊注意事项
广告过滤相关
广告域名的TTL可以设置较短(如300-900秒)
可通过重写规则单独设置:
||广告域名.com^$dnsrewrite=NOERROR;A;0.0.0.0,ttl=300
上游DNS考量
如果使用Cloudflare、Google等公共DNS,建议TTL ≥ 1800秒
避免因查询频率过高被限制
5. 最佳实践建议
初始设置:
最小TTL:1800 最大TTL:86400 缓存大小:根据用户数×2设置监控调整:
查看仪表板的 平均处理时间 和 缓存命中率
缓存命中率>70%说明配置合理
测试方法:
# 测试不同TTL下的解析延迟 dig @你的AdGuardHomeIP 域名 +stats重启生效:
修改设置后,建议重启AdGuard Home服务:sudo systemctl restart AdGuardHome
故障排除
问题:修改后客户端不更新
解决:客户端可能有独立缓存,执行:
# Windows
ipconfig /flushdns
# macOS
sudo dscacheutil -flushcache
问题:上游DNS响应慢
解决:适当增加最小TTL,减少查询频率
记住,TTL设置需要根据实际网络使用情况调整。开始时可使用保守值,观察一段时间后再优化。