在Ubuntu上搭建DDNS动态域名解析服务

文章目录

  • 一、前置条件
  • 二、具体步骤
    • 2.1 下载脚本程序
    • 2.2 修改配置文件
    • 2.3 运行脚本进行测试
    • 2.4 设置cron定时任务
  • 三、参考文章

一、前置条件

1、已经在腾讯云上申请了dnspod的域名。
2、已经给域名创建了秘钥(API Token),成功获取到了ID和Token。

二、具体步骤

2.1 下载脚本程序

下载dnspod-shell客户端程序并上传到ubuntu服务器下。https://github.com/rehiy/dnspod-shell

2.2 修改配置文件

需要修改dns.conf文件中arTokenarDdnsCheck这2个字段,按需修改成你自己的id、token和域名即可。

# 1. Combine your token ID and token together as follows
arToken="123456,de11003453a1f0123ac26d8c9fc4b8bcdefg"

# 2. Place each domain you want to check as follows
# you can have multiple arDdnsCheck blocks
arDdnsCheck "baidu.com" "www"

ddnspod.shIPtype字段默认的1就是大家通用的环境,获取你所在局域网出口wan ip,因此我这里不修改。
第4个Local-WAN模式(一般用不到):Local-WAN是指路由器作为一个大局域网的子网,某些场景下需要获取当前路由器的WAN IP,这些WAN IP一般仍然是一个子网IP。
IPtype=1 #1.WAN 2.LAN 3.IPv6 4.Local-WAN

2.3 运行脚本进行测试

xiaozhang@ubuntu:~/ddns-shell/ArDNSPod-master$ ./ddnspod.sh 
Type: A
OS: Linux
Address: 111.1.53.68
Updating Domain: www.baidu.com
hostIP: 111.1.53.68
lastIP: 111.1.53.68
Last IP is the same as current, no action.

如此可以发现,我当前的出口wan IP和域名中最后记录的ip是同一个,所以无需更新,证明脚本是好用的。

2.4 设置cron定时任务

因为家用宽带的wan ip会不定时的变化,可能一天、两天、三天,因此我需要在ip变化后的第一时间能够将最新的ip地址更新到域名上,因此需要利用Linux的cron定时任务来实现实时更新,我设置的是每5分钟运行一次脚本。
使用crontab -e命令在最后一行添加:

*/5 * * * * cd /home/xiaozhang/ddns-shell/ArDNSPod-master && ./ddnspod.sh

使用crontab -l命令查看是否添加成功。
另外还可以查看/var/log/cron.log日志,查看脚本是否已经每隔5分钟就在运行了,我们发现的确如此。

xiaozhang@ubuntu:~/ddns-shell/ArDNSPod-master$ tail -f /var/log/cron.log
Oct  5 23:50:04 ubuntu CRON[32607]: (CRON) info (No MTA installed, discarding output)
Oct  5 23:55:01 ubuntu CRON[32716]: (xiaozhang) CMD (cd /home/xiaozhang/ddns-shell/ArDNSPod-master && ./ddnspod.sh)
Oct  5 23:55:03 ubuntu CRON[32714]: (CRON) info (No MTA installed, discarding output)
Oct  6 00:00:02 ubuntu CRON[32933]: (xiaozhang) CMD (cd /home/xiaozhang/ddns-shell/ArDNSPod-master && ./ddnspod.sh)
Oct  6 00:00:05 ubuntu CRON[32932]: (CRON) info (No MTA installed, discarding output)
Oct  6 00:05:01 ubuntu CRON[33021]: (xiaozhang) CMD (cd /home/xiaozhang/ddns-shell/ArDNSPod-master && ./ddnspod.sh)
Oct  6 00:05:04 ubuntu CRON[33020]: (CRON) info (No MTA installed, discarding output)
Oct  6 00:09:45 ubuntu crontab[33097]: (xiaozhang) LIST (xiaozhang)
Oct  6 00:10:01 ubuntu CRON[33099]: (xiaozhang) CMD (cd /home/xiaozhang/ddns-shell/ArDNSPod-master && ./ddnspod.sh)
Oct  6 00:10:03 ubuntu CRON[33098]: (CRON) info (No MTA installed, discarding output)

三、参考文章

https://blog.csdn.net/imkiimki/article/details/83794355

你可能感兴趣的:(ubuntu,ubuntu,linux,运维)