自动更新 DNS 解析 到公网 IP 地址,支持 ipv4 和 ipv6。 支持自动创建域名记录。
找了一圈没有合适的就自己写一个吧 初次提交 些许潦草 先解自己燃眉之急 后面慢慢优化 目前只支持[DNSPod,alidns] ipv4 后期会慢慢扩展其他服务商和 ipv6
- 兼容和跨平台:
- 可执行文件
- 多系统兼容
- Docker 支持
- 域名支持:
- 多个域名支持
- 多级域名解析
- 自动创建新记录
- IP 类型:
- 内网 IPv4 / IPv6
- 公网 IPv4 / IPv6
- 服务商支持:
- Windows DDNS.Core-win-x86
- Linux DDNS.Core-linux-x64
- Mac OSX 敬请期待
Windows
1.下载DDNS.Core-win-x86.zip
2.解压后 运行文件夹 DDNS.Core.exe
Linux
1.下载DDNS.Core-linux-x64
2.解压后 运行文件夹 DDNS.Core
-
申请 api
token
,填写到对应的id
和token
字段:- DNSPOD(国内版)创建 token
- 阿里云 accesskey
- DNS.COM API Key/Secret
- DNSPOD(国际版)
- CloudFlare API Key (除了
email + API KEY
,也可使用Token
需要列出 Zone 权限) - HE.net DDNS 文档(仅需将设置的密码填入
token
字段,id
字段可留空) - 华为 APIKEY 申请(点左边访问密钥,然后点新增访问密钥)
-
修改配置文件,
ipv4
和ipv6
字段,为待更新的域名,详细参照配置说明
config.json 配置文件
- 根文件夹有一个模板配置文件config.json
- 推荐使用 vscode 等支持 JsonSchema 的编辑器编辑配置文件
key | type | required | default | description | tips |
---|---|---|---|---|---|
ThreadSleep | int | √ | 300000 | 检查IP时间 | 默认每隔5分钟检查一次ip 值为毫秒 可自定义 |
IsEnable | bool | √ | true | 是否启用 | 是否启用-设置为false即忽略 |
id | string | √ | 无 | api 访问 ID | Cloudflare 为邮箱(使用 Token 时留空) HE.net 可留空 |
token | string | √ | 无 | api 授权 toke | n |
dnsType | string | No | "dnspod" |
dns 服务商 | 阿里alidns ,dns.com 为 dnscom ,DNSPOD 国际版 dnspod_com ,HE.net 为 he ,华为 DNS 为huaweidns ,自定义回调为 callback |
ipv4 | array | No | [] |
ipv4 域名列表 | 为[] 时,不会获取和更新 IPv4 地址 |
ipv6 | array | No | [] |
ipv6 域名列表 | 为[] 时,不会获取和更新 IPv6 地址 |
domain | string | √ | "" | 根域名 | 例: studenty.cn |
sub_domain | string | √ | "" | 主机记录 | 例:www,ddns_01等 如果不传,默认为@ |
ttl | number | √ | 600 | DNS 解析 TTL 时间 | 默认设置600 |
{
"ThreadSleep": 300000,
"Config": [
{
"IsEnable": false,
"remark": "备注信息可以随便写",
"id": "12345",
"token": "tokenkey",
"dnsType": "dnspod 或 alidns 或 dnscom 或 cloudflare 或 he 或 huaweidns 或 callback",
"ipv4": [
{
"domain": "studenty.cn",
"sub_domain": ""
},
{
"domain": "studenty.cn",
"sub_domain": "ddns_01"
}
],
"ipv6": [
{
"domain": "",
"sub_domain": ""
}
],
"ttl": 600
},
{
"IsEnable": true,
"remark": "备注信息可以随便写",
"id": "12345",
"token": "tokenkey",
"dnsType": "dnspod",
"ipv4": [
{
"domain": "studenty.cn",
"sub_domain": ""
},
{
"domain": "studenty.cn",
"sub_domain": "ddns_01"
}
],
"ipv6": [],
"ttl": 600
}
]
}
问题排查反馈
- 先确认排查是否是系统/网络环境问题
- 在issues中搜索是否有类似问题
- 前两者均无法解决或者确定是 bug,在此新建 issue
- 附上这些内容 运行版本和方式,系统环境, 出错日志,去掉 id/token的配置文件