阿里云域名动态 IP 解析 Shell 小脚本 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
zsg1994
V2EX    程序员

阿里云域名动态 IP 解析 Shell 小脚本

  •  
  •   zsg1994 2020-03-30 15:25:12 +08:00 3682 次点击
    这是一个创建于 2071 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Github:https://github.com/risfeng/aliyun-ddns-shell

    当你手里面有一个闲置的域名,有一个漂浮不定的外网 ip,你又想在外网 ip 变更后自动解析到域名上,此情此景此脚本可能会帮上你。


    使用步骤:

    • 在阿里云域名管理中解析自己的域名
      • 记录类型:A
      • 主机记录:按你需要输入
      • 解析路线:默认(随你)
      • 记录值:随便输入一个 Ip 地址(运行脚本后会自动更新到正确的)
      • TTL 值:10 分钟
    • 需要通过阿里云域名解析 Api 操作,所以需要申请阿里云的 Acesskeys
    • 运行自动解析域名脚本
      • git clone https://github.com/risfeng/aliyun-ddns-shell.git
      • aliyun-ddns.sh 脚本赋可执行权:chmod +x aliyun-ddns-shell/src/aliyun/aliyun-ddns.sh
      • 运行脚本,根据提示进行配置(第一次运行需要配置)
      • 如需要使用钉钉自定义机器人推送成功失败消息,请新建自定义钉钉机器人,配置 access_token 和消息加签密钥
      • 脚本支持 2 种运行方式:
        • 直接运行脚本根据提示选择需要使用的功能
     > aliyun-ddns.sh (mac: > bash aliyun-ddns.sh) 1.配置并执行脚本 2.仅配置 3.仅执行脚本 4.恢复出厂设置 5.清理日志文件 0.退出 
     - 带参数运行: 
     aliyun-ddns.sh -config -run 配置并执行脚 aliyun-ddns.sh -run 执行脚本(前提需要有配置文件) aliyun-ddns.sh -config 仅配置信息 aliyun-ddns.sh -restore 恢复出厂设置(会清除配置文件等) aliyun-ddns.sh -clearn 清理日志文件 aliyun-ddns.sh -version 显示脚本说明及版本信息 
    • 实时监听外网 IP 变更后自动解析到域名
      • 利用定时任务服务:crond
      • 检测是否安装:crond -V 有输出版本号即已安装。
      • 如未安装:yum install vixie-cron crontabs -y 如有疑问请自行查找资料解决
      • crond 服务常用命令
     service crond status # 查看服务运行状态 service crond start # 启动服务 service crond stop # 停止服务 service crond restart # 重启服务 service crond reload # 不中断服务,重新载入配置 crontab -e # 编辑配置文件 crontab -l # 列出某个用户的任务计划 
    - 配置任务定时任务 - 建议不要把任务执行频率设置小于等 10,因为域名解析记录生效时间最短理论上是 10 分钟,往往都会超过 10 分,建议 15-20 分钟。 - 开始配置 
     crontab -e # 按 i 进入标记模式 # 输入: */20 * * * * XXXXXX/aliyun-ddns-shell/src/aliyun/aliyun-ddns.sh -run >> XXXX/aliyun-ddns-shell/src/aliyun/crontab-log.log # 说明: # */20 * * * * :每 20 分钟执行一次 需要执行都脚本全路径 >> 执行日志输出位置全路径 # 按 esc 后 输入:wq 回车 保存并退出 
     - 重新加载配置:`service crond reload` - 注意观察任务是否成功执行,如有疑问请自行百度 

    效果图

    启动页面 配置页面 运行页面

    欢迎 star 给予支持

    GitHub


    版权声明:本文为 ByteBlogs 博主「 risfeng 」的原创文章。
    原文链接: https://www.byteblogs.com/article/488

    8 条回复    2020-04-02 17:40:38 +08:00
    koolpass
        1
    koolpass  
       2020-03-30 15:59:42 +08:00
    感谢 已经加星
    zsg1994
        2
    zsg1994  
    OP
       2020-03-30 16:05:05 +08:00
    @koolpass 感谢支持
    chwhsen
        3
    chwhsen  
       2020-03-30 16:07:05 +08:00
    如果路由器是 openwrt 或者 lede 的话,没必要做定时任务;把脚本放在 hotplug 文件夹下就行了;有奇效
    goodryb
        4
    goodryb  
       2020-03-30 16:08:03 +08:00
    强烈建议使用子账号,只授予 DNS 解析配置权限。

    主账号风险太高了
    zsg1994
        5
    zsg1994  
    OP
       2020-03-30 16:08:57 +08:00
    @goodryb 感谢您的建议,我会考虑的。
    syuraking
        6
    syuraking  
       2020-03-30 16:55:06 +08:00
    建议添加 IPV6 支持
    zsg1994
        7
    zsg1994  
    OP
       2020-03-30 16:59:39 +08:00
    @syuraking 好的,后面版本加上,可以 star 支持一下
    frlee
        8
    frlee  
       2020-04-02 17:40:38 +08:00
    优点是他确实可以用,缺点是。。。

    臃肿庞大 修改 shell 几个配置就好 还搞什么配置文件 配置文件目录在 debian 下目录是这样的 : /home/xxx/'~' 看起来很迷惑

    再者,不需要先判断 ip 是否为新获取的吗,ip 不更新时每次运行脚本请求阿里云返回'The DNS record already exists' 你先判断为接口请求失败 最后又提示记录更新成功。。。

    感觉刚需的功能没做好 一大堆没用的东西倒是加不少
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2807 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 14:01 PVG 22:01 LAX 06:01 JFK 09:01
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86