【问题标题】:Firefox invalidate dns cache [closed]Firefox 使 dns 缓存无效 [关闭]
【发布时间】:2012-10-25 07:17:26
【问题描述】:

我访问我在客户服务器上设置的网站太快了,Firefox 现在记得,(示例)的默认网站

testsite.mycompanyname.com (non existing subdomain, same as *.mycompanyname.com)

www.mycompanyname.dk - or rather the IP of the default server

我随后设置了公共 DNS(a-record)以重定向到另一台服务器,但 Firefox 记住了默认 IP 地址。

Chrome/IE/Safari - 没问题,因为在 DNS 启动之前他们还没有访问过该站点...

我已经在 about:config: 中设置了这些

network.dns.disablePrefetch = true
network.dnsCacheExpiration = 0

还有什么?

我真的需要 firebug 来调试该站点上的前端....

干杯

【问题讨论】:

  • 啊……愚蠢的我……确实试过了,但是除了网站特定的设置之外,所有的东西都勾选了,因为我想为其他所有东西保留 cookie/历史……做了没有注意到缓存之一。现在一切都清楚了。如果您想接受答案,请添加答案
  • 如果您在本地编辑了 DNS 设置并且浏览器中的结果与 nslookup 的结果不对应,请确保您已在正确的位置更改了 DNS 设置。在我的例子中,我通过 PPPoE 连接到 Internet,无线路由器处于桥接模式,我在无线连接设置中设置了 DNS 服务器,nslookup 开始使用新服务器,但浏览器忽略它们并继续使用来自 ISP 的 DNS,直到我在 PPPoE 连接设置中更改了 DNS 服务器。
  • 顺便说一句,Firefox 不会将 DNS 解析缓存到磁盘,并且有一个检查内存缓存的菜单:support.mozilla.org/en-US/questions/1258756
  • 您可以在此处清除 Firefox 中的缓存:about:networking#dns

标签: firefox dns browser-cache


【解决方案1】:

DNS 缓存发生在多个级别: 应用程序询问本地系统, 它要求本地配置的解析 DNS 服务器, 它询问权威的 DNS 服务器。

缓存因应用程序而异。

  • 我发现 Firefox 可以退出并重新启动。 about:config中的相关设置为network.dnsCacheEntriesnetwork.dnsCacheExpiration,可以设置为0以禁用缓存。

本地系统的缓存时间通常为 1 小时。

  • 诊断:ping 与其他应用程序一样,使用本地系统 DNS 缓存
  • 刷新 MacOsX 10.8:sudo killall -HUP mDNSResponder(reference)
    (可能因其他版本而异)
  • 刷新 Windows:ipconfig /flushdns(仅当启用了 DNS 缓存服务 HKLM\SYSTEM\CurrentControlSet\Services\Dnscache;请使用 net start|findstr /i dnscompmgmt.msc 检查)
  • Linux/Unix 可以使用nscd(名称服务缓存守护进程)或dnsmasq,或两者都使用...

本地解析 DNS 服务器的缓存可能会运行数天,具体取决于与 DNS 记录关联的 TTL。

  • 诊断:nslookup 首先报告解析服务器的地址,然后是请求的地址。
  • 刷新绑定:rndc flush rndc flushname DOMAIN.NAME

TTL 代表“生存时间”,该术语用于描述请求客户端或服务器认为 DNS 记录有效的时间。较短的 TTL 意味着请求者被告知不要将 DNS 查找缓存太久。 TTL 的范围可以从几秒钟(例如 DynDNS 等)到几天或几周。

【讨论】:

  • 刚刚关闭和打开 Firefox 对我有帮助,谢谢
  • @jaywink:没用。当然它可能会有所帮助,但如果那就是治愈方法,我宁愿转向另一个浏览器。
  • 至少从 Firefox Quantum 69.0 开始,现在可以选择通过 HTTPS 使用 DNS。如果启用此功能,它将覆盖您在系统上执行的任何缓存刷新、您在 Firefox 中执行的任何缓存刷新以及您在 about:config 中更改的任何设置。选项 > 常规 > 网络设置 > 通过 HTTPS 启用 DNS。
【解决方案2】:

我已经使用“清除最近的历史记录\缓存”解决方案一段时间了,但我注意到它在一次 Firefox 更新(可能是 20.0.1)后停止工作。因此,我已切换到 https://addons.mozilla.org/en-US/firefox/addon/dns-cache/ 附加组件来进行 DNS 清除。我希望这能帮助遇到同样问题的人。

编辑:按照豪准的建议更改了网址。

Edit2:不幸的是,从 FireFox 32 开始,此插件不再兼容且无法使用。可能https://addons.mozilla.org/en-US/firefox/addon/dns-flusher/ 可以替代它。

【讨论】:

  • 我还尝试了“清除最近历史记录”→“☑ 缓存”,我可以确认 Firefox 20.0 无法实际响应 DNS。我一路刷新所有缓存(刷新OpenDNS CacheCheck,在我的OpenWrt路由器上重新启动dnsmasq),我确信正确的DNS解析已经传播到最后一跳,因为dig [hostname]返回正确的回答。我很确定它曾经有效,所以也许这是一种回归,或者只是 Mozilla 的另一个“好主意”。无论哪种方式 - 都不需要插件来刷新 DNS。
  • 附言。感谢您找到插件,但我确实希望在 Firefox 20.0 及更高版本中有一种刷新 DNS 缓存的内置方法。
  • 感谢您分享最新的解决方案。您能否在您提供的网址中将pl 替换为en-US?我相信这样的修改会有所帮助。
  • 为我清除“缓存”刷新的 DNS,所以这可能是最好的解决方案。当然,我们现在是第 42 版。
  • DNS Flusher 与 Firefox Quantum 不兼容
【解决方案3】:

安装适用于我的插件 DNS Flusher。

【讨论】:

  • @user1981275 实际上它确实为问题中提到的问题提供了解决方法,所以我认为没有理由删除它。
  • 我们必须安装一个插件来刷新 DNS 缓存,这有点荒谬。清除缓存功能应该这样做.. :(
  • @JamesTheAwesomeDude:通过设置 network.dnsCacheExpiration=0 禁用 FF 内部 DNS 缓存...我不确定这是否有助于解决我的问题,但到目前为止我没有再次遇到它。
【解决方案4】:

我发现单独使用 network.dnsCacheExpiration = 0 并不能解决问题,但如果您还设置了 network.dnsCacheEntries = 0,那么 DNS 缓存将被永久禁用。所以:

network.dnsCacheEntries = 0
network.dnsCacheExpiration = 0

【讨论】:

  • 我能知道在哪里放置或设置这个值吗?是在我的前端代码中还是在浏览器中?
  • 浏览器中的@bathulahmahir,特别是about:config
【解决方案5】:

以下在某些时候有效的方法目前不起作用(执行所有方法不起作用):

  • 重启浏览器
  • 清除浏览器缓存
  • 设置network.dnsCacheExpiration=0
  • ipconfig /flushdns

但是,您可以打开一个新的私人窗口,私人窗口显然不使用与常规窗口相同的 DNS 缓存(这很令人欣慰)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-22
    • 2023-03-29
    • 2018-05-25
    • 2013-06-26
    • 2012-07-27
    • 1970-01-01
    • 2011-11-04
    • 2021-09-19
    相关资源
    最近更新 更多