我一直在使用 unbound 作为缓存 DNS 服务器转发到 dnscrypt-proxy 并且它在一段时间内工作得相对较好(几年,尽管使用 dnscrypt-proxy 大约一年左右)需要超过 30 天(大约是时间)不需要重新启动在系统重新启动之间);但是,最近,我注意到它经常停止解决。我完全禁用了进程主管来帮助调试以及为什么需要重新启动但还没有解决方案......
奇怪的是,如果我直接查询上游服务器,我会得到我期望的结果。此外,如果我使用 unbound-control 进行查找(或者我这样做时可能等待了足够长的时间),我确实会得到响应。
我在发生这种情况时监控了流量,并注意到发生这种情况时 unbound 没有查询上游服务器(dnscrypt-proxy)。我在日志中看不到任何“错误”,因此没有什么明显的突出之处。Unbound-control 表示服务仍在运行。
其他信息——我的广告屏蔽列表大约是 15M。我在想这很可能是个问题。但是,我没有看到任何关于本地区域数据有多大的文档。
我已将 unbound 配置为最多使用 256m (rrset)、128m (msg),但分别将其设置为 512 和 256。这并没有阻止问题的发生。
如果失败,我会收到“服务器找不到”消息:
nslookup www.youtube.com 服务器:127.0.0.1 地址:127.0.0.1#53
** 服务器找不到 www.youtube.com:SERVFAIL
自从将与上游服务器的连接切换到 UDP 后,我就没有遇到过这个问题。
我在这里提交了一个错误报告: https ://github.com/NLnetLabs/unbound/issues/89