用AliDDNS脚本实现动态域名

条件

  • 只能用于linux系列主机,我用的centos。

  • 主机在哪里都行,但要能上网并有外网地址

  • 域名要在阿里云,也就是以前的万网。

  • 因为阿里云的权限太丰富,所以使用子账户,精准授权会比较安全,后面会说到。

安装

1.首先yum安装要用到的软件

# yum install -y wget curl cronie

2.下载脚本至/usr/sbin/文件夹

将名字命名为“aliddns.sh”是一个小坑,因为脚本中经常念叨自己的名字,使用AliDDNSv3.sh才行,这里不改了。

# wget -O  /usr/sbin/aliddns.sh  https://bitbucket.org/ilemonrain/aliddns/downloads/AliDDNSv3-Build20181113-PreviewBuild.sh

或者手动下载AliDDNSv3-Build20181113-PreviewBuild.zip

加个运行权限。

# chmod +x /usr/sbin/aliddns.sh
# /usr/sbin/aliddns.sh

3.根据提示依次填写内容就OK了。

 作者: iLemonrain <ilemonrain@ilemonrain.com>
 Telegram: @ilemonrain
 Telegram频道: @ilemonrain_channel


  主菜单 >

===== AliDDNS 模块 =====
 1. 配置并运行 AliDDNSv3
 2. 仅配置 AliDDNSv3
 3. 仅运行 AliDDNSv3
 4. AliDDNSv3 模块设置

===== ServerChan 模块 =====
 5. 配置 ServerChan

=====全局设置=====
 6. 清理配置文件及重置环境
 7. 安装/卸载/恢复出厂设置
 8. 关于 AliDDNSv3
 9. 求捐赠 OwO
 0. 退出

 请输入你的选择[0-9]:123456789101112131415161718192021222324

选择1.

AliDDNSv3 配置向导 (1/6) - 阿里云AccessKey ID
==================================================

阿里云AccessKey ID/AccessKey Secret是阿里云DDNS在工作过程中的重要参数(以下简称为AKID/AKSC或AK/SK).AliDDNS的很多组件和功能和组件都将依赖于AK/SK. 填写到配置中的AK/SK正确与否, 将直接决定到AliDDNSv3能否正确运行.如果你不知道你的AK/SK的话, 请前往这里获取你的AK/SK:
https://usercenter.console.aliyun.com/#/manage/ak<注意> 阿里云的AK/SK, 是阿里云识别用户身份的唯一途径. 请不要将你的AK/SK透露给任何人, 阿里云的工作人员不会主动要求你提供AK/SK,任何伪造官方人员要求你提供AK/SK的行为, 请不要轻易相信! 如果不幸泄露, 请立即前往阿里云官网删除泄露的AK/SK, 来阻止阿里云账号被他人控制的风险!你得到的阿里云的AccessKey ID, 应该是以LT 开头的, 由大小写字母和数字组成的16位字符串.建议通过复制粘贴的方式, 将这些内容输入其中:

请输入你的阿里云AccessKey ID:

4.回头去阿里云找自己的账户

https://ram.console.aliyun.com/users

已经有账户了,只要添加权限。

点击进入这个子用户名。


再创建阿里云AccessKey ID,也可以在创建子账户时同时创建。

现在回到主机上 ,继续设置脚本。忽略AccessKey 长度提醒,输入AccessKey Secret。
下一步输入域名,注意是二级域名,不是子域名。

AliDDNSv3 配置向导 (3/6) - 域名
==================================================

域名由两部分组成: 域名(Domain)和子域名(SubDomain).例如 www.google.com , 在这里面, google.com 即为域名, www 为子域名.例如 aaa.bbb.ccc.example.com, 在这里面, example.com 即为域名, aaa.bbb.ccc 为子域名.在这一步中, 你需要填写你的域名. 在填写之前, 请确保你的域名解析已经迁移到阿里云云解析下:
一般情况下, 如果你域名所使用的域名服务器为 hichina*.aliyun.com, 或者为 vip*.aliyun.com,即为域名解析已经迁移到阿里云云解析旗下. 如果你是刚刚发起的域名服务器更换请求, 请耐心等待24-72小时
后, 待解析完全生效后再使用AliDDNSv3工具.请输入你的域名: 666.com1234567891011121314

然后才是子域名(三级及以上)。

AliDDNSv3 配置向导 (4/6) - 子域名
==================================================

域名由两部分组成: 域名(Domain)和子域名(SubDomain).例如 www.google.com , 在这里面, google.com 即为域名, www 为子域名.例如 aaa.bbb.ccc.example.com, 在这里面, example.com 即为域名, aaa.bbb.ccc 为子域名.<注意> 如果你需要直接解析域名 (比如 example.com), 请在子域名中输入@ !在这一步中, 你需要填写你的子域名. 在填写之前, 请确保你的域名解析已经迁移到阿里云云解析下:
一般情况下, 如果你域名所使用的域名服务器为 hichina*.aliyun.com, 或者为 vip*.aliyun.com,即为域名解析已经迁移到阿里云云解析旗下. 如果你是刚刚发起的域名服务器更换请求, 请耐心等待24-72小时
后, 待解析完全生效后再使用AliDDNSv3工具.请输入你的子域名: tx12345678910111213141516
[Info] 检测到已存在的解析记录:[Info] 完整域名: tx.666.com[Info] 解析记录: [A] 131.232.555.666 (TTL=600)[Info] 域名状态: ENABLE

确定要使用此域名作为DDNS域名么? (y/N)1234567

Y 确定。
选择检测模式,这个作用是测试你的外网地址有没有变化,核心功能。

同样的AliDDNS工作模式并不是适合所有的环境.<注意> 这是一个测试版的功能, 如果你不愿意调整此参数, 请直接按下回车键跳过配置.目前提供三种AliDDNS工作模式:
模式一: 使用阿里云云解析API, 通过调用API来获取当前域名的解析记录 (默认工作模式).模式二: 使用腾讯云HttpDNS, 通过HttpDNS获取域名解析记录 (AliDDNS 2.0工作模式).模式三: 使用传统域名解析, 通过nslookup命令获取域名解析记录 (AliDDNS 1.0工作模式)模式会在遇到错误时,自动按照 1->2->3 的顺序自动切换到备用模式。
根据自己的环境, 选择一个最合适的工作模式, 会提高AliDDNS的工作效率, 降低错误率/误报率.请选择工作模式 (1-3):12345678910111213

根据个人喜好,我选择3.

AliDDNSv3 配置向导 - 正在完成配置向导
==================================================

即将完成配置向导, 请确认你输入的参数是否正确

DDNS域名: tx.666.com
设定TTL值: 600
工作模式: 3

AccessKey ID: LTAI4*****************JyNqEw
AccessKey Secret: QP1M*********************WyOG

请确认以上信息是否正确, 如确认正确, 请输入Y以结束配置向导并写入配置文件.如有误, 请输入N以重新开始配置流程.所有参数是否正确 ? (y/N)12345678910111213141516

最后确认。

AliDDNSv3 - 正在进行DDNS工作
==================================================

正在进行DDNS工作, 请稍后...[Info] 正在读取配置文件 ...[Info] 正在检查配置文件完整性 ...[Info] 正在获取本机IP地址 ...[Info] 本机IP地址: 132.232.555.555[Info] 已启用工作模式3: 传统域名解析[Info] 设置使用的DNS服务器: 223.5.5.555[Info] 正在获取 tx.666.com 的解析记录 ...[Info] tx.666.com -> 131.232.555.666[Info] 本机IP (132.232.555.555) 与 tx.666.com的IP (131.232.555.666) 不同[Info] 正在启动解析记录修改工作 ...[Info] 正在获取 tx.666.com 的 RecordId ...[Info] [云解析API] 正在初始化请求...[Info] [云解析API] 正在发送请求...[Info] [云解析API] 请求发送成功 ![Info] tx.666.com -> RecordId: 19763010542794752[Info] 正在修改 tx.666.com 的解析记录 ...[Info] [云解析API] 正在初始化请求...[Info] [云解析API] 正在发送请求...[Info] [云解析API] 请求发送成功 ![Success] 解析记录(tx -> [A]132.232.555.555, RecordID:19763010542794752) 修改成功 ![Info] tx.666.com 解析记录修改成功 ![Info] 正在验证修改结果 ...[Info] [云解析API] 正在初始化请求...[Info] [云解析API] 正在发送请求...[Info] [云解析API] 请求发送成功 ![Info] 验证结果和现在的解析记录一致 ![Success] DDNS域名记录更新成功 !1234567891011121314151617181920212223242526272829303132

正常工作的样子令人喜悦。

5.下一步是设置cron

先检查一下现有任务。

[root@VM_0_16_centos ~]# crontab -l
*/1 * * * * /usr/xxxxx.sh > /dev/null 2>&1 &
0 0 * * * /usr/xxxxx.sh > /dev/null 2>&1 &

*/10 * * * * nohup bash /usr/sbin/AliDDNSv3.sh run >/dev/null 2>&112345

这里发现第三行已经有了Aliddnsv3.sh,氮素不是我设置的,也许配置时自动生成的,去检查一下。

感谢@x272202307的文章来源

感谢@iLemonrain 的脚本文件

打赏
0 条评论
发表一条评论