DDNS

自动更新 DNS 解析 到本机 IP 地址,支持 ipv4 和 ipv6 以 本地(内网)IP 和 公网 IP。 代理模式,支持自动创建域名记录。

PyPI Build Status Publish Status


Features

使用

① 安装

根据需要选择一种方式: 二进制版,pip版,源码运行,或者Docker

② 快速配置

  1. 申请 api token,填写到对应的idtoken字段:

  2. 修改配置文件,ipv4ipv6字段,为待更新的域名,详细参照配置说明

详细配置

所有字段可通过三种方式进行配置

  1. 命令行参数 ddns --key=value (ddns -h 查看详情),优先级最高
  2. JSON配置文件(值为null认为是有效值,会覆盖环境变量的设置,如果没有对应的key则会尝试试用环境变量)
  3. 环境变量DDNS_前缀加上key 全大写或者全小写 (${ddns_key}${DDNS_KEY})
config.json 配置文件
ddns -c path/to/config.json
# 或者源码运行
python run.py -c /path/to/config.json

配置参数表

key type required default description tips
id string api 访问 ID Cloudflare 为邮箱(使用 Token 时留空)
HE.net 可留空
华为云为 Access Key ID (AK)
token string api 授权 token 部分平台叫 secret key , 反馈粘贴时删除
dns string No "dnspod" dns 服务商 阿里 DNS 为alidns,
Cloudflare 为 cloudflare,
dns.com 为 dnscom,
DNSPOD 国内为 dnspod,
DNSPOD 国际版为 dnspod_com,
HE.net 为he,
华为 DNS 为huaweidns,
自定义回调为callback
ipv4 array No [] ipv4 域名列表 []时,不会获取和更新 IPv4 地址
ipv6 array No [] ipv6 域名列表 []时,不会获取和更新 IPv6 地址
index4 string|int|array No "default" ipv4 获取方式 可设置网卡,内网,公网,正则等方式
index6 string|int|array No "default" ipv6 获取方式 可设置网卡,内网,公网,正则等方式
ttl number No null DNS 解析 TTL 时间 不设置采用 DNS 默认策略
proxy string No http 代理;分割 多代理逐个尝试直到成功,DIRECT为直连
debug bool No false 是否开启调试 运行异常时,打开调试输出,方便诊断错误
cache string|bool No true 是否缓存记录 正常情况打开避免频繁更新,默认位置为临时目录下ddns.cache,
也可以指定一个具体文件实现自定义文件缓存位置

index4 和 index6 参数说明

自定义回调配置说明

常量名称 常量内容 说明
__DOMAIN__ DDNS 域名  
__RECORDTYPE__ DDNS 记录类型  
__TTL__ DDNS TTL  
__TIMESTAMP__ 请求发起时间戳 包含小数
__IP__ 获取的对应类型的IP地址  

配置示例

{
  "$schema": "https://ddns.newfuture.cc/schema/v2.8.json",
  "id": "12345",
  "token": "mytokenkey",
  "dns": "dnspod 或 dnspod_com 或 alidns 或 dnscom 或 cloudflare 或 he 或 huaweidns 或 callback",
  "ipv4": ["ddns.newfuture.cc", "ipv4.ddns.newfuture.cc"],
  "ipv6": ["ddns.newfuture.cc", "ipv6.ddns.newfuture.cc"],
  "index4": 0,
  "index6": "public",
  "ttl": 600,
  "proxy": "127.0.0.1:1080;DIRECT",
  "debug": false
}

定时任务

可以通过脚本设置定时任务(默认每5分钟检查一次ip,自动更新)

Windows

Linux

Docker

Docker镜像在无额外参数的情况下,已默认启用每5分钟执行一次的定时任务

FAQ

Windows Server [SSL: CERTIFICATE_VERIFY_FAILED]

Windows Server 默认安全策略会禁止任何未添加的信任 ssl 证书,可手动添加一下对应的证书 #56

使用系统自带的 IE 浏览器访问一次对应的 API 即可

问题排查反馈
  1. 先确认排查是否是系统/网络环境问题
  2. issues中搜索是否有类似问题
  3. 前两者均无法解决或者确定是 bug,在此新建 issue
    • 开启 debug 配置
    • 附上这些内容 运行版本和方式,系统环境, 出错日志,去掉 id/token的配置文件
    • 源码运行注明使用的 python 环境