请教关于 adguard/doh/ddns 的问题.

142 天前
 kyonn

最近重新配置了 adguard, 开启了乐观缓存功能, 发现家里的 ddns 新 ip 生效时间慢了很多,出现过 4 小时后在局域网内查询 dns 还是返回老结果的问题(通过蜂窝数据网络查询域名返回的已经是新 ip 了).

配置的上游 dns 用的是阿里 doh,发现了几个现象.

  1. 使用命令行手动查询 dns,发现多查几次, 每次返回的 dns 结果既有新的 ip, 也有旧的 ip. 即使指定 doh 的 ip 也会有这个现象, 且不同结果下, 对应的 ttl 也不同. 个人猜测是查询 doh 结果每次返回的可能是不同服务器的结果, 阿里那边做了负载均衡.
  2. 基于上面第 1 点, 就导致我的 ddns 更新需要很久. 因为 adguard-home 的乐观缓存过期后向 doh 服务器那边查询, 返回的可能还是旧的结果(运气好可能返回新的), 如果一直不触发这个域名的解析, 这个旧 ip 解析会保留很久.

另外, adguard-home 也不支持将指定域名排除出 dns 缓存.

不知 v 友们一般如何解决该问题的, 是更换不使用乐观缓存的 doh 还是不用 adguard? 还是 ddns 更新 ip 同时向 doh 服务器那边去主动刷新域名缓存?

1547 次点击
所在节点    宽带症候群
8 条回复
supemaomao
142 天前
设置 ddns 的域名 ttl 时长就行了,这样局域网查询这个域名一般不会命中缓存。
kyonn
142 天前
@supemaomao ttl 最短只能设置为 1h, 上面的问题其实是 1h 后局域网这边的 dns 解析还无法正常刷新.
LonelyWenti
142 天前
我是将 adguardhome 重定向选项设置为“重定向 53 端口到 adguardhome”,dnsmasq 上游和 adguardhome 上游都指向 mosdns ,这样软路由本身的流量只通过 mosdns 解析,mosdns 可以指定哪些域名不缓存,也可以修改 TTL ;而家里其他设备都通过 adguardhome 解析。
另外 openwrt 的 DDNS 插件是可以指定 DNS 的,你在 DDNS 插件里设置一个公网 DNS 比如 222.5.5.5 ,并把 IP 检测时间间隔和域名强制更新间隔缩短,应该会有改善
totoro625
142 天前
上游 DNS 服务器那里增加一行
[ddns.example.com]ddns 所在服务商的 doh 或可访问的最近 doh

或者你更新 ddns 的时候刷新一下 AdGuardhome 的配置文件,直接写入 ddns ip ( DNS 重写)
kyonn
142 天前
@LonelyWenti 我这边 adguard 直接占了 53 端口, 应该不需要这样设置.
kyonn
142 天前
@totoro625 请问增加的这一行是什么意思? 没看懂. 上游 DNS 服务器指的是家里的内部 dns 服务器, 还是域名托管网站那边?
supemaomao
142 天前
@kyonn ad 能不能覆盖单个域名的 ttl 我忘了,但是 ad 最短 TTL 应该不止 1h ,如果不能覆盖单个域名 ttl ,可以把乐观缓存关了,上游套一个 mosdns ,这个可以针对单个域名覆盖 ttl ,最短至少 5s 。本身也带缓存。
mohumohu
142 天前
看的不是很明白,在局域网内为啥要用 ddns ? ddns 不是给局域网外用的吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1037192

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX