如何清除 Ubuntu 中的 DNS 缓存?

igo*_*s07 45 dns ubuntu

我在 Ubuntu 9.10 中遇到了与 DNS 解决相关的问题。
在向我的 ISP 抱怨之前,我想刷新我的本地 DNS 缓存,就像在 Windows 中一样ipconfig /flushdns

我怎么能在 Ubuntu 中做到这一点?

小智 54

Øhh,ubuntu默认缓存 DNS。所以没有什么可以冲洗的!(但也许您的 SOHO 路由器可以)。安装 nscd 将使 ubuntu 缓存 DNS,之后您可以清除缓存 - 但这不是重点,当您还没有安装它时!

  • 出于好奇,我在 14.04 上运行 `nslookup` 告诉我响应来自服务器 `127.0.0.1`。但是 - 据我所知 - 我没有安装 DNS 缓存(既不是 `nscd` 也不是 `dnsmasq`)。我在 Kubuntu 上......这可能是 KDE 网络管理器的事情吗? (3认同)
  • @LJ_1102 @ exhuma 那将是 Ubuntu 的网络管理器,它作为本地 DNS 服务器进行侦听,但将所有请求转发到定义的任何内容。作为副作用(或设计上),这允许您从界面动态更改 DNS 服务器,而无需 root 权限。例如,参见这个问题:https://unix.stackexchange.com/questions/59414/understanding-dns-in-ubuntu-12-04 (2认同)

ytj*_*ohn 19

Ubuntu 12.04 以后使用 dnsmasq 作为本地缓存。向它发送 SIGHUP (sudo killall -HUP dnsmasq) 将重新读取缓存。

注意
当它收到 SIGHUP 时,dnsmasq 清除其缓存,然后重新加载 /etc/hosts 和 /etc/ethers 以及 --dhcp-hostsfile、--dhcp-optsfile 或 --addn-hosts 给出的任何文件。为所有现有的 DHCP 租约调用 dhcp 租约更改脚本。如果设置了 --no-poll SIGHUP 还会重新读取 /etc/resolv.conf。SIGHUP 不会重新读取配置文件。


小智 13

请尝试以下操作:

sudo /etc/init.d/dns-clean start
Run Code Online (Sandbox Code Playgroud)

这个对我有用。