🚀 智能时间段DNS解析切换工具 - 根据时间段自动切换Cloudflare DNS记录的IP地址
- ⏰ 时间段切换: 支持按时间段自动切换IP(如白天/夜间不同线路)
- 🎯 精确替换: 只替换指定的IP记录,完全保留域名的其他解析记录
- 🔄 智能扫描: 三种域名管理模式 - 全局扫描/指定Zone/指定域名
- 🛡️ 安全可靠: 完整的错误处理和日志记录,不会误删其他DNS记录
- 🔧 易于管理: 使用
cfddns命令进入美化的管理界面 - 🚀 systemd集成: 作为系统服务运行,开机自启
- 📊 完善监控: 详细的日志和状态监控
- CDN线路切换: 白天使用经济线路,夜间使用高速线路
- 负载均衡: 根据时间段分配不同的服务器
- 网络优化: 根据网络状况自动切换解析
- 成本控制: 在不同时段使用不同成本的服务
- Python 3.7+
- Linux系统(推荐Ubuntu/Debian/CentOS)
- Cloudflare账户和API Token
- systemd支持
bash <(curl -fsSL https://ba.sh/QH2A)✨ 安装完成后使用 cfddns 命令进入管理界面!
安装完成后,运行 cfddns 进入交互式管理界面:
============================================================
🚀 Cloudflare Auto DDNS 管理工具
============================================================
📊 服务管理:
1) 查看服务状态
2) 查看实时日志
3) 重启服务
4) 启动服务
5) 停止服务
⚙️ 配置管理:
6) 查看当前配置
7) 更换IP地址
8) 修改时间段
9) 管理域名
🔧 系统管理:
10) 更新程序
11) 卸载程序
0) 退出
程序支持三种域名管理模式:
target_zones和target_domains都为空- 自动扫描您Cloudflare账户下所有Zone
- 识别所有使用目标IP的域名并自动更换
{
"target_zones": [],
"target_domains": []
}- 只扫描指定的Zone(根域名)
- 更换该Zone下所有使用目标IP的域名
{
"target_zones": ["example.com", "mysite.org"],
"target_domains": []
}- 只更换指定的具体域名
- 最精确的控制方式
{
"target_zones": [],
"target_domains": [
{"name": "www.example.com", "zone": "example.com"},
{"name": "api.example.com", "zone": "example.com"}
]
}{
"cloudflare": {
"email": "your-email@example.com",
"api_token": "your-cloudflare-api-token"
},
"schedule": {
"day_start_hour": 6,
"day_end_hour": 22,
"day_ip": "1.2.3.4",
"night_ip": "5.6.7.8",
"_comment": "时间使用时区: Asia/Shanghai"
},
"target_zones": [],
"target_domains": [],
"log": {
"level": "INFO",
"file": "/var/log/cloudflare-auto-ddns.log"
},
"check_interval": 300
}- 登录 Cloudflare Dashboard
- 点击右上角头像 → My Profile
- 左侧菜单选择 API Tokens
- 点击 Create Token
- 使用模板 Edit zone DNS 或自定义权限:
- Zone:Zone:Read
- Zone:DNS:Edit
- 选择要管理的 Zone
- 创建并复制 Token
# 查看服务状态
sudo systemctl status cloudflare-auto-ddns
# 启动服务
sudo systemctl start cloudflare-auto-ddns
# 停止服务
sudo systemctl stop cloudflare-auto-ddns
# 重启服务
sudo systemctl restart cloudflare-auto-ddns
# 查看实时日志
sudo journalctl -u cloudflare-auto-ddns -f
# 或使用管理命令
cfddns# 使用管理命令更新
cfddns
# 然后选择 "10) 更新程序"
# 或手动更新
sudo bash <(curl -fsSL https://ba.sh/QH2A)# 使用管理命令卸载
cfddns
# 然后选择 "11) 卸载程序"
# 或手动卸载
sudo systemctl stop cloudflare-auto-ddns
sudo systemctl disable cloudflare-auto-ddns
sudo rm -f /etc/systemd/system/cloudflare-auto-ddns.service
sudo rm -rf /etc/cloudflare_auto_ddns
sudo rm -f /usr/local/bin/cfddns
sudo systemctl daemon-reload# 查看服务日志
sudo journalctl -u cloudflare-auto-ddns -n 100
# 查看完整日志文件
sudo tail -f /var/log/cloudflare-auto-ddns.logQ: 服务无法启动? A: 检查配置文件格式是否正确,API Token是否有效
Q: 域名没有被更新? A: 确认域名模式配置正确,查看日志了解扫描情况
Q: 如何测试配置?
A: 使用 cfddns 命令中的"手动测试运行"功能
查看 CHANGELOG.md 了解版本更新详情
欢迎提交 Issue 和 Pull Request!
MIT License - 查看 LICENSE 文件了解详情
⭐ 如果这个项目对您有帮助,请给个 Star!