(说在前面:此教程适合有公网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
第二步、配置脚本
首先登录阿里云的网站控制台获取你的AccessKey密钥,获取方式如下图步骤:
记住保存好你自己的AccessKey ID和AccessKey Secret密钥,然后下载好刚才说的ddns解析自动提交的脚本,大家可到原作者的github页面下载,也可以在本站下载:
GitHub开源下载:https://github.com/mgsky1/DDNS
下载好并解压,然后开始配置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所在路径即可。
如下图所示:
这样配置好之后就可命令执行运行了,运行命令是以下两条(根据自己所需选择其中一条):
(下面src/DDNS.py命令中,src/是表示路径,你的脚本文件放在什么路径,就要改成相应的路径即可)
ipv4网络环境使用:python3 src/DDNS.py ipv6网络环境使用:python3 src/DDNS.py -6
像下面图一这样就表示运行成功了,图二是阿里云的域名解析查看。
图一:
图二:
第三步、添加开机自动运行
开机自动运行有很多种方法,我这只介绍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,可以多加几个文件夹,并且文件夹里都有相关配置好的脚本,如下图:
然后开机自启动可以在rc.local里面多加几条命令就行了,输入sudo nano /etc/rc.local然后添加命令,如图:
就这样完成了,除了上面的运行方式,你也可以把脚本编译成可执行文件exe或者是bash等等。
开源项目:https://github.com/mgsky1/DDNS
↓新版本下载,回复评论后刷新本页可见:
网友点评
已有0条点评 我要点评