Firefox在network.dnsCacheExpiration时间间隔后不清除DNS缓存

4
在Ubuntu 19.04上使用最新的稳定版Firefox(69.0.2)后,我发现FF有自己的DNS缓存:在将DNS更改应用于DNS服务器后,我清除了systemd-resolved缓存,如此处所述。这适用于多个cli工具,例如digcurlping,因此系统范围的DNS缓存应该已被清除。但是Firefox仍然获得旧的DNS记录。 这个问题提到了network.dnsCacheExpiration。根据Mozilla文档,这是缓存DNS条目的持续时间(秒)。默认值为60,而我的about:config也显示设置为60。但是,我在半个小时前更新了DNS记录,它仍然是旧的记录。
为了测试目的,我还尝试在具有相同Firefox版本的Windows 10测试机上进行了尝试。出乎意料地,DNS更改立即生效,并且network.dnsCacheExpiration也设置为60。
为什么Ubuntu机器上Firefox的DNS缓存在60秒后没有被清除?这是操作系统的问题吗,尽管多个cli工具都有新条目?

当您打开about:networking#dns页面时,您是否看到域名(和过期时间)? - Dusan Bajic
1个回答

4
尽管这个问题已经过时了,但我在搜索网络时发现很少有有用的内容。我注意到狮子的问题概述了同样的事情,并尝试了许多不成功的设置,比如:
  • network.trr.excluded-domains,
  • network.dnsCacheExpiration,
  • network.dnsCacheExpirationGracePeriod
我找到了以下 Bugzilla 票证,虽然它们并没有直接回答问题,但涉及到与 hosts 文件不被遵守有关的相关问题。 这些票据在分析上也没有什么帮助。然而,我找到了三种解决方法适用于我(希望也能帮助其他人):
  • 手动清除Firefox的DNS缓存:

    • 前往:about:networking#dns > 清除DNS缓存
  • 使DNS缓存与特定域名良好配合:

    • 前往:about:config > network.dns.forceResolve > 列出域名
  • 禁用Firefox的DNS缓存(强制始终解析而不使用DNS缓存 - 会影响性能):

    • 前往:about:config > network.dnsCacheEntries > 将其设置为0

我之前不知道这些设置非常方便。 - david-giorgi
同样的结论在这里,我尝试了所有的方法。奇怪的是,这个错误只出现在某些域名下,例如facebook.com和youtube.com。对于yahoo.fr来说,DNS已经被清除,如果我在我的/private/etc/hosts文件中将设置为DNS条目127.0.0.1,则会像预期的那样出现错误。感谢您的调查,这两个错误仍然存在。 - COil

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接