当前位置: 首页 > 面试题库 >

Linux中的DNS缓存

燕意蕴
2023-03-14
问题内容

我对DNS缓存感到困惑。我正在编写一个小型转发代理服务器,并想在Linux系统上使用OS DNS缓存。

如果我理解正确,则在浏览器级别存在DNS缓存。然后在OS级别进行DNS缓存(Windows拥有DNS缓存。我不确定Linux发行版是否默认具有它)。

那么,浏览器/代理服务器如何使用OS DNS缓存?我正在尝试查找是否可以依靠Linux进行DNS缓存,而不是自己在代理内部进行缓存。

谢谢


问题答案:

在Linux(可能是大多数Unix)上,除非安装并运行了nscd,否则没有操作系统级DNS缓存。即使这样,至少在Debian中也默认禁用了nscd的DNS缓存功能,因为它已损坏。实际的结果是您的Linux系统很可能不执行任何OS级DNS缓存。

您可以在应用程序中实现自己的缓存(根据diegows的评论,就像对Squid所做的那样),但我建议不要这样做。这是很多工作,很容易弄错(nscd弄错了!!!),它可能不像专用DNS缓存那样容易调整,并且它复制了应用程序外部已经存在的功能。

如果使用您的软件的最终用户需要DNS缓存,因为DNS查询负载足够大而成为问题,或者到外部DNS服务器的RTT足够长而成为问题,那么他们可以安装缓存DNS服务器,例如Unbound与应用程序在同一台计算机上,配置为缓存响应并将未命中转发到常规DNS解析器。



 类似资料:
  • 问题内容: 有没有办法查看/转储java.net api使用的DNS缓存? 问题答案: 这是一个打印正负DNS地址缓存的脚本。

  • 问题内容: 我正在构建一个测试爬网程序,并且想知道Go(golang)是否缓存DNS查询。我没有看到有关dnsclient中缓存的任何信息。添加到任何搜寻器以防止大量额外的DNS查询似乎很重要。 Go(1.4+)是否缓存DNS查找? 如果不是,那么debian / ubuntu / linux,windows或darwin / OSX是否可以在网络级别进行任何缓存? 问题答案: 您的问题的答案是否

  • 问题内容: 在一个课堂项目中,我的老师告诉我们进行一些代码评估(C语言),并且这样做,我们需要在测试期间禁用磁盘缓存。 当前我正在使用Ubuntu 12.04,该怎么做? 谢谢。 问题答案: 您需要root用户权限才能执行此操作。您可以运行命令以禁用写缓存,在该驱动器中必须将驱动器替换为设备: 您还可以像这样选择性地禁用对单个分区的写缓存:。 要重新启用缓存,只需使用参数。 男子hdparm的,人

  • 问题内容: 对我而言,尚不清楚两个Linux内存概念和之间有什么区别。 缓冲区的策略是先进先出 缓存的策略是“最近最少使用”。 我对吗? 特别是,我正在查看两个命令:和 问题答案: “缓冲区”表示RAM的多少部分专用于缓存磁盘块。“缓存”类似于“缓冲区”,只是这次它缓存文件读取中的页面。 引用自: https://web.archive.org/web/20110207101856/http://

  • 本文向大家介绍Linux下用dnsmasq做dns cache server的配置方法,包括了Linux下用dnsmasq做dns cache server的配置方法的使用技巧和注意事项,需要的朋友参考一下 目前最新版是2.7.1 ,可去其FTP下载:http://www.thekelleys.org.uk/dnsmasq/ 安装过程比较简单 keepalived的配置很简单,只需要配置一个VIP

  • 您可以使用cPanel的此接口来查找域的常规DNS。 它将为您提供该域的IP地址,邮件服务器和原始DNS信息。 这对于检索网络信息很有用。 域查找 此工具检索域的IP地址并显示域使用的电子邮件主机。 它还显示域的原始DNS数据。 要查找域,请使用以下步骤 - Step 1 - 通过单击cPanel的“高级”部分下的“跟踪DNS链接”打开cPanel跟踪DNS。 Step 2 - 在域查找界面中,输