当我从 CentOS 6.2 服务器控制台 ping 给定网站时,它会 ping 到该网站的旧 IP 地址。如何强制 CentOS 刷新该网站的缓存 IP?
我搜索后发现我可以使用:
nscd -i hosts
但是当我尝试这个时,我得到了未找到命令的信息。
根据要求的输出dig www.example.com
:
; <<>> DiG 9.7.3-P3-RedHat-9.7.3-8.P3.el6_2.3 <<>> www.example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20322
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;www.example.com. IN A
;; ANSWER SECTION:
www.example.com. 8084 IN CNAME example.com.
example.com. 8084 IN A xxx.xxx.xx.xxx
;; Query time: 8 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Thu Jun 21 15:23:03 2012
;; MSG SIZE rcvd: 69
答案1
如果 DNS 是最近更改的,您可能需要等待长达 48 小时才能让全球的 DNS 服务器跟上。因此,如果您的 CentOS 6.2 服务器位于其他位置,则可能尚未准备就绪。您可以通过提前几天减少 DNS 设置中的 TTL(生存时间)值来避免此类延迟。
答案2
如果 DNS 服务器上的主机名的 IP 已更改,并且您想要刷新本地 DNS,您可以运行(以 root 身份):
/etc/init.d/dnsmasq restart
这将刷新所有缓存的 DNS 条目。有时还有其他进程运行 dnsmasq。您可能必须手动终止 dnsmasq 并使用上述命令重新启动它。
(以 root 身份)
ps aux |grep dnsmasq
killall dnsmasq
/etc/init.d/dnsmasq start
ps aux |grep dnsmasq
祝你好运!
答案3
要确保您的 DNS 服务器正在读取当前文件(在 DNS SOA 服务器上执行此操作):rndc reload
确保刷新本地 DNS 缓存,使旧 IP 消失(在为您的客户端执行 DNS 递归的框上执行此操作):rndc flush