软路由-ros实现ddns动态解析

本文详细介绍了如何在腾讯云DNSPod中管理域名,设置解析记录,以及在ROS设备上编写和运行脚本,通过WinBox进行配置,以实现动态IP地址的更新。关键步骤包括修改ROS脚本中的特定参数,如PPPoE接口名、DNSPod的Token信息、域名和子域名,然后设置ROS定时器定期执行脚本,确保域名始终指向最新的IP地址。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

直接进入主题

  1. 登录腾讯云(DNSpod),地址:https://console.dnspod.cn/

  1. 登录后点击页面左侧,我的域名,如下图所示:

  1. 点击后,会显示你的域名情况,如果没有显示域名信息的,需要自己注册一个,便宜的一年几块钱,贵一些的一年也就30几块,我这个在阿里云注册的域名,然后在腾讯云上解析使用的。

  1. 点击域名

  1. 点击域名后,会显示域名的记录信息情况,如下

说明:记录值地址随意填写,后面会自动更新的,如图上,随意填写几个内网地址即可,我这边记录了一个二级域名,所以会多显示几行,一般简单测试,或者只需要一个顶级域名的,记录一行就可以


  1. 这边上设置好后,就结束了,接下来是ros上的设置

  1. 登录winbox,依次点击system-script,然后点击左上角加号,如图

说明:如图所示,Name处,需要写一个名字,要记住,如ddns。图上没写,你们自己写就好,然后下面空白处,填写代码,代码如下:

#PPPoE
:local pppoe "pppoe-out1"

#DNSPOD token
:local token "123456,12345678901010103938382"

#域名
:local domain "abc123.cn"

#子域名
:local subdomain "www"


#dname不要动
:local dname ($subdomain.".".$domain)

#获取pppoe拨号ip
:local ipaddr [/ip address get [/ip address find interface=$pppoe] address]
:set ipaddr [:pick $ipaddr 0 ([len $ipaddr] -3)]

#获取域名列表
:local record [/tool fetch url="https://dnsapi.cn/Record.List" http-data="login_token=$token&format=json&domain=$domain&sub_domain=$subdomain&record_type=A" as-value output=user]

#获取id和ip
:set record ($record->"data")
:set record [:pick $record [:find $record "\"records\":"] [:len $record]]
:local recordid [:pick $record ([:find $record "\"id\":\""]+6) [:find $record "\",\"ttl"]]
:local recordip [:pick $record ([:find $record "\"value\":\""]+9) [:find $record "\",\"en"]]

#更新ip地址
:if ($recordip!=$ipaddr) do={
/tool fetch url="https://dnsapi.cn/Record.Ddns" http-data="login_token=$token&format=json&domain=$domain&sub_domain=$subdomain&record_id=$recordid&record_line_id=0&value=$ipaddr"
:log info ("[".$dname."] ip update")
} else={
:log info ("[".$dname."] ip not change")
}

代码是说明:

●需要修改如下内容,:local pppoe "pppoe-out1

●需要修改如下内容,:local token "123456,12345678901010103938382"

●需要修改如下内容,:local domain "abc123.cn"

●需要修改如下内容,:local subdomain "www"

以上说明中,红色部分是你需要修改的,其他不需要动,完全复制粘贴即可

  1. 复制后,如下图所示,为显示全点,图片内容小点,可放大参考,主要内容位于上面代码处


  1. 以上设置后保存应用

  1. 设置ros定时器,去自动执行以上脚本内容,这样可实现你的地址动态更新

  1. 依次点击,system-Scheduler,点击左上角加号,相关上设置如下图所示:

注:图中描述错误,是每30分执行一次,如果是30s,需要这样写00:00:30


  1. 补充

通过以上设置,基本就完成了通过ros的域名解析工作,可实现通过域名来访问你的ros路由器

有个比较重要的遗漏点说一下

代码中提到的token就是这一行

:local token "123456,12345678901010103938382"

123456是token的ID,后面一长串是秘钥,这个需要在腾讯云里获取,过程不演示, 自己百度查查看,只要拿到这个就好

以上,如有问题,请评论留言,我也是个菜鸟,研究了挺长时间整出来的,

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大清丨亡了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值