我刚刚更新了我托管的网站的DNS 记录(、、ns1
) ,但我仍然会看到域名注册商停放页面。ns2
ns3.myhostingcompany.com
我想看看问题是否出在 Ubuntu 的缓存 DNS 记录上。有没有办法清除 Ubuntu 的 DNS 缓存?(如果存在这样的事情?)
答案1
Ubuntu 17.04 及更高版本(18.04)
从 Ubuntu 17.04 开始,systemd-resolve 用于 DNS。您可以像这样刷新 systemd 的缓存:
sudo systemd-resolve --flush-caches
Ubuntu 22.04 及更高版本
sudo resolvectl flush-caches
答案2
对于 18.04 及更高版本
适用于 11.10 及以下版本
Ubuntu 默认不缓存 DNS 记录,因此,除非您安装了 DNS 缓存,否则没有什么可清除的。
DNS 记录可能会被您的提供商的 DNS 服务器缓存,因此如果您想检查所做的 DNS 更改是否成功,您可以使用 dig 查询您域名托管服务的 DNS 服务器:
dig -t a ns1.myhostingcompany.com @domain_registrar_dns_server
如果您希望 Ubuntu 开始缓存 DNS,我建议pdnsd
与一起安装resolvconf
。nscd
因为它存在缺陷,因此不建议这样做。
答案3
12.04
Ubuntu 12.04 使用dnsmasq
它内置于network-manager
,但它没有缓存 DNS,因此无需刷新它。下面是我的一个示例行syslog
来证明这一点:
dnsmasq[2980]: started, version 2.59 cache disabled
也不需要任何配置dnsmasq
。如果你使用库存设置运行,它不会缓存 DNS,至于要这样做,你必须明确将其设置为Ubuntu 文章描述。
如果你想刷新设置,你可以禁用然后启用网络或运行
sudo service network-manager restart
这将重新启动,dnsmasq
因为它已内置于network-manager
;请检查您的syslog
以获取这方面的证据。
如果您使用有线连接,则 dhcpnetwork manager
将直接从路由器获取设置,当您登录 Ubuntu 时,您的连接将自动建立。如果您可以通过 Web 界面访问路由器,则可以检查路由器中的设置是否正确,必要时可以重新启动路由器。如果这是 DNS 的一般问题,您可以尝试使用 Google DNS 而不是您的 ISP DNS,有关更多信息,请参阅详细内容在这里。
答案4
对于 12.04:
Ubuntu 12.04 使用 dnsmasq 缓存 DNS(请参阅man dnsmasq
)。使用以下命令清除缓存:
sudo kill -HUP $(pgrep dnsmasq)