【项目案例】域名到期监控系统:域名分散在多个厂商,到期前自动提醒
「项目案例」系列:我做过的定制项目,写清楚客户要什么、解决了什么问题。这类项目不提供源码,文中截图都是演示数据(虚构的 example 域名和账号),不涉及任何客户信息。有类似需求可以直接联系我,文末有方式。
客户的需求
域名这件事的麻烦在于:它平时没人管,一出事就是大事。
- 域名分散在不同的厂商和账号里(阿里云、Cloudflare、GoDaddy、Namecheap……),没有一个地方能看到全部;
- 每个域名服务于不同的项目,到期了影响哪个业务,要翻记录才知道;
- 到期时间靠人记,或者靠厂商发的邮件,邮件还可能进垃圾箱;
- 一旦忘了续费,网站和邮箱直接打不开,还可能被别人抢注。
所以需要的是:一个能集中看、自动查、提前喊你的小系统。
我做的东西
一个页面看清所有域名

图:首页(演示数据)。最上面是总数、将到期、已到期、异常的统计。
- 每个域名记录所属项目、厂商、账户、注册时间、到期时间、名称服务器;
- 按到期时间从近到远排序,最该处理的永远排在最上面;
- 状态分四种:正常、将到期(30 天内)、已到期、异常(查不到到期时间,需要人工看一眼);
- 可以按项目、状态筛选,也可以搜索域名、厂商、账户、项目;
- 能勾选多个批量刷新、编辑、删除。
批量添加、导入导出

图:批量添加。
- 一次粘贴一批域名,一行一个,选好所属项目就行;
- 厂商和账户可以先建成模板,添加时一选就带出来,不用每次手填;
- 支持导出成 CSV,也支持批量导入。
到期时间自动查,不用手填
- 点“刷新”或“查询”,系统会联网通过 RDAP(域名注册信息的公开查询服务)取注册时间、到期时间,再用 DNS 查名称服务器;
- 自动查询时限速、重试:请求之间留间隔,遇到对方限速会按要求等待,不会一口气把对方服务打爆;
- 每天在本地重新计算一遍剩余天数和状态(不联网);每隔 30 天分批联网校准一次,每批之间暂停,避免被限流;
- 有的后缀不提供公开的到期信息,查不到的会标成“异常”,这时可以手动编辑填上到期时间。
到期前 Telegram 提醒

图:系统设置。提醒天数可以自己定,默认是 30、15、7、3、1 天。
- 填上机器人和聊天 ID,勾上启用,域名进入设定的某一档(比如剩余 30 天以内)就推送一次,之后每进入更紧的一档(15 天、7 天……直到已过期)再推送一次,同一批会汇总成一条消息;
- 不会因为服务停了一天就漏掉:按“档位”而不是“正好某一天”判断,下次运行会补上;发送失败也不会当成已提醒,第二天自动重试;
- 续费之后,剩余天数回到最远一档之外,记录自动清零,下次临近到期会重新提醒;
- 有“测试推送”按钮,先发一条确认收得到;
- 页面通过 WebSocket 实时刷新,别人改了数据,你这边不用手动刷新。
解决了什么问题
| 以前 | 现在 |
|---|---|
| 域名散在各个厂商后台,要逐个登录看 | 一个页面看全部,按项目分组 |
| 到期时间靠记忆或厂商邮件 | 自动联网查,到期前 Telegram 推送 |
| 不知道某个域名到期会影响哪个业务 | 每个域名挂在项目下,一眼可知 |
| 新买一批域名要逐个登记 | 一行一个批量添加,厂商账户用模板 |
| 想对账、交接时没有清单 | 一键导出 CSV |
安全方面
- 登录防暴力破解:同一个 IP 连续输错密码(默认 5 次)就会被封,首次封 1 小时,再被封时长翻倍,最长一天;每次输错还会多等 1 秒;有人被封时,Telegram 里会收到一条通知。封禁记录放在内存里,服务重启后清空。
- 没设密码、或用了
admin123这类常见弱口令,服务直接拒绝启动,不会带着默认密码上线。 - 默认只监听本机,前面放 nginx 做 HTTPS;页面和接口同源,默认不开放跨域。
- 实时刷新通道也要登录:页面的实时推送连接,必须先出示登录令牌才会收到任何更新,登出或令牌过期后自动断开。
使用上要知道的几点
- 到期时间来自公开查询服务,不是厂商后台的“续费状态”。你刚续费完,页面里的到期时间要等下一次刷新才会更新,可以手动点“刷新”。
- 查询服务不是所有后缀都支持,查不到的需要手动填,也可以先标记为异常再处理。
- 这个系统只读公开信息,不需要你的域名厂商账号密码,也不会替你续费。账户一栏只是备注,用来提醒你这个域名在哪个账号里。
- Telegram 机器人令牌保存在服务器自己的数据库里,请把服务器本身保护好。
技术栈和交付
后端是 Python(FastAPI),数据存在 SQLite,前端是单页,部署在你自己的服务器上,数据完全在你手里。交付内容包括程序、配置说明和启动脚本,我会帮你部署并跑通第一轮查询和 Telegram 推送。
想要类似的系统?
这个项目不提供源码,但同类的“资产到期提醒”我可以按你的需求来做:域名、SSL 证书、服务器、软件订阅都可以放进同一个后台,提醒渠道也能换成你习惯的方式。
- 官网留言:kuaibuild.com(说一句想做什么就够)
- Telegram:
@kuaibuild
想要类似的东西?网站、Telegram 机器人、运维工具,说说你的需求。
发布需求有想法或问题?去留言板留言 →