清除Linux中的DNS缓存

清除Linux中的DNS缓存

我在笔记本电脑上使用 Linux,无法使用该 URL 访问特定网站,因此我使用该sudo /etc/init.d/nscd restartURL 来清除 DNS 缓存,但该 URL 在 Firefox 中仍然抛出“找不到服务器”。我也尝试过 Chrome,但仍然无法正常工作。其他朋友可以看到网页,但我看不到。那么造成这种情况的主要原因是什么呢?我可以很好地浏览其他网站。

奇怪的是,当我尝试该特定 URL 的 IP 地址时,它显示的页面与其他人看到的页面不同。

我很感谢对此事的任何帮助。

答案1

bind除非您意外运行,否则您应该检查nscd位于 的配置文件/etc/nscd.conf

它将列出保留的缓存。

 enable-cache            hosts           yes
 positive-time-to-live   hosts           3600
 .......

# nscd -?

-g, --statistics Print current configuration statistics

-i, --invalidate=TABLE Invalidate the specified cache

nscd -g

    hosts cache:

        yes  cache is enabled
         no  cache is persistent
        yes  cache is shared
        211  suggested size
     216064  total data pool size
        384  used data pool size
        600  seconds time to live for positive entries
          0  seconds time to live for negative entries
          0  cache hits on positive entries
          0  cache hits on negative entries
        128  cache misses on positive entries
          0  cache misses on negative entries
          0% cache hit rate
          3  current number of cached values
          7  maximum number of cached values
          2  maximum chain length searched
          0  number of delays on rdlock
          0  number of delays on wrlock
          0  memory allocations failed
        yes  check /etc/{hosts,resolv.conf} for changes

# nscd -i hosts

这将使缓存失效。

nscd -g 但是,执行此操作后,重新启动后nscd刷新中的主机条目没有更改。

service nscd restart

    hosts cache:

        yes  cache is enabled
         no  cache is persistent
        yes  cache is shared
        211  suggested size
     216064  total data pool size
          0  used data pool size
        600  seconds time to live for positive entries
          0  seconds time to live for negative entries
          0  cache hits on positive entries
          0  cache hits on negative entries
          0  cache misses on positive entries
          0  cache misses on negative entries
          0% cache hit rate
          0  current number of cached values
          0  maximum number of cached values
          0  maximum chain length searched
          0  number of delays on rdlock
          0  number of delays on wrlock
          0  memory allocations failed
        yes  check /etc/{hosts,resolv.conf} for changes

除非您正在运行绑定,否则这是清除缓存的唯一方法,无法找到数据库nscd并删除它,这可能会导致其他问题。我会按照 IP 解析的故障排除过程进行操作。我在你的问题的评论中概述了一些内容。

这是一篇非常好的 Linux Journal 文章的链接排除网络问题

答案2

我知道这是一个老问题,但添加这个以防有人再次面临这个问题。

今天早上,当我遇到类似的 DNS 客户端缓存问题时,我执行了所有常规步骤来清除存储的缓存,nscd并如第一个答案中所述,重新启动nscd。我什至删除了操作系统缓存,但某个主机名仍然解析为旧的 IP 地址。仅在我nameserver 127.0.0.1从 resolv.conf 中删除该行后,它才开始解析。

相关内容