ddns-go + Server酱:公网IP变化与域名更新通知

效果:当家庭宽带公网 IP 地址发生变化,或 DDNS 域名更新成功/失败时,你将在微信上立即收到通知。

前置条件

  1. 一个 Server酱 SendKey:用于接收消息。如果你还没有,可以查看 30 秒获取 SendKey 教程
  2. 已安装并运行 ddns-go:确保你的 ddns-go 服务已正常启动,并能通过 Web 管理界面访问。

配置步骤

  1. 获取 SendKey:登录 sct.ftqq.com,在「SendKey」页面复制你的 SendKey(本文示例使用 SCT 开头的 Turbo SendKey;sctp 开头的 Server酱³ SendKey 端点不同,见 SendKey 教程)。

  2. 打开 ddns-go Web 管理界面,找到「Webhook」设置区域(具体入口以应用内实际显示为准)。

  3. 填写 Webhook URL:在 Webhook URL 或类似字段中,粘贴以下链接,并替换其中的 你的SENDKEY

    https://sctapi.ftqq.com/你的SENDKEY.send?title=你的公网IP变了&desp=主人IPv4变了#{ipv4Addr},域名更新结果:#{ipv4Result}
    
  4. 配置触发条件与变量

    • Webhook 请求方式:如果 RequestBody 或请求体字段留空,ddns-go 将发送 GET 请求(上述 URL 示例即为此方式)。如果填写了内容,则会发送 POST 请求。
    • 可用变量:你可以在 desp 参数中自由组合使用以下变量来定制消息内容:
      • #{ipv4Addr}:新的 IPv4 地址。
      • #{ipv4Result}:IPv4 的 DDNS 更新结果(例如:未改变、失败、成功)。
      • #{ipv4Domains}:IPv4 对应的域名列表。
      • #{ipv6Addr}, #{ipv6Result}, #{ipv6Domains}:IPv6 对应的变量。
      • #{timestamp}:UTC 时间戳。
    • 触发时机:根据官方说明,域名更新成功或失败时都会触发此 Webhook 回调。
  5. 保存并测试:保存 ddns-go 的配置。你可以手动触发一次 DDNS 更新检查,或在公网 IP 实际发生变化时,验证是否能在微信上收到通知。

完整示例

以下是一个在 ddns-go 的 Webhook URL 字段中配置的完整示例(官方 README 风格,单行文案),同时包含 IPv4 与 IPv6 的信息:

https://sctapi.ftqq.com/你的SENDKEY.send?title=你的公网IP变了&desp=IPv4:#{ipv4Addr},结果:#{ipv4Result},域名:#{ipv4Domains};IPv6:#{ipv6Addr},结果:#{ipv6Result}

保存后,当 IP 变化或域名更新时,你将收到包含新地址与更新结果的通知。

常见问题

额度是多少,会很快用完吗? 免费版每日可发送 5 条消息。对于 IP 变更通知这类低频场景完全足够。订阅会员目前特价最低 3 元/月,一天最多可发 1000 条(价格详情)。

配置后没有收到消息怎么办? 首先,请确保 ddns-go 的 Webhook 功能已启用且 URL 填写无误。然后,参考 Server酱 消息收不到通用排查指南 进行检查,例如确认 SendKey 是否正确、消息通道是否配置等。

有发送频率限制吗? 为防止滥用,Server酱 对 API 调用有频率限制,每分钟最多 50 条。DDNS 更新通知的触发频率远低于此限制,无需担心。

消息可以推送到钉钉或飞书吗? 可以。Server酱 支持将消息转发到企业微信应用、钉钉群机器人、飞书群机器人等。你只需在 Server酱 官网配置对应的接收通道即可,详见 通道配置指南

相关集成

懒人方案:把这段话复制给你的 AI 助手

把下面这段文字原样粘贴给 Claude Code、Cursor 或任何 AI 编程助手,它就会替你完成 Server酱 的接入:

请帮我把 Server酱 微信通知接入到我当前的项目/工具中:
1. API:POST https://sctapi.ftqq.com/{SendKey}.send,参数 title(必填,不能含换行)、desp(正文,支持 Markdown,可选);成功时返回 JSON 的 code 为 0。
2. 如果我的 SendKey 以 sctp 开头,则改用 https://{uid}.push.ft07.com/send/{SendKey}.send,uid 是 SendKey 中 sctp 与 t 之间的数字。
3. SendKey 从环境变量 SERVERCHAN_SENDKEY 读取;如果没有,提醒我到 https://sct.ftqq.com 免费获取(每天 5 条额度)。
4. 安全要求:不要把 SendKey 硬编码进代码、不要打印到日志、不要提交到 git。
5. 频率约定:任务结束发 1 条结果摘要即可,批量任务合并成一条,不要每步都推。
请根据我当前的项目和场景直接写好代码/配置并验证。