nscd dns 缓存引起的修改hosts 不及时生效

通过strace查看ping命令执行过程:
strace -f -F -o /tmp/ping.txt ping  bi.v.addev.com

可以看到ping的整个过程是先连本地的nscd缓存,清理nscd缓存(nscd -i hosts)后发现hosts绑定的IP立即生效。

 

可以看到ping的整个过程是先连本地的nscd缓存,清理nscd缓存(nscd -i hosts)后发现hosts绑定的IP立即生效。

查看nscd配置文件: /etc/nscd.conf  了解到nscd会缓存三种服务passwd group hosts,所以它会记录三个库,分别对应源/etc/passwd, /etc/hosts 和 /etc/resolv.conf每个库保存两份缓存,一份是找到记录的,一份是没有找到记录的。每一种缓存都保存有生存时间(TTL)。其作用就是在本当中增加cache ,加快如DNS的解析等的速度。

 

 

  解决方法:

  重启 nscd 服务

  systemctl restart  nscd

 

或者清除缓存

nscd -i passwd

nscd -i group

nscd -i hosts

 

 

©著作权归作者所有
https://blog.51cto.com/liuqunying/1669889