结论:windows有DNS缓存,Linux默认无DNS缓存,只能依赖于安装其他软件。
一、不同操作系统的客户端的DNS缓存差别
1、windows 系统中dns 解析器会使用系统的dns缓存来提高dns域名解析效率。
例如: 查看当前的dns cache内容,可以使用 ipconfig /displaydns
可以看到当前的dns缓存ip和TTL值
2、清除当前的dns缓存内容,可以使用 ipconfig /flushdns
3、参考这篇文档,windows默认的dns域名老化时间是5分钟。
http://www.itgeared.com/articles/1048-dns-resolver-cache-and-time-to-live-ttl/
4、Linux上google了多次,最终得到一个结论,Linux上OS级别的DNS缓存。
https://stackoverflow.com/questions/11020027/dns-caching-in-linux
5、通过试验,可以很明显看到Linux上(Centos 7)无dns缓存。
(1)左右图是同一台物理机,安装了centos7。
(2)左边是发起ping 操作,每次ping 1个ip地址,右边是抓包,只抓dns 报文(udp 53)。
(3)左边虽然ping 3次,其实这3次之间间隔不超过1秒钟,可以看到右边是产生了3次的dns请求和回应报文。
二、不同操作系统的客户端主动发起dns操作的命令区别
1、windows系统,使用命令 nslookup
2、Linux系统,使用命令 dig