linux下清空dns缓存的方法

 

一、Linux下清空DNS缓存

  LinuxDNS缓存实现通常有两种方式:一种是用DNS缓存程序NSCD(name service cache daemon)负责管理DNS缓存。另一种实现DNS缓存则是用Bind来架设Caching Name Server来实现。

  如果是清除NSCD上的Cache,可重新启动NSCD服务来达成清除DNS Cache的效果。用这个命令:

? [Copy to clipboard] View Code BASH
1
2
3
 # service nscd restart

或是
# /etc/init.d/nscd restart
 


  如果是清除BIND服务器上的CACHE,用这个命令:

? [Copy to clipboard] View Code BASH
1
 # rndc flush
 

  如果你的DNS服务器是用dnsmasq实现的,用下面这个命令

? [Copy to clipboard] View Code BASH
1
 $ sudo
 /
etc/
init.d/
dnsmasq restart

  注:DNSmasq是一个轻巧的,容易使用的DNS服务工具,它可以应用在内部网和Internet连接的时候的IP地址NAT转换,也可以用做小型网络的DNS服务。
    
  几个用dnsmasq建立dns缓存服务器的文章,发给大家参考下。
  
  用dnsmasq建立dns缓存服务器
  用dnsmasqdns代理缓存服务器
  通过dnsmasq来提高ADSL上网速度

  二、其它操作系统下清空DNS缓存的方法

  1、微软windows下如何清空dns

  你可以用以下命令来清空dns缓存内容。

? [Copy to clipboard] View Code BASH
1
 ipconfig /
flushdns

  你也可以用以下命令来查看dns缓存内容。

? [Copy to clipboard] View Code BASH
1
 ipconfig/
displaydns

  windows下的DNS Cache 是由DNS Client后台进程控制的,你可以在控制面板 ->服务中将其关闭,这样windows就不会进行DNS缓存,每次都将直接查询DNS Server

  2Mac OSX下如何清空DNS缓存:

  在Mac OSX中,你可以用以下命令来清空DNS缓存内容:

? [Copy to clipboard] View Code BASH
1
 bash-2.05a$lookupd
-flushcache

  三、其它一些DNS Cache小技巧

  Q: 如何查看BIND DNS ServerCache :

  A: bind 9中,可以使用rndc -dumpdb命令来查看DNS Cache,当然你的rndc要先配置好。这个命令会在/var/named(这个目录是在named.conf文件中指定的)目录中生成named_dump.db文件。

  在bind8下,可以试试用kill -INT named_pid

  Q: DNS Cache的时间如何设置:

  A: bind9 中,使用TTL参数来设置DNS默认的缓存时间,但要记住这个是你解析的域名在别人的DNS中的缓存时间。

  Q: 在客户端如何清空DNS Cache:

  A: Unix下,DNS客户端只是几个例程,负责转发和接受查询的功能,并不缓存。

  Q: DNS服务器端如何清空DNS Cache:

  A: 最简单的方法就是重新启动 named 进程;当然也有不用重启的方法: rndc flush

  四、参考文章

  How To Flush Linux/UNIX DNS Cache
  清除DNS缓存
  Google