如何设置Whois变更提醒及时掌握域名动态?
配置Whois变更监控时,重点盯注册商、到期时间、域名状态、DNS服务器和注册人邮箱;开启注册商到期提醒,并用RDAP定时生成快照、脚本比对关键字段后邮件告警,即可低成本及时掌握域名变更。
学完这篇,你能给自己的域名配上一套 WhoIs 变更监控,注册商、DNS 服务器、到期时间这些关键字段一有变动就能收到通知,不用再靠手动去查。
第一步:先想清楚要盯哪些字段
这一步是定监控范围,做完你会知道哪些变化值得报警、哪些可以直接忽略。在域名量不大的情况下,值得盯的通常就这几项:注册商(Registrar)、到期时间(Expiry Date)、域名状态(Domain Status,比如是否出现 clientHold)、DNS 服务器(Name Server)、注册人邮箱(Registrant Email)。其中 DNS 服务器和域名状态最敏感,被改往往意味着域名被劫持或转移申请已发起。
注意:注册人姓名、地址这类字段在 GDPR 生效后多数后缀已被脱敏成 “REDACTED FOR PRIVACY”,如果你把它纳入对比,几乎每次查询结果都会有细微差异,只会产生大量无用告警。
第二步:开启注册商自带的到期与变更提醒
这一步是利用现成功能,做完你能拿到最基础的到期提醒,零成本。以阿里云为例:登录后进入「域名控制台 → 域名列表」,勾选域名,页面上方有「更多 → 域名到期提醒设置」,可设置提醒方式和提前天数;腾讯云在「DNS 解析 DNSPod → 我的域名」里也有到期通知。注册商的通知邮箱务必填一个你每天都会看的地址。
注意:注册商提醒基本只覆盖「到期」和「续费失败」,Whois 字段被改(比如 NS 被换掉)通常不会主动通知你,所以这一步只是保底,不能替代后面的监控。
第三步:用 RDAP 拉取结构化数据做定时快照
这一步是把域名信息抓下来存成文件,做完你就有了可以对比的基线。现在多数后缀都支持 RDAP,返回的是 JSON,比传统 whois 文本好解析、也不会被端口封禁:
mkdir -p /var/log/domainwatch
curl -s "https://rdap.verisign.com/com/v1/domain/example.com" \
-o /var/log/domainwatch/example.com.$(date +%F).json
.com / .net 走 rdap.verisign.com,其他后缀把域名提交到 https://rdap.org/domain/example.com 会自动跳转到对应注册局。第一次跑完,就有了今天的快照文件。
第四步:写对比脚本并接入告警
这一步是让系统自动告诉你「变了」,做完变更会推到你邮箱或群里。用一个简单的 shell 脚本比对最近两天的快照,只比对关心的字段:
#!/bin/bash
D=/var/log/domainwatch
for f in $D/*.json; do
base=${f%.$(date +%F).json}
prev=$(ls -1 $base.*.json | tail -2 | head -1)
[ "$prev" = "$f" ] && continue
for k in status ldhName; do
a=$(grep -o "\"$k\":[^,]*" "$prev")
b=$(grep -o "\"$k\":[^,]*" "$f")
[ "$a" != "$b" ] && echo "变更: $f 字段 $k" | mail -s "域名变更告警" you@example.com
done
done
用 crontab -e 加一行 0 8 * * * /opt/domainwatch/check.sh,每天早上八点跑一次。想推到钉钉或企业微信,把 mail 换成 curl 发 webhook 即可。
注意:传统
whois命令有速率限制,同一 IP 高频查询会被注册局临时封禁,脚本间隔别低于每小时一次;用 RDAP 也建议控制在每天 1 到 4 次。
第五步:给关键域名加人工双保险
这一步是补上自动化覆盖不到的地方,做完心里更踏实。对承载业务的域名,除了脚本,再把域名列入日历提醒,在到期前 60 天、30 天各查一次;注册商账号开启二次验证,注册邮箱本身也要开二次验证,因为邮箱被盗等于域名被盗。
小结
- 监控字段聚焦注册商、到期时间、域名状态、NS、注册人邮箱,别把脱敏字段纳入对比;
- 注册商自带的提醒只保到期,不保字段变更,必须自己补监控;
- 优先用 RDAP 的 JSON 接口做快照,比 whois 文本稳定、好解析;
- 对比脚本 + crontab 每天跑一次,变更推到邮箱或群机器人;
- 高频查询会被封 IP,查询间隔控制在每小时一次以上;
- 关键域名的注册商账号和注册邮箱都要开二次验证。
免责声明:本文涉及的第三方接口、命令行工具及云厂商控制台界面可能随版本更新发生变化,实际操作请以你所用平台的最新官方文档为准;脚本示例仅用于演示思路,上生产前请自行测试并做好备份。
转载请注明出处,版权归原作者所有。