linux ping: 主机名 unknown host 解决办法
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