AdGuard Home DNS TLL该怎么设置

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. 最佳实践建议

  1. 初始设置:

    最小TTL:1800
    最大TTL:86400
    缓存大小:根据用户数×2设置
    
  2. 监控调整:

    • 查看仪表板的 平均处理时间 和 缓存命中率

    • 缓存命中率>70%说明配置合理

  3. 测试方法:

    # 测试不同TTL下的解析延迟
    dig @你的AdGuardHomeIP 域名 +stats
    
  4. 重启生效:
    修改设置后,建议重启AdGuard Home服务:

    sudo systemctl restart AdGuardHome
    

故障排除

问题:修改后客户端不更新
解决:客户端可能有独立缓存,执行:

# Windows
ipconfig /flushdns

# macOS
sudo dscacheutil -flushcache

问题:上游DNS响应慢
解决:适当增加最小TTL,减少查询频率

记住,TTL设置需要根据实际网络使用情况调整。开始时可使用保守值,观察一段时间后再优化。