Skip to content

qqAys/Aliyun-DDNS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Aliyun-DDNS

部署在本地的阿里云DDNS更新脚本

简介

这是一个由Python编写的阿里云DDNS脚本, 可以自动查询执行脚本机器的当前公网IP并与域名中某个A类主机记录比对。

如执行脚本机器当前公网IP与主机记录值有差异就会进行值更新, 并发送通知邮件。(异常情况也会进行通知)

脚本原理

查询DNS记录值: AccessKey ID与AccessKey Secret创建连接请求 -> 使用主机记录查询RecordId -> 使用RecordId查询记录值

查询公网IP: 使用checkip.amazonaws.com查询公网IP值(速度较慢), 可使用service.qqays.xyz/my-ip进行公网IP值的查询。

使用

main.py 为集成阿里SDK版本, 需安装Python要求。slim.py 为模拟了阿里SDK请求, 无外部Python库依赖。

  1. 克隆项目, 进入项目。
git clone https://github.com/qqAys/Aliyun-DDNS.git
cd Aliyun-DDNS
  1. 安装Python要求。(slim无需执行该步骤)
pip3 install -r requirements.txt
  1. 将配置文件重命名, 修改配置。(参见config.ini.example)
mv config.ini.example config.ini
  1. 使用crontab -e添加定时执行。
# 使用 main.py
*/5 * * * * python3 /root/Aliyun-DDNS/main.py >> /root/Aliyun-DDNS/DDNS.log
# 或者指定配置文件路径参数
*/5 * * * * python3 /root/Aliyun-DDNS/main.py /opt/config.ini >> /root/Aliyun-DDNS/DDNS.log

# 使用 slim.py
*/5 * * * * python3 /root/Aliyun-DDNS/slim.py >> /root/Aliyun-DDNS/DDNS.log
# 或者指定配置文件路径参数
*/5 * * * * python3 /root/Aliyun-DDNS/slim.py /opt/config.ini >> /root/Aliyun-DDNS/DDNS.log

效果

DDNS.log

相关链接

阿里云-RAM访问控制-创建AccessKey

阿里云-云解析-API