本站已运行

蓝光高清网

搜索

[教程分享] 群晖PYTHON3脚本使用阿里云DDNS达到外网访问目标

Synology 发表于 2021-2-28 17:55:06 | 显示全部楼层 |阅读模式
来自灵魂的拷问
1,为什么要选择阿里云DDNS?
     之前使用华硕AC66的路由器,华硕自带DDNS,xxx.asuscomm.com挺好用的,但是后来我更新了这个路由的固件,导致路由器不稳定。决定更换路由。前段时间,小米的路由搞活动,AX3600,509元,就买了一个,但是这个路由的DDNS只支持花生壳,3322这些。每年费用100多元,而且是二级域名。后来看有兄弟发过使用阿里云域名达到DDNS目的。所以也想尝试下。总结下来好处是:
    a、一级域名,
    b、没有流量限制,
    c、后台控制可以设置多个域名,
    d、有sdk可以根据需要二次开发。
2、为什么使用PYTHON3脚本
     编写方便一点,下载的shell脚本不太会,PYTHON更容易上手些,而且插件也比较多。

使用阿里云域名会有哪些问题
1、也是要花钱的,不过你可以买个便宜点的域名,我买了一个cn的域名,5年是199元。


2、TTL时间,免费的是10分钟,这个问题会影响,如果因为路由器重启或者不稳定导致更新了IP,最长时间可能要多于10分钟,才能正常通过域名访问服务器。如果是个别人使用,这个倒是不太影响,但如果用于一部分工作,多人联合使用,有时候还是会让人很不爽。


具体步骤
    1、申请域名
      这个不是我本文的重点,而且晚上很多,我这里不再赘述,直接在百度上搜索“阿里云域名申请”就有百度的教程。 注册号域名之后,我们需要拿到AccessKey中的AccessKey ID  和 AccessKey Secret, 如下图,在阿里云控制台鼠标放到右上角头像位置,弹出界面中点击AccessKey管理,在里面继续创建AccessKey。这个两个在下面步骤需要用到。


image.png

    2、编写脚本
     这个我已经编写好了,大家可以拿去使用,也已经调试过了,使用方法下面告知

群晖7.0-Aria2.spk.zip ( 3.9 MB )



     3、配置脚本

     a、首先是群晖需要安装python3,套件搜索如下,
image.png

    b、上传脚本

       我是用的是WinSCP,连接ssh下载,前提是群晖控制面板中打开SSH开关。
       存放路径我是在volume1/@aliyunDdns创建了隐藏文件夹,log是存放在volume1下的log目录,如果有需要可以自行修改下,这个需要提前创建好log文件夹


    c、使用putty安装阿里云的SDK

       这里需要注意一下,看下自己的python3是否有安装pip,输入pip -version,如果提示找不到这个命令,则使用以下命令安装一下
$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py   # 下载安装脚本$ sudo python3 get-pip.py    # 运行安装脚本
        安装完后,使用
pip3 install aliyun-python-sdk-corepip3 install aliyun-python-sdk-alidns       安装阿里云的SDK。这里如果有小伙伴安装完以后仍然无法使用pip3命令,可能是pip3路径没有添加到path。使用命令
vim /etc/profile
export PATH=/usr/local/bin(pip安装路径)PATH重启后生效


    d、安装完以后,需要调试脚本

    使用ssh,执行命令
    python3 /volume1/@aliyunDdns/aliyunDdns.py -i <AccessKey id> -k <AccessKey secret> -d <domain> -s <sub domain>
    AccessKey id 和AccessKey secret是上面阿里云获取的
    domain是你申请的域名,比如baidu.cn
    sub domain是前缀,比如@,表示baidu.cn直接指向你的ip,如果是nas,表示nas.baidu.cn指向你的ip
    自己替换时,不需要输入尖括号<>,加尖括号只是为了阅读方便


image.png

   执行完以后,如上图,在阿里云域名解析的后台可以看到,如果没有添加,会添加,如果已经添加了,会更新成你执行机器所在的ip地址



   e、设置执行任务

    如果一切调试好了,则把这个条命令复制到群晖的任务当中,


image.png

   这里主要注意下首次运行时间和运行频率,还有最后运行时间。之前最后运行时间设置在00:55分,只循环了一个小时就没有在循环了。如果在这个时间之后IP变化了,就不会更新ip了。另外运行频率我设置了5分钟,不过我觉得最好是1分钟。这个我觉得短一点会比较好,这样及时能把ip更新到阿里云上去。

    写在最后

    这个方法有很多人写过教程也有shell的更新脚本,但是python这个是我自己写的,为什么要用python自己重新写一次,一个是熟悉更新流程,另外一个是shell脚本没有添加log。python添加了自动滚动的log,比较合理一些,插件比较多后续需要扩展也方便一点。


回复

使用道具 举报

全部回复0 显示全部楼层

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

开通会员 帮助中心 返回顶部 返回列表