Skip to content

DNS Provider Configuration Guide

This directory contains detailed configuration guides for various DNS providers. DDNS supports multiple mainstream DNS providers, each with specific configuration requirements and API characteristics.

🚀 Quick Navigation

ProviderService ProviderChinese DocConfiguration DocFeatures
alidnsAlibaba Cloud DNSalidns 中文文档alidns English DocAlibaba Cloud ecosystem integration
aliesaAlibaba Cloud ESAaliesa 中文文档aliesa English DocAlibaba Cloud Edge Security Acceleration
callbackCustom API (Webhook)callback 中文文档callback English DocCustom HTTP API
cloudflareCloudflarecloudflare 中文文档cloudflare English DocGlobal CDN and DNS service
debugDebug Providerdebug 中文文档debug English DocIP address printing for debugging
dnscomDNS.COM51dns 中文文档51DNS English Doc⚠️ Pending verification
dnspod_comDNSPod Globaldnspod_com 中文文档dnspod_com English Doc⚠️ Pending verification
dnspodDNSPod Chinadnspod 中文文档dnspod English DocLargest DNS provider in China
heHE.nethe 中文文档he English Doc⚠️ Pending verification, no auto-record creation
huaweidnsHuawei Cloud DNShuaweidns 中文文档huaweidns English Doc⚠️ Pending verification
noipNo-IPnoip 中文文档noip English DocPopular dynamic DNS service
tencentcloudTencent Cloud DNSPodtencentcloud 中文文档tencentcloud English DocTencent Cloud DNSPod service
edgeoneTencent Cloud EdgeOneedgeone 中文文档edgeone English DocTencent Cloud Edge Security Platform (Acceleration Domains)
edgeone_dnsTencent Cloud EdgeOne DNSedgeone_dns 中文文档edgeone_dns English DocTencent Cloud EdgeOne DNS Records

To add a new provider, create an issue and fill in the template

Automatic Record Creation Support

Most providers support automatic creation of non-existent DNS records, with exceptions:

  • ⚠️he: Does not support automatic record creation, records must be manually created in the control panel
  • ⚠️noip: Does not support automatic record creation, records must be manually created in the control panel

📝 Configuration Examples

Command Line Configuration

CLI provides command line configuration, here are some common command line examples:

bash
# DNSPod China
ddns --dns dnspod --id 12345 --token your_token --ipv4 ddns.newfuture.cc

# Alibaba Cloud DNS
ddns --dns alidns --id your_access_key --token your_secret --ipv4 ddns.newfuture.cc

# Cloudflare (using email)
ddns --dns cloudflare --id user@example.com --token your_api_key --ipv4 ddns.newfuture.cc

# Cloudflare (using Token)
ddns --dns cloudflare --token your_api_token --ipv4 ddns.newfuture.cc

# No-IP
ddns --dns noip --id your_username --token your_password --ipv4 ddns.newfuture.cc

JSON Configuration File

JSON configuration file provides a more flexible configuration method, here are some common JSON configuration examples:

Traditional Single-Provider Format

jsonc
{
  "$schema": "https://ddns.newfuture.cc/schema/v4.1.json",
  "dns": "dnspod",
  "id": "12345",
  "token": "your_token_here",
  "ipv4": ["ddns.newfuture.cc", "*.newfuture.cc"],
  "index4": ["default"],
  "ttl": 600
}

Multi-Provider Format

jsonc
{
  "$schema": "https://ddns.newfuture.cc/schema/v4.1.json",
  "ssl": "auto",
  "cache": true,
  "log": {"level": "INFO"},
  "providers": [
    {
      "provider": "cloudflare",
      "id": "user@example.com",
      "token": "cloudflare-token",
      "ipv4": ["cf.example.com"],
      "ttl": 300
    },
    {
      "provider": "dnspod", 
      "id": "12345",
      "token": "dnspod-token",
      "ipv4": ["dnspod.example.com"],
      "ttl": 600
    }
  ]
}

Multiple Configuration Files Method

Command Line Specification

bash
# Use multiple independent configuration files
ddns -c cloudflare.json -c dnspod.json -c alidns.json

# Use environment variable to specify multiple configuration files
export DDNS_CONFIG="cloudflare.json,dnspod.json,alidns.json"
ddns

Multiple Configuration Files Example

cloudflare.json:

json
{
  "dns": "cloudflare",
  "id": "user@example.com",
  "token": "your-cloudflare-token",
  "ipv4": ["cf.example.com"]
}

dnspod.json:

json
{
  "dns": "dnspod",
  "id": "12345", 
  "token": "your-dnspod-token",
  "ipv4": ["dnspod.example.com"]
}

Environment Variable Configuration

Environment variable configuration provides another configuration method, here are some common environment variable examples:

bash
export DDNS_DNS=dnspod
export DDNS_ID=12345
export DDNS_TOKEN=your_token_here
export DDNS_IPV4=ddns.newfuture.cc
export DDNS_INDEX4=default
ddns --debug

If you have questions or need help, please check the FAQ or ask in GitHub Issues.

Released under the MIT License