* fix: correct DNS sync results and configuration retention Keep address families independent, reject failed update responses, preserve complete IPv6 addresses, and retain Studio drafts and effective extra settings. Add offline regressions and wire Studio tests into documentation builds. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * test(provider): make disk cache regressions deterministic Align the cache fixture wall clock and file mtime so Windows Python 3.12 clock granularity cannot turn a freshly saved cache into a future-dated file. Keep real disk reads, all cache assertions, production expiry policy and CI matrices unchanged. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: NewFuture <6290356+NewFuture@users.noreply.github.com> Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
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 |
cloudns |
ClouDNS | cloudns 中文文档 | cloudns English Doc | Global DNS hosting service |
debug |
Debug Provider | debug 中文文档 | debug English Doc | IP address printing for debugging |
dnscom / 51dns |
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 |
namesilo |
NameSilo | namesilo 中文文档 | namesilo 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 (Acceleration Domains) |
edgeone_dns |
Tencent Cloud EdgeOne DNS | edgeone_dns 中文文档 | edgeone_dns English Doc | Tencent Cloud EdgeOne DNS Records |
west |
West.cn | west 中文文档 | west English Doc | West.cn / 35.cn DNS service |
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:
# 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.1.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
📚 Related Documentation
- Command Line Configuration - Detailed command line parameter documentation
- JSON Configuration - JSON configuration file format documentation
- Environment Variable Configuration - Environment variable configuration method
- Provider Development Guide - How to develop new providers
- JSON Schema - Configuration file validation schema
If you have questions or need help, please check the FAQ or ask in GitHub Issues.