18143453325 在线咨询 在线咨询
18143453325 在线咨询
所在位置: 首页 > 营销资讯 > 建站知识 > 让OpenWrt原生ddns使用dnspod动态解析域名

让OpenWrt原生ddns使用dnspod动态解析域名

时间:2023-02-07 10:04:01 | 来源:建站知识

时间:2023-02-07 10:04:01 来源:建站知识

本文原创,转载请联系本人。

ddns是国外的协议,而且大多数都是收费的,国内的花生壳又不稳定,于是自己DIY了。网上有些文章是使用sddns,我简单的看了下ddns,发现实际上无需装sddns直接使用原生的ddns就能做到。

该方法适用于Barrier Breaker 14.07、Attitude Adjustment 12.09。新版的Chaos Calmer 15.05已经带有update_script配置参数了,能自己写脚本实现了。新版的脚本文件:

packages/dynamic_dns_updater.sh at master · openwrt/packages · GitHub

所以Chaos Calmer 15.05之后的用户可以不用继续往下看了。

修改前提:

1、申请dnspods的账号,按照官方向导,将你的域名添加到dnspods上;

2、去域名提供商那,将你的域名DNS改为dnspods的;

修改方法:


需要修改/usr/lib/ddns/dynamic_dns_updater.sh脚本,而且改法很简单,只需要将原来的 改为


#some constantsif [ -z "$retrieve_prog" ]then retrieve_prog="/usr/bin/wget -O - ";fi使能够自己在配置文件中定义命令行进程即可,这种改法的好处是,还能兼容以前的国外的动态DNS。

改完之后,需要配置dnspod的配置,在配置/etc/config/ddns文件中新增:

option retrieve_prog '/usr/bin/curl -k -X POST https://dnsapi.cn/Record.Modify -d ' option update_url 'login_token=[LOGIN_TOKEN]&format=json&domain_id=[DOMAIN_ID]&record_id=[RECORD_ID]&sub_domain=[DOMAIN]&value=[IP]&record_type=[RECORD_TYPE]&record_line=%e9%bb%98%e8%ae%a4' option login_token '你的登录Token' option domain_id '你的域名ID' option record_id '你的记录ID'option domain '你的子域名' option record_type '记录集类型'上述内容请自行处理缩进与换行。

其中,login_token请参考https://support.dnspod.cn/Kb/showarticle/tsid/227/

大功告成!

测试方法:

在ssh中输入/usr/lib/ddns/dynamic_dns_updater.sh myddns

上述命令行中的myddns是你配置文件中的config service 'myddns'。

如果提示curl不存在,请直接从安装源安装curl即可。



--9月17日更新

Chaos Calmer 15.05使用原生ddns的做法研究:


观察dynamic_dns_functions.sh脚本第111--112行,可知若要使用curl,需配置USE_CURL=1;

第81行有自动检测SSL机制,所以可以去掉-k参数;

因此只需设置

update_url '--request POST https://dnsapi.cn/Record.Modify --data login_token=[LOGIN_TOKEN]&format=json&domain_id=[DOMAIN_ID]&record_id=[RECORD_ID]&sub_domain=[DOMAIN]&value=[IP]&record_type=[RECORD_TYPE]&record_line=%e9%bb%98%e8%ae%a4

即可实现原生支持。

--12月25日更新

使curl支持post方式发送数据

在/etc/config/ddns中设置

option use_post '1'


然后在/usr/lib/ddns/dynamic_dns_function.sh中设置

找到

__PROG="/usr/bin/curl -RsS -o $DATFILE --stderr $ERRFILE"

在下面加入

if [ $use_post -eq 1 ]; thenexport __POST="$__URL"__PROG="$__PROG -d '${__POST#*/?}'"__URL="${__POST%/?*}"fi即可


sse BianMun:要说可玩性的话,那还是openwrt,日常使用padavan就是看中稳定直观。

关键词:动态,使用

74
73
25
news

版权所有© 亿企邦 1997-2025 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭