注册商默认的到期邮件只发一次还被收进了垃圾箱、WHOIS查询脚本要自己写但能同时查50个域名还自动推企业微信、开源工具Domain Admin点几下鼠标就能管几百个域名还能看数据大盘,域名忘记续费这事一年花5分钟就能解决的事偏偏每年都有人为此付出上万的代价
2019年一家做了六年多的外贸B2B站,域名忘了续费,等想起来的时候网站已经打不开了。老板打电话给域名注册商,客服说域名已经进入赎回期,要交1500块才能拿回来——原本续费只要68块。更糟的是,这期间网站停了两天,Google把几百个页面从索引里踢了出去,排名恢复用了三个多月。
域名到期不是小事。一个站做了两三年,权重积累、收录量、外链、品牌搜索量全绑在域名上,一旦被删除释放被别人抢注,这些积累就全归零了。而防住这件事的成本,说穿了就是每年花五分钟确认一下域名什么时候到期,再加一套自动提醒机制。
域名到期的代价,比你想的大得多
| 1 | 正常续费一年68块,赎回期同一年要1500,差价22倍 |
| 2 | 域名停1天,搜索引擎可能降权,恢复需要数周到数月 |
| 3 | 域名被删除释放后,任何人都可以抢注,抢注市场开价几千到几十万 |
| 4 | 同时管几十个域名时,全靠人脑记忆一定会漏,必须上系统化监控 |
一、一个域名从"到期"到"彻底不属于你",中间有四个时间窗口
域名不是一到期就立刻被别人抢走的。从到期日到被删除释放,中间有一段缓冲期,但不同后缀的规则不一样,不搞清楚很容易错过。

域名生命周期五个阶段
阶段一:正常期——域名注册后到到期日前一天,一切正常,可以随意续费、转移。续费价格按正常价格。
阶段二:宽限期(0-45天)——域名到期后的缓冲期。大部分后缀的宽限期是30天左右,期间域名解析正常、网站还能访问,续费价格和正常期一样。这是最后的低成本补救窗口。
阶段三:赎回期(约30天)——宽限期结束后进入赎回期。域名解析停止,网站打不开。这时还能拿回来,但要支付高额赎回费(通常是正常续费的10-20倍,如.com域名赎回费约1500元)。
阶段四:删除期(5天)——赎回期结束后进入删除期(pendingDelete状态),域名进入注册局删除队列。这个阶段你拿不回来了,只能等删除后别人抢注。
阶段五:释放期——域名被删除,重新回到公共注册池,任何人都可以注册。这就是抢注商盯着的时间点。
不同后缀的规则差异不小。.com的宽限期通常是30天,赎回期也是30天;.cn域名没有宽限期,到期当天就停止解析,但赎回期有15天;.org的宽限期只有10天左右。所以不能一概而论"过期后还有一个月",得查具体后缀的规则。
核心结论:监控必须在宽限期内触发提醒,等到赎回期再发现,代价已经翻十几倍了。
二、注册商自带的到期提醒够不够用?
每个域名注册商都会发到期提醒邮件,阿里云、腾讯云、GoDaddy、Namecheap都有。一般是到期前60天、30天、7天、1天各发一封。看起来挺周全的对吧?
但实际使用中有三个致命问题。第一,邮件进了垃圾箱——注册商发的营销邮件太多了("限时优惠""新后缀上线""转入特价"),你的邮箱服务商早就把它归到推广类了,到期提醒也跟着一起被折叠。第二,联系人信息过时了——域名注册时填的管理员邮箱可能是前任同事的、是公司已经停用的邮箱、或者是用来接验证码的临时邮箱。第三,域名分散在多个注册商——有的在阿里云、有的在腾讯云、有的在GoDaddy、有的在Namecheap,每个平台的通知时间、通知方式都不一样,没法统一管理。
尤其是手里管了几十个域名的站长,域名分散在四五个平台是常态。每个平台的到期提醒单独看都没问题,合在一起就是一锅粥——你根本搞不清楚"下个月到期的到底有哪些"。
| 提醒方式 | 覆盖度 | 可靠性 | 多平台统一 | 适合谁 |
|---|---|---|---|---|
| 注册商自带邮件 | 单平台 | 低,进垃圾箱 | 不支持 | 只有一两个域名的个人 |
| WHOIS查询脚本 | 全平台 | 高,自己控制 | 完全统一 | 有编程基础的站长 |
| Domain Admin开源工具 | 全平台 | 高,可视化面板 | 完全统一 | 不想写代码的站长 |
三、Python WHOIS查询脚本,30行代码查完所有域名的到期时间
WHOIS是域名注册信息的公开查询协议。每个域名注册后,注册局会公开它的注册时间、到期时间、注册商、DNS服务器等信息。这些信息是公开的,任何人都可以查,不需要登录任何平台。
Python的python-whois库封装了WHOIS协议的查询逻辑,一行代码就能拿到域名的到期时间。但直接裸用这个库有两个坑:一是有些后缀的WHOIS服务器返回格式不统一,expiration_date字段可能是字符串、可能是datetime对象、可能是列表;二是频繁查询同一个注册局的WHOIS服务器会被限流。
import whoisimport datetimeimport timefrom datetime import date# 域名列表domains = ["example.com", "mysite.cn", "another.org","company.net", "brand.io"]# 到期阈值:提前多少天开始提醒WARN_DAYS = 30def check_expiry(domain):"""查询单个域名的到期时间,返回(域名, 到期日期, 剩余天数)"""try:w = whois.whois(domain)# 有些后缀返回列表,取第一个exp = w.expiration_dateif isinstance(exp, list):exp = exp[0]if exp is None:return (domain, None, None, "WHOIS无数据")# 转成date对象if isinstance(exp, datetime.datetime):exp_date = exp.date()else:exp_date = expdays_left = (exp_date - date.today()).daysif days_left < 0:return (domain, exp_date, days_left, "已过期")elif days_left <= WARN_DAYS:return (domain, exp_date, days_left, "即将到期")else:return (domain, exp_date, days_left, "正常")except Exception as e:return (domain, None, None, f"查询失败: {str(e)[:50]}")# 批量查询(每次间隔1秒防止被限流)print(f"{'域名':30s} {'到期日':12s} {'剩余天数':>8s} {'状态'}")print("-" * 70)for domain in domains:name, exp_date, days, status = check_expiry(domain)if exp_date:print(f"{name:30s} {str(exp_date):12s} {days:>8d}天 {status}")else:print(f"{name:30s} {'-':12s} {'-':>8s} {status}")time.sleep(1) # 礼貌间隔print("\n提示: 剩余天数≤{0}天的域名需要续费。".format(WARN_DAYS))这个脚本跑一遍,就能看到所有域名的到期时间和剩余天数。但仅靠终端输出还不够——你不会每天都手动跑一遍脚本去看。接下来要做的是定时执行+多渠道通知。
WHOIS查询的三个技术细节
1. 限流处理:同一注册局的WHOIS服务器通常限制每分钟5-10次查询。脚本里加了time.sleep(1),50个域名跑完约1分钟,安全不会被封。
2. 日期格式兼容:不同后缀返回的日期格式不同——.com返回datetime对象,.cn可能返回字符串"2026-08-15",代码里做了统一处理。
3. RDAP协议替代:部分新后缀(.top、.xyz、.app)的WHOIS服务器不稳定,可以改用RDAP协议查询。python-whois库高版本已经支持自动切换。
如果不想装Python库
在线WHOIS工具:whois.aliyun.com、whois.chinaz.com、who.is,适合偶尔查一两个。
命令行whois:Linux/Mac自带whois example.com命令,Windows可以装WSL或用PowerShell调用。
浏览器插件:Chrome商店搜"WHOIS",点开任意网页点一下插件就能查当前域名的WHOIS信息。
四、多渠道自动通知,别只靠邮件
邮件提醒最大的问题是"看到了才算数"。一封邮件躺在收件箱里,和没发没什么区别。所以域名到期提醒应该走多渠道——至少要有一条渠道是你每天都会看的。
推荐的通知渠道组合
第一梯队(几乎100%会看到):企业微信群机器人消息、钉钉群机器人、飞书群机器人。这些IM工具每天都会打开,消息弹窗不会被忽略。
第二梯队(大概率会看到):微信公众号模板消息、短信。适合紧急提醒(如距离到期不到7天)。
第三梯队(作为备份):邮件。适合生成月度域名到期报告,作为存档。
企业微信机器人的接入最简单。在群聊设置里添加一个机器人,拿到Webhook地址,Python发一条消息只需要几行代码:
import requestsimport jsondef send_wecom_alert(expiring_domains):"""发送即将到期的域名列表到企业微信群"""webhook_url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=你的机器人KEY"# 构建消息内容lines = ["## ⚠️ 域名到期预警", ""]lines.append(f"以下 {len(expiring_domains)} 个域名将在30天内到期:")lines.append("")for domain, exp_date, days in expiring_domains:if days <= 7:icon = "🔴" # 7天内到期,红色预警elif days <= 15:icon = "🟡" # 15天内,黄色else:icon = "🟢" # 30天内,绿色lines.append(f"{icon} **{domain}**")lines.append(f" 到期日: {exp_date} | 剩余: {days}天")lines.append("")lines.append(f"---")lines.append(f"检测时间: {datetime.datetime.now().strftime('%Y-%m-%d %H:%M')}")payload = {"msgtype": "markdown","markdown": {"content": "\n".join(lines)}}resp = requests.post(webhook_url, json=payload)return resp.json()# 在check_expiry之后调用expiring = [("mysite.cn", "2026-08-15", 19), ("company.net", "2026-08-03", 7)]send_wecom_alert(expiring)钉钉和飞书的机器人接入方式类似,只是消息格式稍有不同。钉钉用msgtype: "markdown",飞书用msg_type: "interactive"。本质上都是HTTP POST一个JSON到Webhook地址。
脚本写好后,用Linux的crontab或Windows的任务计划程序设置每天跑一次:
# Linux crontab,每天早上9点执行0 9 * * * cd /opt/domain-monitor && python3 check_domains.py# Windows 任务计划程序# 创建基本任务 → 触发器:每天 → 操作:启动程序# 程序: python.exe# 参数: C:\scripts\check_domains.py# 起始于: C:\scripts\通知策略的三个关键设计
1. 渐进式提醒:距离到期60天开始提醒,频率从每周一次→每3天一次→每天一次逐级加密。不要一直每天发,人会麻木。
2. 已处理去重:续费完的域名当天就不应该再收到提醒。脚本里加一个已续费名单,匹配到的自动跳过。
3. 异常也通知:WHOIS查询失败(被限流、网络不通)也要发通知。别因为脚本挂了就一直不知道域名要过期了。
五、Domain Admin,不想写代码就直接用它
写脚本适合有编程基础的站长。如果不想碰代码,Domain Admin是目前最成熟的国产开源域名管理工具。部署只要一条Docker命令:
docker run -d \--name domain-admin \-p 8000:8000 \-v /data/domain-admin:/app/data \mouday/domain-admin:latest打开浏览器访问http://你的服务器IP:8000,就能看到一个可视化的域名管理面板。

批量导入域名
支持手动添加、CSV批量导入、从腾讯云/阿里云/Cloudflare等平台一键同步。几十个域名几秒钟就能全部导进去,不用一个一个填。
自动WHOIS查询
系统自动定期查询每个域名的WHOIS信息,到期时间、注册商、DNS全部展示在面板上。支持RDAP协议回退,查询稳定性比手写脚本高。
多渠道到期提醒
内置邮件、企业微信、钉钉、飞书、Telegram、Webhook等通知渠道。设置好到期前多少天提醒,系统自动推送到你每天用的工具里。
数据可视化大盘
域名总数、即将到期数量、已过期数量、各注册商分布、各后缀分布——一个页面全展示。做域名资产汇报时截图就行。
Domain Admin还有一个很实用的功能:SSL证书到期监控。很多站长域名续费了但SSL证书忘了更新,网站HTTPS挂了用户看到"不安全"警告就跑了。Domain Admin能同时监控域名到期和SSL证书到期,一举两得。
如果用的是UC建站系统的独立部署方案,每个站有独立域名和独立IP,多站域名监控这件事更需要集中化管理。UC建站系统自带的多站看板里已经集成了域名到期预警能力——所有站的域名状态、到期倒计时、SSL证书状态在一个页面上统一展示,异常自动推送到绑定的企业微信。不用额外部署Domain Admin,也不用自己写脚本,建站和域名管理在一套系统里闭环。
六、域名抢注市场是怎么运作的,防止被"捡漏"
讲完监控再说一个很多人不知道的事:你的域名一旦进入删除期,抢注商就已经在排队了。
域名抢注(Domain Drop Catching)是一个成熟的产业链。抢注商会持续监控即将删除的域名列表,在域名被注册局释放的几毫秒内自动提交注册请求。抢注平台如DropCatch、NameJet、SnapNames等,背后有几百台服务器24小时不间断地向注册局发送注册请求。
什么样的域名最容易被抢注
有外链权重的:域名有大量高质量外链指向,抢注后可以做301跳转传递权重,或直接建站继承流量。这是抢注市场最值钱的类型。
有品牌价值的:短域名、拼音域名、行业关键词域名,即使没有外链,本身就有投资价值。
有自然流量的:域名本身是精准关键词,每天有直接输入访问的用户。
有收录量的:搜索引擎收录了几百几千个页面,抢注后稍微改改就能恢复排名。
如果你的域名做过两三年SEO,积累了一定权重和外链,在抢注商眼里就是一个"优质标的"。一旦进入删除期,大概率会被抢走,而且抢注拍卖的价格经常是几千起步——远比你正常续费68块钱贵得多。
如果真到了域名被抢注那一步,你有两个选择:一是参与抢注拍卖,和别人竞价把自己原来的域名买回来(价格不可控);二是换一个新域名重新开始(之前所有的SEO积累清零)。哪个选择都比提前续费贵几百倍。
七、多站多域名的管理策略,三个层面都要管到
如果手里有几十个甚至上百个域名,靠单个WHOIS查询脚本也不够用了。域名管理要从三个层面系统化。
到期时间分布
30/60/90天
分三个预警等级监控
多注册商分布
统一视图
阿里/腾讯/GoDaddy全聚合
SSL证书同步
双监控
域名+证书一个不落
续费预算预测
¥/年
年度域名续费成本一目了然
第一层:资产盘点。把所有域名列在一个表格里——域名、注册商、注册日期、到期日期、续费价格、用途(哪个站的、有没有在用)。这一步很多人觉得"太简单了没必要做",但真做的时候会发现总有那么几个域名"我记得是2025年续的,怎么查到是2023年?"。不要相信记忆,相信记录。
第二层:自动监控。用WHOIS脚本或Domain Admin定期扫描所有域名的到期状态。建议设置三个预警等级:到期前90天(蓝色提醒,准备预算)、到期前30天(黄色提醒,安排续费)、到期前7天(红色警告,马上续费)。
第三层:续费策略。重要域名(主站、品牌域名、高权重域名)建议设置自动续费+续费多年(一次续3-5年)。一方面防止遗忘,另一方面搜索引擎对有长期续费记录的域名更信任——一个续了5年的域名比一年一续的域名在搜索引擎眼里更"正经"。次要域名(测试站、备用域名)可以手动续费,但必须纳入监控体系。
三个容易被忽略的域名管理细节
域名锁(Registrar Lock):注册商提供的安全锁定功能,开启后域名不能被转移,防止被社工或账号被盗后转走域名。建议所有重要域名都开启。注意:续费前如果域名被锁,转移注册商需要先解锁。
WHOIS隐私保护:注册商提供的免费隐私保护服务,隐藏你的姓名、邮箱、电话。跟到期监控不冲突——WHOIS查询仍然能看到到期时间,只是看不到联系人信息。
域名转移锁定60天:新注册的域名和刚转入的域名,ICANN规定60天内不能再次转移。如果域名快到到期日了还在转移锁定期内,只能先续费再等60天后转出。这个时间窗口要提前算好。
八、万一已经过期了,不同阶段怎么补救
说完了预防,也说一下万一已经发生了怎么办。不同阶段的补救方案和成本完全不同。
| 当前阶段 | 还能做什么 | 大概费用 | 域名状态 |
|---|---|---|---|
| 宽限期(过期0-30天) | 直接续费,价格和正常续费一样 | 正常续费价(约60-100元/年) | 网站正常访问 |
| 赎回期(过期30-60天) | 支付赎回费后恢复,流程3-7个工作日 | 赎回费约1200-2000元 | 网站已停止解析 |
| 删除期(过期60-65天) | 无法恢复,只能等删除后抢注 | 抢注拍卖价(几千到几十万) | pendingDelete |
| 已释放被抢注 | 联系新持有人协商购买,或放弃 | 不可控 | 已归他人所有 |
注意:不同后缀的宽限期和赎回期长度不一样。.com是30+30天,.cn是0+15天(没有宽限期),.org是10+30天。.cn域名尤其需要注意——到期当天网站就会停止解析,没有缓冲。
说穿了就一句话:域名到期的代价太大了,大到你花在监控上的每一分钟都是值得的。不管你是用Python脚本每天自动跑一遍WHOIS查询,还是用Domain Admin一键管理,甚至是设个日历提醒每年手动看一眼——关键不在于用哪个工具,在于你有没有把域名到期监控放进你的日常运维清单里。一年花五分钟的事,别让它变成几千块的教训。

