Skip to content

Callback Provider 配置指南

Callback Provider 是一个通用的自定义回调接口,允许您将 DDNS 更新请求转发到任何自定义的 HTTP API 端点或者webhook。这个 Provider 非常灵活,支持 GET 和 POST 请求,并提供变量替换功能。

返回 所有服务商 查看更多选项

基本配置

参数说明必填示例
id回调URL地址,支持变量替换-https://api.example.com/ddns?domain=__DOMAIN__&ip=__IP__
tokenPOST 请求参数(JSON对象或JSON字符串),为空时使用GET请求可选{"api_key": "your_key"}"{\"api_key\": \"your_key\"}"
endpoint可选,API端点地址,不会参与变量替换-https://api.example.com/ddns
dns固定值 "callback",表示使用回调方式"callback"

完整配置示例

jsonc
{
    "$schema": "https://ddns.newfuture.cc/schema/v4.1.json",
    "dns": "callback",
    "endpoint": "https://api.example.com", // endpoint 可以和 Id 参数合并
    "id": "/ddns?domain=__DOMAIN__&ip=__IP__", //  endpoint 可以和 Id 不能同时为空
    "token": "", // 空字符串表示使用 GET 请求, 有值时使用 POST 请求
    "index4": ["url:http://api.ipify.cn", "public"],
    "index6": "public",
    "ipv4": "ddns.newfuture.cc",
    "ipv6": ["ddns.newfuture.cc", "ipv6.ddns.newfuture.cc"]
}

参数说明

参数说明类型取值范围/选项默认值参数类型
index4IPv4 来源数组参考配置default公用配置
index6IPv6 来源数组参考配置default公用配置
ipv4IPv4 域名数组域名列表公用配置
ipv6IPv6 域名数组域名列表公用配置
proxy代理设置数组参考配置公用网络
sslSSL 验证方式布尔/字符串"auto"truefalseauto公用网络
cache缓存设置布尔/字符串truefalsefilepathtrue公用配置
log日志配置对象参考配置公用配置

请求方式

方法条件描述
GETtoken 为空使用 URL 查询参数
POSTtoken 非空使用 JSON 请求体

GET 请求示例

jsonc
{
    "$schema": "https://ddns.newfuture.cc/schema/v4.1.json",
    "dns": "callback",
    "id": "https://api.example.com/update?domain=__DOMAIN__&ip=__IP__&type=__RECORDTYPE__",
    "index4": ["url:http://api.ipify.cn", "public"],
    "ipv4": "ddns.newfuture.cc",
}
http
GET https://api.example.com/update?domain=ddns.newfuture.cc&ip=192.168.1.100&type=A

POST 请求示例

jsonc
{
    "$schema": "https://ddns.newfuture.cc/schema/v4.1.json",
    "dns": "callback",
    "endpoint": "https://api.example.com",
    "token": {
        "api_key": "your_secret_key",
        "domain": "__DOMAIN__",
        "value": "__IP__"
    },
    "index4": ["url:http://api.ipify.cn", "public"],
    "ipv4": "ddns.newfuture.cc",
}
```http
POST https://api.example.com
Content-Type: application/json

{
  "api_key": "your_secret_key",
  "domain": "ddns.newfuture.cc",
  "value": "192.168.1.100",
}

变量替换

Callback Provider 支持以下内置变量,在请求时会自动替换:

变量说明示例值
__DOMAIN__完整域名sub.example.com
__IP__IP地址(IPv4或IPv6)192.168.1.1002001:db8::1
__RECORDTYPE__DNS记录类型AAAAACNAME
__TTL__生存时间(秒)300600
__LINE__解析线路defaultunicom
__TIMESTAMP__当前时间戳1634567890.123

使用场景

1. 自定义 Webhook

将 DDNS 更新通知发送到自定义 webhook:

jsonc
{
    "endpoint": "https://hooks.example.com",
    "id":"/webhook",
    "token": {
        "event": "ddns_update",
        "domain": "__DOMAIN__",
        "new_ip": "__IP__",
        "record_type": "__RECORDTYPE__",
        "timestamp": "__TIMESTAMP__"
    },
    "dns": "callback",
    "index4": ["default"]
}

2. 使用字符串格式的 token

当需要动态构造复杂的 JSON 字符串时:

jsonc
{
    "id": "https://api.example.com/ddns",
    "token": "{\"auth\": \"your_key\", \"record\": {\"name\": \"__DOMAIN__\", \"value\": \"__IP__\", \"type\": \"__RECORDTYPE__\"}}",
    "dns": "callback"
}

故障排除

调试方法

  1. 启用调试: 在配置中设置 "debug": true
  2. 查看日志: 检查DDNS运行日志中的详细信息
  3. 测试API: 使用curl或Postman测试回调API
  4. 网络检查: 确保网络连通性和DNS解析正常

测试工具

可以使用在线工具测试回调功能:

bash
# 使用 curl 测试 GET 请求
curl "https://httpbin.org/get?domain=test.example.com&ip=192.168.1.1"

# 使用 curl 测试 POST 请求
curl -X POST "https://httpbin.org/post" \
  -H "Content-Type: application/json" \
  -d '{"domain": "test.example.com", "ip": "192.168.1.1"}'

相关链接

Released under the MIT License