【问题标题】:Move website to new server but DNS resolving to old server's ip address [closed]将网站移至新服务器,但 DNS 解析为旧服务器的 IP 地址 [关闭]
【发布时间】:2018-02-05 02:38:06
【问题描述】:

在开始之前,请注意我是新手,还在学习。

昨天 10 小时后,我不得不将所有托管网站移至新服务器(更具体地说,从一个 droplet 到一个新 droplet)。因此,由于网站已移至新服务器,这意味着它们的 IP 地址也会发生变化。因此,我现在更新了所有网站的 dns 配置以指向新的 IP 地址。但我不知道以前的 dns 配置已将 ttl 设置为 86400(1 天)。在 google 上搜索为什么我的网站仍会解析到旧服务器后,我了解到了这个概念。

所以,这基本上意味着旧的 dns 配置 被缓存了 1 天,我必须等待那么久才能看到 域名解析 的变化以反映来自新服务器的网站。

所以,我尝试在域上执行 nslookupdig 命令来检查剩余的 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


【解决方案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 参数指定您查询的名称服务器非常重要,因为结果将与权威或递归名称服务器大不相同)。

【讨论】:

  • 您的权威域名服务器仍然服务于旧 IP。序列号还是一样的。是否正确更新了 zone,包括增加序列号和重新加载服务器?
  • 感谢您帮助我。 dnsviz.net 实用程序似乎很奇怪,因为它仍然解析为旧的名称服务器。我使用 mxtoolbox、leafdns 和 gsuite toolbox dig 实用程序进行所有诊断,它们似乎与我的幼稚更相关。所以这就是解决我面临的所有问题的方法。我在我的服务器上使用与 freedns 管理器捆绑在一起的 centos 网络面板。因此,freedns 中的一个错误使我的名称服务器和域的 dns 无法更新。所以,我选择了 cloudflare dns,它解决了所有问题。我真的很感谢你的帮助。再次感谢。
  • dnsviz 执行从根开始的正常解析路径,类似于我在回答中所做的。如果它没有看到您想要的名称服务器,则意味着名称服务器没有在注册表级别更改,或者尚未发布。我仍然建议使用dnsvizzonemaster,因为它们更详细。很高兴您找到了解决方案。
  • 非常感谢您的帮助,需要最后一点帮助。请不要介意,只是希望您从答案中删除我的服务器的实际数据。请用虚拟数据、虚拟域名、名称服务器和 IP 地址替换它。谢谢。
  • @parekhdhruv04 我在这里根本看不到任何私人信息 - IP 地址是您告诉世界各地的 DNS 层次结构以向任何愿意询问的人宣传的内容。
猜你喜欢
  • 1970-01-01
  • 2016-09-11
  • 2016-04-08
  • 1970-01-01
  • 2016-04-25
  • 2013-05-18
  • 2020-12-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多