DDNS

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

Provider Service Provider Chinese Doc Configuration Doc Features
alidns Alibaba Cloud DNS alidns 中文文档 alidns English Doc Alibaba Cloud ecosystem integration
aliesa Alibaba Cloud ESA aliesa 中文文档 aliesa English Doc Alibaba Cloud Edge Security Acceleration
callback Custom API (Webhook) callback 中文文档 callback English Doc Custom HTTP API
cloudflare Cloudflare cloudflare 中文文档 cloudflare English Doc Global CDN and DNS service
debug Debug Provider debug 中文文档 debug English Doc IP address printing for debugging
dnscom DNS.COM 51dns 中文文档 51DNS English Doc ⚠️ Pending verification
dnspod_com DNSPod Global dnspod_com 中文文档 dnspod_com English Doc ⚠️ Pending verification
dnspod DNSPod China dnspod 中文文档 dnspod English Doc Largest DNS provider in China
he HE.net he 中文文档 he English Doc ⚠️ Pending verification, no auto-record creation
huaweidns Huawei Cloud DNS huaweidns 中文文档 huaweidns English Doc ⚠️ Pending verification
noip No-IP noip 中文文档 noip English Doc Popular dynamic DNS service
tencentcloud Tencent Cloud DNSPod tencentcloud 中文文档 tencentcloud English Doc Tencent Cloud DNSPod service
edgeone Tencent Cloud EdgeOne edgeone 中文文档 edgeone English Doc Tencent Cloud Edge Security Platform

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:

📝 Configuration Examples

Command Line Configuration

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

# 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

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

Multi-Provider Format

{
  "$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

# 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:

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

dnspod.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:

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.