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

TKDCZ 1033 0

(说在前面:此教程适合有公网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的用户):

sudo pip3 install aliyun-python-sdk-core

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

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

安装python命令:sudo apt-get install python3
安装python部分类库:sudo apt-get install python3-dev build-essential libssl-dev libffi-dev libxml2 libxml2-dev libxslt1-dev zlib1g-dev
安装python3包pip管理工具:sudo apt-get install python3-pip
安装阿里云sdk核心:sudo pip3 install aliyun-python-sdk-core

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

第二步、配置脚本

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

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

(注意:为了安全着想,请使用“子用户AccessKey”,上图是根账户操作,存在风险)

记住保存好你的AccessKeyId密钥,然后下载好刚才提到的ddns解析自动提交的脚本,大家可到作者的github开源页面下载。

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

嫌麻烦的朋友当然也可以用我提供的两个链接下载,本站下载或者网盘下载(本文末尾可以下载新版本)。


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


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

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

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

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

    "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所在路径即可。

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

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

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

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

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

图一:

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

图二:

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

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

开机自动运行有很多种方法,我这只介绍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,可以多加几个文件夹,并且文件夹里都有相关配置好的脚本,如下图:

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

然后开机自启动可以多加几条命令就行了,如图:

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

就这样完成了。

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

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

标签: 分享 互联网 教程 技术 树莓派 搭建 代码 交流

发表评论 (已有0条评论)

还木有评论哦,快来抢沙发吧~