![如何避免 DNS 的 NSCD](https://linux22.com/image/37285/%E5%A6%82%E4%BD%95%E9%81%BF%E5%85%8D%20DNS%20%E7%9A%84%20NSCD.png)
我现在使用 NSCD 服务作为 DNS。但有时我看到 NSCD 自行消失,并且 DNS 解析无法正常进行。请告诉我如何避免 DNS 的 NSCD 。如果我们绕过 NSCD 有什么缺点?
答案1
当解析用户、组、主机、服务...时,进程将首先尝试连接到套接字nscd
(类似/var/run/nscd/socket
),我认为没有办法解决这个问题。
如果nscd
已经死掉,连接将失败,因此 nscd 将不会被使用,这应该不是问题。
如果处于挂起状态,则连接可能挂起或成功。如果成功,客户端将发送其请求(给我 IP 地址www.google.com
,给我密码条目niranjan
...)。
现在,您可以配置nscd
(至少是 GNU libc 附带的配置)来禁用任何类型数据库的缓存(例如通过使用enable-cache hosts no
数据库/etc/nscd.conf
)hosts
。
在这种情况下,nscd
会回复客户:我不做缓存客户自行解决。
然而,如果nscd
是在一个挂状态,它甚至可能无法给出这么简单的不会做答案,所以这不一定有帮助。但这可能更接近您想要的效果,而无需完全禁用nscd
。
nscd
是一个缓存守护进程,它的目的是提高性能。禁用它可能会使这些查找速度变慢。然而,这只适用于某些类型的数据库。例如,如果您的用户/服务/组数据库仅位于小文件(/etc/passwd
、/etc/group
、/etc/services
)中,那么使用nscd
这些数据库可能不会带来任何好处(如果有的话)。nscd
对数据库很有用hosts
。但是nscd
,您也可以使用本地缓存 DNS 服务器来dnsmasq
代替使用 。