在我开始之前请注意我是一个新手并且还在学习。
昨天10个小时后,我不得不将所有托管网站移动到新服务器(更具体地说 - 从一个小滴到一个新的小滴)。因此,由于网站被移动到新服务器,意味着他们的IP地址也会改变。因此,我更新了所有网站的 dns 配置,以便立即指向新的IP地址。但我没有意识到以前的DNS配置已将ttl设置为 86400 (1天)。我在谷歌上搜索为什么我的网站仍然会解析为旧服务器后,我了解了这个概念。
所以,这基本上意味着旧的 dns配置缓存了1天,我必须等待很长时间才能看到域名解析中的更改以反映来自新服务器的网站。
所以,我尝试在域上执行 nslookup 和挖掘命令,只检查剩余的ttl。但是,这就是我现在感到不安的地方。
带nslookup
参数的-debug
命令给出了以下结果:
请注意: - 我已将(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!就像我说的,超过 10小时,我更新了dns配置以指向我的新服务器的IP地址。但是,即使经过10个小时后,ttl也会说83221 !!!!
再次运行dig命令确实反映了此处ttl
的减少,与nslookup
命令不同。
那么,你们认为这里出现的问题是什么?或者我误解了什么?如果是这样,请纠正我。任何形式的帮助都会给你带来很多帮助。如果有人能够解释这里发生的事情,以及我的新服务器出了什么问题或者出了什么问题,那真的会对我有所帮助。
如果它有所帮助,我保留了网站&#39;两者上的文件 - 旧服务器和新服务器。
感谢。
编辑: - (已解决)
所以这就解决了我面临的所有问题。我在我的服务器上使用centos web面板,它与freedns管理器捆绑在一起。因此,freedns中的一个错误使我的名字服务器和域名保持不变。 dns来自更新。所以,我选择了cloudflare dns并修复了所有问题。
答案 0 :(得分:1)
您的域名配置不正确,请使用dnsviz.net等在线诊断工具,请参阅报告:http://dnsviz.net/d/mkinfra.in/dnssec/
你处于蹩脚的代表团状态。
如果我们为您的域查询.IN
权威域名服务器,则会回复:
mkinfra.in. 86400 IN NS ns1.centos-webpanel.com.
mkinfra.in. 86400 IN NS ns2.centos-webpanel.com.
mkinfra.in. 86400 IN NS ns3.centos-webpanel.com.
mkinfra.in. 86400 IN NS ns4.centos-webpanel.com.
mkinfra.in. 86400 IN NS ns5.centos-webpanel.com.
如果我们为您的域查询这5个域名服务器中的任何一个,则会回复:
mkinfra.in. 86400 IN NS ns1.centos-webpanel.com.
mkinfra.in. 86400 IN NS ns2.centos-webpanel.com.
哪一组记录不一样。您首先需要解决这种差异。
对于您的网站,他们都回复相同:
www.mkinfra.in. 86400 IN CNAME mkinfra.in.
mkinfra.in. 86400 IN A 139.59.63.210
所以他们都回复你的旧IP而不是新IP。您的问题与TTL无关:您的域的权威名称服务器仍未提供您希望的新IP地址,因此您必须正确配置它们。如果您自己动手,请记得更新区域的序列以进行任何更改。
序列实际上是2018012401
,它遵循YYYYMMDDXX模式,因此我们可以推断该区域在1月24日被更改但从那时起没有(或者已更改但是序列未更新,因此新内容未被采用帐户根本。)
并回答您的其他问题:如果您查询权威名称服务器,您将始终获得相同的TTL,这是每个设计。只有当您查询解析和缓存名称服务器时,您才会看到TTL从一个查询减少到另一个查询,因为案例正在慢慢忘记它过去解决的数据。
永远不要使用nslookup
但始终使用dig
但始终指定您要求人们检查您正在执行的操作时使用的命令(指定您使用@
查询的名称服务器非常重要参数dig
,因为结果将与权威或递归名称服务器大不相同。)