- 零成本用Cloudflare Workers搭建企业级域名监测服务,自动发现过期域名并推送告警。

2026-09-02

兄弟们,先别急着划走。我知道一看到“企业级”三个字,你脑子里蹦出来的可能是几万块的商业监控软件、一堆要维护的服务器、还有每周都要伺候的告警规则。但我今天要说的这套方案,成本是零,效果却一点不打折扣。

先讲个我上周亲眼见的真事。一个哥们儿公司有个老系统,域名是 test-api-2020.com 这种。结果呢?域名悄悄过期了,没人知道。直到客户打电话来说“你们系统怎么打不开了”,一行人才手忙脚乱去续费。最坑的是,域名被抢注了,挂了个菠菜网站。公司被迫换新域名,那改配置、发通知、等DNS生效的折腾劲儿,够喝一壶的。

其实这种问题,本质上就是你不关心域名,域名也就不关心你。域名就像公司的身份证,你忘了去换新证,人家当然有权把你这号注销了。

那怎么办?花大钱上监控平台?没必要。

今天的主角是 Cloudflare Workers。听起来高大上?你可以把它理解成一个机场贵宾厅。你不用在机场买套房(租服务器),也不用雇人打扫(做运维),只要把代码往那儿一放,它就能帮你干活。而且这个贵宾厅有个 cron触发器,相当于给你装了个免费闹钟,到点就喊你起床干活。

具体咋干?

第一步:创建一个Worker

登录Cloudflare控制台,找到Workers & Pages,新建一个Worker。啥代码逻辑都不用懂,直接把我下面这个“域名体检员”的脚本扔进去就行。

export default {
  async scheduled(event, env, ctx) {
    // 这里填你要监控的域名列表
    const domains = ['example.com', 'test-api-2020.com', 'my-company.net'];
    
    for (const domain of domains) {
      const result = await checkDomain(domain);
      if (result.expiringSoon || result.expired) {
        await sendAlert(domain, result);
      }
    }
  }
}

别管代码长啥样,你只要知道:这个“体检员”会每天按时给每个域名做检查,看它是不是快到期了,或者已经过期了。检查方式是调用一个免费的域名信息API(比如RDAP),就像你去药店问一下:这药过期没?

第二步:设置闹钟

在Worker设置里,找到“Triggers”,添加一个Corn Trigger。比如设置成每天上午9点跑一次。这就像你给手机设了个闹钟,提醒自己该查一眼了。频率不用太高,域名过期又不是地震,一天一次绝对够。

第三步:推送告警

这是最核心的一环——发现过期了怎么通知你?用企业微信机器人、钉钉机器人、或者邮件都行。原理就是Worker里内置了 fetch() 能力,相当于帮你发一条消息。

打比方说,Worker就像你的私人助理。助理发现你身份证要过期了,马上发微信告诉你:“哥,你的XX域名还有3天过期,别忘了去续费。”

我公司现在用的是企业微信机器人,因为方便@整个运维组。下面是核心的推送代码逻辑:

async function sendAlert(domain, checkResult) {
  await fetch('https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=YOUR_KEY', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      msgtype: 'text',
      text: { content: `⚠️ 域名告警:${domain} 即将到期,请立即处理!` }
    })
  });
}

就这么简单。你甚至不需要去单独部署一台服务器。代码放在Cloudflare的“贵宾厅”里,全地球跑,速度还快。

除了查过期,还能干啥?

这方案最爽的地方在于:既然是用代码控制,你就能玩出花来。比如:

我再说一个真实案例。 去年我们公司有个域名因为邮箱收不到验证邮件,续费失败,结果域名掉了解析,导致一个线上小程序的接口全军覆没。自从搭了这个Worker,每天9点定时检查几十个域名的到期时间。群里虽然偶尔会收到“某某域名还剩60天到期”的温馨提示,但再也没有人半夜爬起来哭爹喊娘。

这活儿,需要花多少钱?

Cloudflare Workers的免费额度是每天10万次请求,你查一百个域名一天也就几百次请求,零成本,随便造。唯一需要的,是你有一个Cloudflare账号,这玩意儿注册不要钱吧?

最后来点实在的提醒:

  1. 代码里写好你的企业微信机器人地址,别用我的 YOUR_KEY 占位符。
  2. 域名列表记得维护,新域名上线了就加进去,旧域名下线了就删掉,别让它“操心”不存在的目标。
  3. 告警别太频繁,设置成到期前30天、7天、3天各提醒一次就够了。天天提醒,最后大家都免疫了,真正的紧急告警反而没人看。

对于预算有限又要“企业级”体验的团队来说,这套方案算是把羊毛薅到了极致。当然,如果你的需求更复杂——比如要监控几十个子域名的TXT记录变动,或者要做更深层的安全检测,自然还有别的路子。更多方案可访问 itfangan.com,上面有不少类似的花小钱办大事的思路,都是我平时收藏的。

好了,今天分享就到这。要代码的留言,我整理好了发给你。别客气,IT这行,互相帮衬才走得远。