脚本
: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构建畅通内网
- 简单防火墙
- 也许会鸽很久,敬请期待
本文由 Rinvay 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: Dec 19, 2019 at 03:34 pm
十年之约-虫洞穿梭而来,学习到了!
postman测试代码没问题,ip也动态改变了,在hapac2机器中,写进去没有效果,用终端测试,输出:failure: unable to resolve hostname。请问下怎么解决,系统是6.48.3
能折腾代表还年轻呢、
必须的,爱折腾是我们年轻人的天性,可别服老!!
鸽吧 不鸽的人生跟咸鱼有何区别
鸽一下更健康,是吧
必须的,爱折腾是我们年轻人的天性,可别服老!!
兄台所言极是
我的邮件服务之间崩了,重新发送的邮件,哈哈
说实话我是真的喜欢你这个评论表情,奈何手笨不会搞,年初也折腾了好几天弄不好放弃了
其实我也是折腾了好久才搞定的,准备出教程的,结果我忘记了,现在再来回想又要好久!