域名是能够被正常访问, 还是不能够被正常访问, 这件事会直接造成线上业务的连续性受到影响。域名存活状态检测的核心目标是什么。它是在最短的时间内, 准确地判断一个或多个域名, 在当前时刻是否处于正常的活跃状态。

以下这5种方法, 是按照操作难度从低到高进行排列的。它们覆盖了单次查询以及批量监控这两种完全的场景。这样做可以帮助运维人员和站长快速地把域名异常的情况定位到。

一、DNS解析检测(最快,适用于单次查询)

用户可以在终端里面去执行 dig 或者 nslookup 指令, 然后输入目标域名, 来观察系统是否返回有效的 A 记录或者是 CNAME 记录。如果系统返回了 NXDOMAIN, 又或者是没有相应的响应出现的话, 那么就说明这个域名在大概率上已经失效了, 又或者是 DNS 配置还没有正式生效。

这种方法有一个比较明显的好处就是用户完全不需要去注册任何相关的账户, 而且得出的结果具有实时性的特征, 因此特别适合像技术人员这样的群体, 在进行故障排查的过程中快速验证单个域名的状态。

二、WHOIS信息查询(最权威域名存活状态检测域名存活状态检测,适用于确认真实状态)

通过各个注册局公开了的接口去查, 能拿到域名的注册状态, 到期日期还有当前的状态码, 我们要重点看下面这些状态, 客户端锁定指的是 clientHold 表示域名被注册商锁住了, clientExpired 表示域名已经过期了, redemptionPeriod 表示域名进入了赎回期的一个阶段。

如果出现上述状态的话, 虽然在DNS记录方面还没有被清理完毕, 但是域名实际上已经没法使用了, 所以需要马上找到注册商去处理。

三、HTTP/HTTPS请求检测(最贴近用户实际体验)

你可以直接向那个域名发出GET请求去查看结果, 然后仔细观察HTTP响应状态码到底是哪个, 如果状态码显示是200或者是301又或者是302的话, 这表示这个域名是存活的, 并且其背后服务正常运行是没有问题的, 若是返回了404, 那可能仅仅是因为路径填写有误, 但域名本身还是活着的大城群众说事,假如遇到了连接超时或者返回代码为000的情况, 这就明确说明该域名或是其后端的相应服务已经没有办法正常访问了, 在面对需要一并处理的大量域名的时候, 你可以专门写一个脚本让它进行循环发送请求的操作, 并在过程中把每一个域名的响应状况都记录下来, 只要让程序跑起来这一次, 你就会非常清楚所有域名的整体情况。

域名存活状态检测怎么做?5种方法快速判断域名是否还有效(图1)

四、网络探测工具批量检测(适用于多域名场景)

操作者可以利用 nmap 工具里的 DNS 解析模块, 也可以选用批量 ping 脚本, 或者直接用在线的 DNS 批量查询工具, 这些方法都允许一次性对几百个域名执行存活状态的检查。

程序输出的结果里面大体会包含解析得到的 IP 地址、响应的时长以及错误的类型这三列信息, 这样的安排方便用户迅速排除那些已经不能用的域名, 并整理出一份还需要后续处理的清单。

五、专业平台持续监控(适用于长期运维保障)

把域名称都记录到那个专业的监控平台里面去, 还要设置一个定时轮询的任务, 就像每隔30分钟就去检查一遍的那样。一旦DNS里面的记录找不到了, 或者是通过WHOIS查询出来状态有异常的情况。又或者是HTTP请求一直超时, 并且超时的次数或者是时间超过了事先设定好的那个界限值。

在这种情况下, 系统会自动发邮件过来告警, 或者是自动发送短信进行告警通知。我们以 gname.xin 为例, 在将其加入监控列表以后, 平台会按照时间节点推送续费提醒, 具体包括域名到期前的60天、30天以及7天这几次, 这样做是为了确保不会因为疏忽大意而导致域名掉线, 从而对业务造成影响。

当域名刚刚完成转移或者刚刚修改了 DNS 设置的时候, 会有二十四小时到七十二小时的全球传播延迟, 在这个时间里, 不同的检测节点得出的结果可能并不一致, 这是非常正常的现象, 根本不需要去重复进行操作。

如果使用的是经过了 DNSSEC 签名处理的域名, 在进行相关检测的时候, 需要同时把签名链的有效性给验证好。在实行批量检测这个操作的时候, 要注意控制住请求的频率, 建议两次请求之间间隔的时间不要少于哪怕是一秒钟的时间, 这样才能有效地避免触发掉目标服务器那边的流量限制策略。

从整体上来看的话, 如果在日常生活中只需要进行单次的验证操作的话, 那么首选的方案就是使用 DNS 解析这种方式, 如果是需要进行批量化的管理工作, 那么就应当使用相关的工具脚本来进行处理, 而为了能够在长时期内得到持续性的保障, 那就需要依赖专业的监控平台去运行, 并且只要我们能够把上述提到的这些方法全部都合理的结合起来加以运用, 这样就能够实现对域名存活状态方面的全方位以及持续性掌控。