【发布时间】:2018-02-05 02:38:06
【问题描述】:
在开始之前,请注意我是新手,还在学习。
昨天 10 小时后,我不得不将所有托管网站移至新服务器(更具体地说,从一个 droplet 到一个新 droplet)。因此,由于网站已移至新服务器,这意味着它们的 IP 地址也会发生变化。因此,我现在更新了所有网站的 dns 配置以指向新的 IP 地址。但我不知道以前的 dns 配置已将 ttl 设置为 86400(1 天)。在 google 上搜索为什么我的网站仍会解析到旧服务器后,我了解到了这个概念。
所以,这基本上意味着旧的 dns 配置 被缓存了 1 天,我必须等待那么久才能看到 域名解析 的变化以反映来自新服务器的网站。
所以,我尝试在域上执行 nslookup 和 dig 命令来检查剩余的 ttl。但是,这就是我现在不高兴的地方。
带有-debug 参数的nslookup 命令给出以下结果:
请注意:- 我已将我网站的域名替换为 (mywebsite.com),并将我的新服务器的 IP 地址替换为 (new.server.ip.address) 从实际 nslookup 结果中得到
nslookup -debug mywebsite.com new.server.ip.address
------------
Got answer:
HEADER:
opcode = QUERY, id = 1, rcode = REFUSED
header flags: response, want recursion
questions = 1, answers = 0, authority records = 0, additional = 0
QUESTIONS:
address.ip.server.new.in-addr.arpa, type = PTR, class = IN
------------
Server: UnKnown
Address: new.server.ip.address
------------
Got answer:
HEADER:
opcode = QUERY, id = 2, rcode = NOERROR
header flags: response, auth. answer, want recursion
questions = 1, answers = 1, authority records = 2, additional = 2
QUESTIONS:
mywebsite.com, type = A, class = IN
ANSWERS:
-> mywebsite.com
internet address = new.server.ip.address
ttl = 14400 (4 hours)
AUTHORITY RECORDS:
-> mywebsite.com
nameserver = ns2.centos-webpanel.com
ttl = 86400 (1 day)
-> mywebsite.com
nameserver = ns1.centos-webpanel.com
ttl = 86400 (1 day)
ADDITIONAL RECORDS:
-> ns1.centos-webpanel.com
internet address = 127.0.0.1
ttl = 14400 (4 hours)
-> ns2.centos-webpanel.com
internet address = 127.0.0.1
ttl = 14400 (4 hours)
------------
------------
Got answer:
HEADER:
opcode = QUERY, id = 3, rcode = NOERROR
header flags: response, auth. answer, want recursion
questions = 1, answers = 0, authority records = 1, additional = 0
QUESTIONS:
mywebsite.com, type = AAAA, class = IN
AUTHORITY RECORDS:
-> mywebsite.com
ttl = 86400 (1 day)
primary name server = ns1.centos-webpanel.com
responsible mail addr = myemail@gmail.com
serial = 2013071601
refresh = 86400 (1 day)
retry = 7200 (2 hours)
expire = 3600000 (41 days 16 hours)
default TTL = 86400 (1 day)
------------
Name: mywebsite.com
Address: new.server.ip.address
现在,这让我感到不安。与上述结果一样,ttl(即使在更改 dns 配置 10 小时后)显示 86400。我希望它显示剩余的 ttl,但 ttl 恒定为 86400。这是否意味着 dns 永远不会更新我的网站?? ttl 只是没有减少。
所以,为了进一步验证,我尝试使用 linux 的 dig command,这就是我得到的结果。
请注意:- 我已根据实际挖掘结果将我网站的域名替换为 (mywebsite.com),并将旧服务器的 IP 地址替换为 (old.server.ip.address)
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.5 <<>> mywebsite.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15423
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;mywebsite.com. IN A
;; ANSWER SECTION:
mywebsite.com. 83221 IN A old.server.ip.address
;; Query time: 0 msec
;; SERVER: 67.207.67.2#53(67.207.67.2)
;; WHEN: Mon Feb 5 01:55:05 2018
;; MSG SIZE rcvd: 44
现在,dig 命令将域解析为我的旧服务器的 IP 地址,并将 ttl 显示为 83221 !!!就像我说的,我更新了 dns 配置以指向我的新服务器的 IP 地址超过 10 小时。但是,即使经过 10 个小时,ttl 仍然显示 83221 !!!!
再次运行 dig 命令确实反映了此处 ttl 的减少,这与 nslookup 命令不同。
那么,你们认为这里一直存在的问题是什么?还是我误会了什么??如果是这样,请纠正我。任何形式的帮助都会有很大的帮助。如果有人可以解释这里发生了什么以及出了什么问题,或者我的新服务器是否有问题,那真的会对我有所帮助。
如果有帮助,我将网站的文件保存在旧服务器和新服务器上。
谢谢。
编辑:-(已解决)
所以这就是解决我所面临的所有问题的方法。我在我的服务器上使用与 freedns 管理器捆绑在一起的 centos 网络面板。因此,freedns 中的一个错误使我的名称服务器和域的 dns 无法更新。所以,我选择了 cloudflare dns,它解决了所有问题。
【问题讨论】:
-
如果您需要相关帮助,请先提供所涉及的真实姓名和 IP。
标签: server dns vps nslookup dig