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

一、前置条件

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

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值