IT技术博客大学习 共学习 共进步

强制刷新本地 DNS 缓存记录

DBA Blog 2011-02-07 00:11:18 浏览 10,642 次
   为了提高DNS 解析的记录,很多操作系统都会提供缓存DNS 记录的功能,但是,这可能会为测试DNS 服务或域名设定带来麻烦。为了测试出准确的结果,我们需要强制刷新本地 DNS 缓存记录。这里提供Windows 与 Linux 客户端上的操作说明。

    一、Windows 客户端

    获得缓存中的DNS :

    ipconfig /displaydns

    强制清除DNS 缓存:

    ipconfig /flushdns

     如果您觉得DNS Client服务带来麻烦,可以用在控制面板----服务 中停止,或使用下面的命令停止该服务:

    net stop dnscache

    重启动DNS Client服务:

    net start dnscache

    二、Linux 客户端

    开启本地DNS 缓存的服务。

    # chkconfig --list|grep nscd

    nscd            0:关闭  1:关闭  2:关闭  3:关闭  4:关闭  5:关闭  6:关闭

    该服务除了提供DNS 缓存外,可提供NIS 加速的作用。

    启动本地DNS 缓存服务即可:

    # service nscd start

    反之

    # service nscd stop

    需要注意的是,在linux下没有强制清除DNS缓存的命令。但是,我们可以通过删除其后台数据库记录信息,达到清除DNS缓存的目的:

    # rm /var/db/nscd/hosts

    # service nscd restart

    三、Linux Bind 服务

    有时候,我们的客户端是处于某台DNS 缓存服务器后面的。常见的情况是,作为NAT 网关的Linux 服务器,通过bind 服务,提供DNS 缓存和转发功能。这可通过配置/etc/named.conf,加入forward来实现:

options {

     directory "/var/named";

     dump-file "/var/named/data/cache_dump.db";

     statistics-file "/var/named/data/named_stats.txt";

     forward only;

     forwarders {

          202.106.0.20;

     };

    };

    这时,客户端对外的DNS 解析结果,除保留在客户端本地的DNS 缓存中,同样会保留在这台网关服务器上。还有一种情况就是,当我们修改named 提供的DNS服务时,也需要刷新缓存。

    bind 提供的rndc 命令可以清空缓存的功能:

    # rndc flush

建议继续学习

  1. 浅析http协议、cookies和session机制、浏览器缓存 (阅读 17,204)
  2. 分布式缓存系统 Memcached 入门 (阅读 16,044)
  3. 自建DNS以防止GFW干扰 (阅读 12,945)
  4. 2014年1月21日中国互联网DNS瘫痪事件原因分析 (阅读 8,222)
  5. 关于 SOCKS 代理的远端 DNS 解析 (阅读 7,745)
  6. php缓存与加速分析与汇总 (阅读 7,723)
  7. Web应用的缓存设计模式 (阅读 7,304)
  8. 浏览器缓存机制 (阅读 7,102)
  9. DNS 隧道 (阅读 7,023)
  10. 使用memc-nginx和srcache-nginx构建高效透明的缓存机制 (阅读 6,943)