DDNS:适用于阿里云、腾讯云、华为云等国内大厂的动态域名解析方法

此脚本目前在GitHub上获得了1.4k星星,是一个很棒的开源项目,不过上手有一定的要求,Issues上也有很多提问,希望我这篇文章至少能让你会简单使用。

这里以Linux系统、阿里云为例,其他类同。

一、安装

作者提供了4种安装方式:二进制、pip、源码和docker。这里我选择的是源码直接安装。源码的好处就是更方便diy,我一般都比较喜欢源码。

下载源码

Ubuntu/Debian

cd /root
apt-get install -y wget unzip python
wget https://github.com/NewFuture/DDNS/archive/master.zip

CentOS

cd /root
yum install -y wget unzip python
wget https://github.com/NewFuture/DDNS/archive/master.zip

解压

unzip master.zip
cd DDNS-master/

二、配置文件

默认没有配置文件,我们先运行脚本,脚本会自动帮我们创建配置文件的模板。

./run.py

现在我们可以配置文件了,参照下面的配置修改,或者直接复制此配置并替换原来的config.json。

其中id为你的阿里云AccessKey ID,token为你的阿里云AccessKey Secret,ipv4为你要设置ddns的域名,此域名需要是已经存在于你的阿里云解析中。ttl就是ttl,阿里云免费版ttl最少是10分钟600秒,如果你付费版你可以将ttl设置为60甚至是1。

{
"$schema": "https://ddns.newfuture.cc/schema/v2.8.json",
"debug": false,
"dns": "alidns",
"id": "my aliyun id",
"index4": "url:http://myip.ipip.net/s",
"index6": "default",
"ipv4": [
"ddns.mebi.me"
],
"ipv6": [],
"proxy": null,
"token": "my aliyun token",
"ttl": 600,
"cache": true
}

最后需要解决的是你的阿里云id和token。

1、登录RAM控制台

2、依次点击 “人员管理” -> “用户” -> “创建用户”
创建用户

3、输入登录名称和显示名称,随意写只要自己都认得出来。访问方式为编程访问。
填写用户基本信息

4、现在你能看到AccessKey ID和AccessKey Secret,这两个分别对应的是配置文件里的id和token,请填入其中。
分配id和秘钥

5、现在直接运行脚本还不行,因为上面新创建的用户没有权限,我们还需要给它一个管理云解析的权限。

选中此用户并点击下方的“添加权限”,搜索“AliyunDNSFullAccess”,点击结果添加,然后“确定”。
添加权限

三、运行脚本

直接运行脚本就可以了,等脚本结束,刷新阿里云的域名解析页面就能看到。例如我的vps的公网ip为168.152.1.1,运行脚本后域名ddns.meb.me已经解析到了168.152.1.1。

./run.sh

四、添加定时任务

为了让它能在vps的ip改变时及时更新域名解析,达到真正的ddns,我们需要添加定时任务。作者提供的命令为:

sudo ./task.sh

或者我们使用如下命令

crontab -e

写入以下定时命令:

*/1 * * * *  root "/root/DDNS-master/run.py" -c "/root/DDNS-master/config.json" > /dev/null 2>&1 &

此命令为每分钟自动执行一次,因为我们设置了缓存,所以不用担心会频繁修改阿里云域名解析。