最近重新配置了 adguard, 开启了乐观缓存功能, 发现家里的 ddns 新 ip 生效时间慢了很多,出现过 4 小时后在局域网内查询 dns 还是返回老结果的问题(通过蜂窝数据网络查询域名返回的已经是新 ip 了).
配置的上游 dns 用的是阿里 doh,发现了几个现象.
另外, adguard-home 也不支持将指定域名排除出 dns 缓存.
不知 v 友们一般如何解决该问题的, 是更换不使用乐观缓存的 doh 还是不用 adguard? 还是 ddns 更新 ip 同时向 doh 服务器那边去主动刷新域名缓存?
1
supemaomao 235 天前 via Android
设置 ddns 的域名 ttl 时长就行了,这样局域网查询这个域名一般不会命中缓存。
|
2
kyonn OP @supemaomao ttl 最短只能设置为 1h, 上面的问题其实是 1h 后局域网这边的 dns 解析还无法正常刷新.
|
3
LonelyWenti 235 天前 via iPhone
我是将 adguardhome 重定向选项设置为“重定向 53 端口到 adguardhome”,dnsmasq 上游和 adguardhome 上游都指向 mosdns ,这样软路由本身的流量只通过 mosdns 解析,mosdns 可以指定哪些域名不缓存,也可以修改 TTL ;而家里其他设备都通过 adguardhome 解析。
另外 openwrt 的 DDNS 插件是可以指定 DNS 的,你在 DDNS 插件里设置一个公网 DNS 比如 222.5.5.5 ,并把 IP 检测时间间隔和域名强制更新间隔缩短,应该会有改善 |
4
totoro625 235 天前
上游 DNS 服务器那里增加一行
[ddns.example.com]ddns 所在服务商的 doh 或可访问的最近 doh 或者你更新 ddns 的时候刷新一下 AdGuardhome 的配置文件,直接写入 ddns ip ( DNS 重写) |
5
kyonn OP @LonelyWenti 我这边 adguard 直接占了 53 端口, 应该不需要这样设置.
|
7
supemaomao 235 天前 via Android
@kyonn ad 能不能覆盖单个域名的 ttl 我忘了,但是 ad 最短 TTL 应该不止 1h ,如果不能覆盖单个域名 ttl ,可以把乐观缓存关了,上游套一个 mosdns ,这个可以针对单个域名覆盖 ttl ,最短至少 5s 。本身也带缓存。
|
8
mohumohu 235 天前
看的不是很明白,在局域网内为啥要用 ddns ? ddns 不是给局域网外用的吗?
|