我在 ubuntu 上有一个 VPS。我还配置了 DNS(ns1.example.com、ns2.example.com),并将 2 个测试域连接到这些 NS(我在域注册站点的记录中为 2 个示例域写了这些 NS)。现在,如果我使用 nslookup 搜索这些域 - 找不到任何记录。我想创建一个记录,将这些域与名称服务器的 IP 连接起来。对于 firstexample.com,它将是 31.172.74.55(为 ns1.example.com 虚构的 IP),对于 secondexample.com,它将是 79.132.156.160(为 ns2.example.com 虚构的 IP)。我该怎么做?我正在使用 bind,通过 vesta 创建 DNS,但我想知道如何使用终端创建记录来编写脚本,该脚本将自动为新域创建记录以节省时间。我写了这个命令nslookup csgo.sbs
。结果是connection timed out; no servers could be reached
。dig
有相同的回复
答案1
为了诊断域名的正确注册和名称服务器的良好工作状态,请从根名称服务器开始手动追溯递归查找,直到到达目标域或遇到错误。对于您的情况,这将产生:
~$ dig +noall +authority +answer ns sbs.
sbs. 170959 IN NS d.nic.sbs.
sbs. 170959 IN NS c.nic.sbs.
sbs. 170959 IN NS a.nic.sbs.
sbs. 170959 IN NS b.nic.sbs.
~$ dig +noall +authority +answer ns sbs. @g.root-servers.net.
sbs. 172800 IN NS a.nic.sbs.
sbs. 172800 IN NS b.nic.sbs.
sbs. 172800 IN NS c.nic.sbs.
sbs. 172800 IN NS d.nic.sbs.
~$ dig +noall +authority +answer ns csgo.sbs. @a.nic.sbs.
csgo.sbs. 3600 IN NS ns1.makeuppro.shop.
csgo.sbs. 3600 IN NS ns2.makeuppro.shop.
~$ dig +noall +authority +answer ns csgo.sbs. @ns1.makeuppro.shop.
;; connection timed out; no servers could be reached
~$ dig +noall +authority +answer ns csgo.sbs. @ns2.makeuppro.shop.
;; connection timed out; no servers could be reached
这表明服务器ns1.makeuppro.shop
和ns1.makeuppro.shop
已正确注册为域的名称服务器csgo.sbs
,但不回答来自互联网的 DNS 查询。
~$ dig +noall +authority +answer a ns2.makeuppro.shop.
ns2.makeuppro.shop. 1740 IN A 79.132.138.120
~$ dig +noall +authority +answer a ns1.makeuppro.shop.
ns1.makeuppro.shop. 1799 IN A 79.132.138.120
告诉我们这两个服务器名称都引用同一个 IPv4 地址,79.132.138.120
因此它们实际上是同一个服务器。
下一步是检查该地址是否正确,到该地址的端口 53 的 UDP 数据包是否到达该服务器(而不是例如被防火墙阻止),BIND(或其他 DNS 服务)是否在该服务器上运行并监听端口 53,它是否正在接收和响应这些数据包,以及响应是否到达开放的互联网(而不是例如再次被防火墙阻止)。
一旦您以这种方式查明问题,您就可以采取适当的措施来解决它,例如修复 BIND 配置中的启动问题或与您的 VPS 提供商协商在其防火墙中打开端口 53。