Github项目地址

GitHub – NewFuture/DDNS: 自动更新域名解析到本机IP(支持dnspod,阿里DNS,CloudFlare,华为云,DNSCOM…)

下载工具

https://xlangnan.lanzoui.com/i856Fqpyb5g

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

命令行参数 ddns –key=value (ddns -h 查看详情),优先级最高
JSON配置文件(值为null认为是有效值,会覆盖环境变量的设置,如果没有对应的key则会尝试试用环境变量)
环境变量DDNS_前缀加上key 全大写或者全小写 (${ddns_key} 或 ${DDNS_KEY})
config.json 配置文件
首次运行会自动生成一个模板配置文件
可以使用 -c使用指定的配置文件 (默认读取当前目录的 config.json)
推荐使用 vscode 等支持 JsonSchema 的编辑器编辑配置文件

index4 和 index6 参数说明
数字(0,1,2,3等): 第 i 个网卡 ip
字符串”default”(或者无此项): 系统访问外网默认 IP
字符串”public”: 使用公网 ip(使用公网 API 查询,url 的简化模式)
字符串”interface”: 使用指定网卡 ip(如:”interface:eno1″)
字符串”url:xxx”: 打开 URL xxx(如:”url:http://ip.sb”),从返回的数据提取 IP 地址
字符串”regex:xxx” 正则表达(如”regex:192.“): 提取ifconfig/ipconfig中与之匹配的首个 IP 地址,注意 json 转义(\要写成\) “192.“表示 192 开头的所有 ip
如果想匹配10.00.xxxx应该写成”regex:10\.00\..*”(“\”json 转义成)
字符串”cmd:xxxx”: 执行命令xxxx的 stdout 输出结果作为目标 IP
字符串”shell:xxx”: 使用系统 shell 运行xxx,并把结果 stdout 作为目标 IP
false: 强制禁止更新 ipv4 或 ipv6 的 DNS 解析
列表:依次执行列表中的index规则,并将最先获得的结果作为目标 IP
例如[“public”, “172.*”]将先查询公网API,未获取到IP后再从本地寻找172开头的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
}