![主机名到 IP 的解析未使用 /etc/hosts 文件](https://linux22.com/image/1556471/%E4%B8%BB%E6%9C%BA%E5%90%8D%E5%88%B0%20IP%20%E7%9A%84%E8%A7%A3%E6%9E%90%E6%9C%AA%E4%BD%BF%E7%94%A8%20%2Fetc%2Fhosts%20%E6%96%87%E4%BB%B6.png)
我在 /etc/hosts 中定义了一些主机名,即192.168.15.20 example.com
当我这样做时ping example.com
,我得到的解析 IP 与 /etc/hosts 中定义的 IP 相同,但是当我将此 IP 更改为另一个 IP(保留相同的主机名)时,它仍会读取旧 IP。有时当我执行 ping 时,它会使用新 IP,但执行 telnet 时,我会在命令日志中看到旧 IP。我使用的是 Red Hat Enterprise Linux Server 版本 6.5(圣地亚哥)
答案1
通过标准 glibc 函数完成的地址查找可以使用以下方法缓存神经胶质细胞(这是 glibc 的标准部分,尽管默认情况下很少启用)。
如果 nscd 服务正在运行,告诉它使缓存无效:
nscd -i hosts
(仅仅重启服务并不总是足够的,因为它可能会将缓存存储在磁盘上。另一方面,可能需要重启服务才能重新加载nsswitch.conf变化。)