【Lv:4】
- 注册
- 2018/07/04
- 消息
- 3
- 金粒
- 367金粒
前言
在前些阶段,我买了一个树莓派3b。并打算用其搭一个个人blog。可是这域名解析部分着实难倒我了。根据多方面内容的学习和修改,最终完成了这个脚本。该脚本使用方便,按照注释所说进行修改即可。(但是还是有几个数值的获取需要按照本帖的教程)
Q&A
Q:什么是DDNS/动态解析?A:DDNS即为动态解析。现中国大陆内宽带分为两种,第一种为家用宽带,第二种则为企业宽带。我们在家里一般使用的都是家用宽带,会隔一段时间变换一次外网IP。由于域名解析是固定的,所以这就导致了使用家用电脑开服的人需要隔一段时间解析一次,就算是更换速度再慢,也是一天更换一次。这非常麻烦。DDNS就是当IP为A时,自动为某个域名进行A记录解析到A这个IP,如果IP变换为B,那么也会自动解析到B。
Q:这个脚本的原理是什么?
A:每隔一段时间自动获取当前外网IP,并与上次的记录做对比,如果一样就不做行动,如果不一样就自动更新解析内容。
Q:是不是使用这个脚本还要在DNSPod购买域名啊?
A:不是的,我们可以将我们的域名的DNS服务器地址修改为DNSPod的DNS服务器地址。响应时间为24小时,也就是说24小时左右才可以完成DNS服务器更换。
Q:我没有在我的域名管理后台看到修改DNS服务器字样,是不是无法修改了?
A:不是的,我们还可以做NS记录来增加DNSPod的服务。
Q:来自Freenom的免费域名(.tk/.ml/.cf/.gq/...)是否可以使用?
A:当然可以使用!亲测有效!只不过英文看起来麻烦一点而已。
……更多内容待补充……
使用方法
在正式使用之前,我们要先对脚本内容进行修改。对于.py文件的编写,我建议使用notepad++进行修改。(环境:树莓派,UbuntuMATE)
该脚本一共涉及到了七个自设变量,但是有两个已经预先填写好了,基本不用变动。还有两个是用户名及密码。还有一个是记录名,很容易理解。
下面我将为大家解答如何获取domain_id和record_id。
但是在获取这两个值之前,我们要先获取ID和TOKEN。
ID和TOKEN的获取
实际上这两个值并不需要获取,而是需要进行申请,但是过程也是非常简单。
你只需要:
登录DNSPod账号 -> 访问https://www.dnspod.cn/console/dashboard -> 点击“用户中心” -> 安全设置 -> API Token -> 创建API Token
(请铭记这两个值,最好截张图。但是千万不要外泄这两个值。)
domain_id的获取
DNSPod官方文档:https://www.dnspod.cn/docs/domains.html#domain-list
这行命令我们需要在linux架构下的系统进行操作。(但windows下的cmd应该也是可行的。)
注:此处的“LOGIN_TOKEN”应为ID和TOKEN的组合,组合格式:LOGIN_TOKEN = ID,TOKEN(保留半角逗号)
record_id的获取
此处的LOGIN_TOKEN和上文一致,domain_id=后面的xxx应该替换为你刚刚获取到的domain_id
注意事项
一、在一切开始之前,应该确保在dnspod处已经可以正常解析你的域名。域名修改DNS服务器后(NS记录)的全球相应时间一般为24小时,稍安勿躁。
二、在进行record_id和domain_id获取前应该确保你绑定的域名已经做了相应的记录。(例如我想把我电脑的IP255.255.255.255解析到www.sevenc.xyz,这个时候我们就要先在dnspod处做一个A记录解析,记录名为www,无论是否解析成功。)
……更多注意事项等待补充……
脚本设置后的使用方法
在设置好几个变量后,我们要将这个内容添加到自启动项目中:
当前环境:树莓派,UbuntuMATE
先在控制台输入:
给脚本提权
然后在控制台处输入命令:
增加自启动项目
然后找到exit 0,在exit 0之前的内容都会在启动时被执行,我们添加:
之后Ctrl+O保存文本内容,Ctrl+X退出编辑器
之后在控制台处输入:
重启系统进行测试
适用环境
我测试过Raspbian/UbuntuMATE/Kali/Debian系统,均可稳定运行。今天才拿到Windows10ARM版,还没刷写,就无法测试Windows是否可以使用。
不过我觉得应该所有有Python环境的系统都可以运行吧?_(:з」∠)_
下载地址
在前些阶段,我买了一个树莓派3b。并打算用其搭一个个人blog。可是这域名解析部分着实难倒我了。根据多方面内容的学习和修改,最终完成了这个脚本。该脚本使用方便,按照注释所说进行修改即可。(但是还是有几个数值的获取需要按照本帖的教程)
Q&A
Q:什么是DDNS/动态解析?A:DDNS即为动态解析。现中国大陆内宽带分为两种,第一种为家用宽带,第二种则为企业宽带。我们在家里一般使用的都是家用宽带,会隔一段时间变换一次外网IP。由于域名解析是固定的,所以这就导致了使用家用电脑开服的人需要隔一段时间解析一次,就算是更换速度再慢,也是一天更换一次。这非常麻烦。DDNS就是当IP为A时,自动为某个域名进行A记录解析到A这个IP,如果IP变换为B,那么也会自动解析到B。
Q:这个脚本的原理是什么?
A:每隔一段时间自动获取当前外网IP,并与上次的记录做对比,如果一样就不做行动,如果不一样就自动更新解析内容。
Q:是不是使用这个脚本还要在DNSPod购买域名啊?
A:不是的,我们可以将我们的域名的DNS服务器地址修改为DNSPod的DNS服务器地址。响应时间为24小时,也就是说24小时左右才可以完成DNS服务器更换。
Q:我没有在我的域名管理后台看到修改DNS服务器字样,是不是无法修改了?
A:不是的,我们还可以做NS记录来增加DNSPod的服务。
Q:来自Freenom的免费域名(.tk/.ml/.cf/.gq/...)是否可以使用?
A:当然可以使用!亲测有效!只不过英文看起来麻烦一点而已。
……更多内容待补充……
使用方法
在正式使用之前,我们要先对脚本内容进行修改。对于.py文件的编写,我建议使用notepad++进行修改。(环境:树莓派,UbuntuMATE)

该脚本一共涉及到了七个自设变量,但是有两个已经预先填写好了,基本不用变动。还有两个是用户名及密码。还有一个是记录名,很容易理解。
下面我将为大家解答如何获取domain_id和record_id。
但是在获取这两个值之前,我们要先获取ID和TOKEN。
ID和TOKEN的获取
实际上这两个值并不需要获取,而是需要进行申请,但是过程也是非常简单。
你只需要:
登录DNSPod账号 -> 访问https://www.dnspod.cn/console/dashboard -> 点击“用户中心” -> 安全设置 -> API Token -> 创建API Token
(请铭记这两个值,最好截张图。但是千万不要外泄这两个值。)
domain_id的获取
DNSPod官方文档:https://www.dnspod.cn/docs/domains.html#domain-list
- curl -X POST https://dnsapi.cn/Domain.List -d ‘login_token=LOGIN_TOKEN&format=json’
这行命令我们需要在linux架构下的系统进行操作。(但windows下的cmd应该也是可行的。)
注:此处的“LOGIN_TOKEN”应为ID和TOKEN的组合,组合格式:LOGIN_TOKEN = ID,TOKEN(保留半角逗号)
record_id的获取
- curl -X POST https://dnsapi.cn/Record.List -d ‘login_token=LOGIN_TOKEN&format=json&domain_id=xxx’
此处的LOGIN_TOKEN和上文一致,domain_id=后面的xxx应该替换为你刚刚获取到的domain_id
注意事项
一、在一切开始之前,应该确保在dnspod处已经可以正常解析你的域名。域名修改DNS服务器后(NS记录)的全球相应时间一般为24小时,稍安勿躁。
二、在进行record_id和domain_id获取前应该确保你绑定的域名已经做了相应的记录。(例如我想把我电脑的IP255.255.255.255解析到www.sevenc.xyz,这个时候我们就要先在dnspod处做一个A记录解析,记录名为www,无论是否解析成功。)
……更多注意事项等待补充……
脚本设置后的使用方法
在设置好几个变量后,我们要将这个内容添加到自启动项目中:
当前环境:树莓派,UbuntuMATE
先在控制台输入:
- chmod 777 pypod.py
给脚本提权
然后在控制台处输入命令:
- sudo nano /etc/rc.local
增加自启动项目
然后找到exit 0,在exit 0之前的内容都会在启动时被执行,我们添加:
- su pi -c "exec /home/pi/pypod.py"
之后Ctrl+O保存文本内容,Ctrl+X退出编辑器
之后在控制台处输入:
- sudo reboot
重启系统进行测试
适用环境
我测试过Raspbian/UbuntuMATE/Kali/Debian系统,均可稳定运行。今天才拿到Windows10ARM版,还没刷写,就无法测试Windows是否可以使用。
不过我觉得应该所有有Python环境的系统都可以运行吧?_(:з」∠)_
下载地址
提取码:3a33

Enjoy ;)
最后编辑: