ROS使用DnsPod做DDNS
脚本
:delay 30s
/tool fetch http-method=post mode=https url="https://dnsapi.cn/Record.Ddns" keep-result=yes dst-path=ddns.txt http-data="请替换这里"
使用方法
- 使用dnspod管理界面随便添加一条A记录
- 使用dnspod个人中心的“秘钥管理”中添加一个秘钥并将生成的id和token保存起来
- 使用
https://dnsapi.cn/Record.List
这个官方接口先查询需要更新的域名的record_id
,使用postman 添加post请求,在body里面使用from-data编辑请求数据,创建login_token
format
domain
三个参数,其中login_token为之前秘钥管理创建的id,token
,format填写json,domain填写你的域名例如rinvay.cc
,send一下,就可以得到你想要的数据返回。 - 在数据返回中找到你刚刚添加到域名例如:test.rinvay.cc那么返回参数中name就是test,就找test的id,记录下来,现在我们得到了更新接口所需要的全部参数。
- DDNS更新接口
https://dnsapi.cn/Record.Ddns
需要参数是login_token=“上一步使用到的参数”&format=json&domain=“你的域名”&record_id=“上一步保存下来的ID”&sub_domain=“需要更新的name”&record_line_id=0 - 完整的参数例子:
login_token=1000000,500000000000000000000&format=json&domain=rinvay.co&record_id=404972730&sub_domain=test&record_line_id=0
- 将组装好的这一段参数写到postman里面测试一下,首先填写上一步的接口,选择post请求,然后body采用raw,把组装好的参数丢进去,再然后在在headers中创建一个Content-Type参数为application/x-www-form-urlencoded,send一下试试,看看返回里面存在"Action completed successful"表示更新成功
- 刷新一下你的DdnPod就可以看到IP地址已经被更新为你的IP地址了
- 现在在ROS中使用Wxinbox,打开ppp/profiles,点击添加name命名为例需要更新的名称或者你自定义,scripts里面填写文章开头的脚本,替换内容为上文中的拼凑好的参数,保存
- 然后点击interface找到你的拨号连接,在dial out中的profile选择你刚刚命名的脚本例如:test.rinvay.co
- 尝试断开拨号重新拨号,重新获取一次IP,在30S后,dnspod将会被刷新,同时files中会出现一个ddns.txt的文件,拖出来查看可以得到上面postman演示中的返回信息,提示更新成功,大功告成
有感而发
- 有人肯定会问,网上有很多脚本可以一步到位实现,为什么我还要用这样的方式呢?
- 脚本是可以实现,但是我们要知道其中的原理的核心在什么地方,这是一篇关于DDNS脚本的推导视频,旨在记录脚本更新DDNS的方法同时也记录一个思路
- 大多数人的帖子是给大家一个脚本使用计划任务实现,而我这个方式核心是使用拨号时候直接实现,这样延迟低一点,当然了没有什么优劣之分,感谢那些大神们的付出才有这么多脚本可以给我们小白使用
后续关于ROS的计划
- 单线多播PCC负载均衡
- 多线静态地址接入同网段下的负载均衡
- 阿里云DDNS解析及PHP源代码以及自建解析接口
- L2TP构建畅通内网
- 简单防火墙
- 也许会鸽很久,敬请期待
当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »