Skip to content

ddns-aliyun 是基于阿里云解析DNS服务的动态解析脚本,用于检测 IP 变化并更新至阿里云,支持多域名解析。支持 Linux 设备,包括树莓派(Raspberry Pi)。不需要手动添加解析,只要跟着教程来,小白都可以很快上手(软件都不会安装的除外)。

Notifications You must be signed in to change notification settings

Levin000/ddns-aliyun

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ddns-aliyun

ddns-aliyun 是基于阿里云解析DNS服务的动态解析脚本,用于检测 IP 变化并更新至阿里云,支持多域名解析。支持 Linux 设备,包括树莓派(Raspberry Pi)。定期动态监测外网IP变化,自动添加指定路线的解析记录。

@version 0.1.1 base on tinko


关键词(Key Words)

  1. domain :域名
  2. sub_domain :子域名,二级域名
  3. type :记录类型(A、NS、MX、TXT、CNAME、SRV、AAAA、CAA、REDIRECT_URL、FORWARD_URL)参见解析记录类型格式
  4. line :解析路线(default、telecom、unicom、mobile、oversea、edu、drpeng、btvn)参见解析线路枚举

前置条件(Requirements)

  1. Git
  2. python 3.6+
  3. 阿里云账号(已购置域名)

使用方法(Steps)

本步骤在树莓派3B+,raspios_lite_arm64-2020-08-24下测试通过

    1. 首先,确保已经安装 git 客户端以及 python 3.*,建议python 3.6+

      通过本命令,克隆ddns-aliyun到本地

      cd /opt
      sudo git clone https://github.com/dingguotu/ddns-aliyun.git
    1. 接下来到阿里云中创建AccessKey,具体步骤是:
      登录阿里云 -> 进入控制台 -> 点击accesskeys
      accesskeys
      -> 创建AccessKey
      AccessKey
      :如果域名是在腾讯云或其他非阿里云处购买的,还需要进入相对应的服务商控制台,修改域名的DNS地址为:
      ns1.alidns.com
      ns2.alidns.com
    1. 复制 conf.sample.json 文件,并重命名为 conf.json,根据您的DNSPod设置修改 conf.json 文件,填入以下内容:

      {
          "access_key": <access_key>,
          "access_secret": <access_secret>,
          "domains": [
              {
                  "name": <first_domain>,
                  "type": "A",
                  "line": "default",
                  "sub_domains": [<first_sub_domain_name>, <second_sub_domain_name>,...]
              },
              {
                  "name": <second_domain>,
                  "type": "A",
                  "line": "edu",
                  "sub_domains": [<first_sub_domain_name>, <second_sub_domain_name>,...]
              }
          ]
      }

      domains是一个数组,其中每一个变量为一个字典,列明了某个域名下要绑定的特定记录类型、特定解析路线的子域名,请按需设置;

      name即为在阿里云所拥有的域名;

      type即为记录类型,通常绑定IPv4地址为A,IPv6地址为AAAA,···;

      line即为解析路线,当一个IP只绑定到一个域名是,请务必设置为default,当绑定到多个域名时,至少保证有一个域名绑定为default,其它域名自行选择解析路线

      sub_domains通常写 @* 就够了,二级子域名直接用 * 代替,然后在自己的代理服务器(IIS,nginx,Apache等)上面去进行绑定。domain 和 sub_domain 可以不需要事先手动绑定,本程序会自动识别

    1. 设置 crontab 定时任务,每30分钟更新DNS记录,并将执行日志写到日志文件ddns.log:

      sudo crontab -e
      */30 * * * * python3 /opt/ddns-aliyun/ddns.py >> /opt/ddns-aliyun/ddns.log 2>&1

      本教程的定时任务是Linux版本,*/30 表示每隔30分钟运行一次,可以自行修改,本教程不做限定。/opt/ddns-aliyun/ddns.py/opt/ddns-aliyun/ddns.log 是绝对路径,请根据实际情况进行修改

      Windows版请自行学习Windows 任务计划

About

ddns-aliyun 是基于阿里云解析DNS服务的动态解析脚本,用于检测 IP 变化并更新至阿里云,支持多域名解析。支持 Linux 设备,包括树莓派(Raspberry Pi)。不需要手动添加解析,只要跟着教程来,小白都可以很快上手(软件都不会安装的除外)。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%