一个可以自动更新动态域名解析(DDNS)的脚本分享-适合有公网却是动态ip的人-比如远程访问家中树莓派

(说在前面:此教程适合有公网ip的人,没有公网ip的可以去搞内网穿透,比如frp、花生壳等内网穿透)

这几天本人准备在家里搞个树莓派搭建个下载机和私人云等操作,家里的宽带也正好有公网ip,结果测试下来发现是动态的,光纤猫断电重启也会刷新ip。我那个纳闷啊,总不能让每次手动到阿里云域名解析改一下吧?也太麻烦了,于是网上查找了一会儿,发现github上一位叫Martin Huang的大神的开源脚本可以实现自动提交新ip到阿里云域名解析,并且支持ipv4和ipv6,效果还不错,所以就发篇文章分享出来给有需要的人。

这个脚本开源作者是用python写的,也刚好是用于阿里云sdk和api的,脚本支持Linux系统和Windows系统。

所以在用此脚本前需要提前安装上相关运行环境,脚本使用很简单,就几个步骤而已,下面开始教程。

第一步、安装基本运行环境

我是用于树莓派的,对于树莓派的官方系统是集成好python的,所以我只需要一条命令sudo pip3 install aliyun-python-sdk-core安装阿里云的sdk就可以了。但是有些朋友可能不是用树莓派,所以我就随便列举一下Linux系统的安装命令的,至于Windows系统的大家可自行百度,因为基本上是一键安装。

树莓派官方系统的用户只需要使用这条命令(或者已经安装过python的用户):

(注意:如果你是使用的python是2.x的低版本,那么请安装低版本sdk,输入:sudo pip3 install aliyun-python-sdk-core)

python3.x版本推荐安装:sudo pip3 install aliyun-python-sdk-core-v3

其他Linux系统的用户(命令挨个执行):

ubuntu系统安装python3有问题的可以参考一下这篇教程(也可以百度):https://www.tkdcz.top/post/84.html

安装python命令:sudo apt install python3
安装python3包pip管理工具:sudo apt install python3-pip
安装阿里云sdk核心:sudo pip3 install aliyun-python-sdk-core-v3

以上命令装好后基本运行环境就可以了。

提示:如果pip3安装阿里云sdk出现如图所示错误(如下图红色框标出),那么在安装命令结尾加上--break-system-packages --trusted-host mirrors.aliyun.com就行了(如下图绿色框标出)。结尾加上命令,变成:

sudo pip3 install aliyun-python-sdk-core-v3 --break-system-packages --trusted-host mirrors.aliyun.com

3.jpg

第二步、配置脚本

首先登录阿里云的网站控制台获取你的AccessKey密钥,获取方式如下图步骤:

2.jpg

4.jpg

5.jpg

记住保存好你自己的AccessKey IDAccessKey Secret密钥,然后下载好刚才说的ddns解析自动提交的脚本,大家可到原作者的github页面下载,也可以在本站下载:

GitHub开源下载:https://github.com/mgsky1/DDNS

DDNS自动更新域名解析脚本.zip  |  大小:20KB |  来源:本站下载
已经过安全软件检测无毒,请您放心下载。
DDNS自动更新域名解析脚本.zip  |  提取码:krxc |  大小:20KB |  来源:百度网盘下载
(提取码:krxc)已经过安全软件检测无毒,请您放心下载。

下载好并解压,然后开始配置config.json文件和Utils.py文件(Windows下应该不用配置Utils.py,具体请自测):

配置文件:config.json填写说明:

    "AccessKeyId": "xxx",     // 把xxx换成这你的阿里云AccessKey ID

    "AccessKeySecret": "xxx",     // 把xxx换成你的阿里云AccessKey Secret

    "First-level-domain": "abc.com",     // 冒号里换成你的一级域名,假如 abc.com

    "Second-level-domain": "ddns"     // 冒号里换成你的二级域名,假如 ddns.abc.com,只填开头ddns即可。

代码文件:Utils.py填写说明:

打开Utils.py文件后,找到第72行with open('/opt/DDNS/src/config.json') as file后,

把括号里的/opt/DDNS/src/config.json路径改为你自己的脚本config.json所在路径即可。

如下图所示:1.jpg

2.jpg

这样配置好之后就可命令执行运行了,运行命令是以下两条(根据自己所需选择其中一条):
 (下面src/DDNS.py命令中,src/是表示路径,你的脚本文件放在什么路径,就要改成相应的路径即可)

ipv4网络环境使用:python3 src/DDNS.py
ipv6网络环境使用:python3 src/DDNS.py -6

像下面图一这样就表示运行成功了,图二是阿里云的域名解析查看

图一:

无标题.png

图二:

33.jpg

第三步、添加开机自动运行

开机自动运行有很多种方法,我这只介绍Linux系统其中一个,至于Windows的话只需把python3 src/DDNS.py命令写个bat放到开始菜单-程序-启动文件夹里就可以了实现了。

Linux系统下开机自动运行在/etc/rc.local文本里exit 0语句前添加启动命令就可以了。

执行命令:sudo nano /etc/rc.local

然后如下面所示添加python3 src/DDNS.py后,Ctrl+O回车保存,Ctrl+X退出就可以了。

#!/bin/sh -e

#

# rc.local

#

# This script is executed at the end of each multiuser runlevel.

# Make sure that the script will "exit 0" on success or any other

# value on error.

sudo python3 /opt/DDNS/src/DDNS.py -6 &

exit 0

教程到此结束了!


教程扩展延伸例子
如果想要实现多个域名或者二级域名同步更新ip,可以多加几个文件夹,并且文件夹里都有相关配置好的脚本,如下图:

11.jpg

然后开机自启动可以在rc.local里面多加几条命令就行了,输入sudo nano /etc/rc.local然后添加命令,如图:

Screenshot_2021-01-21-11-03-32-515~01.png就这样完成了,除了上面的运行方式,你也可以把脚本编译成可执行文件exe或者是bash等等。

开源项目:https://github.com/mgsky1/DDNS

↓新版本下载,回复评论后刷新本页可见

本文章为原创、翻译或编译,转载请注明来自TKDCZ网图

网友点评

已有0条点评 我要点评
验证码
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。