dnspod ddns 下载_【好玩的网络-第5期】分享自编ddns程序,17行代码轻松实现免费ddns,服务器或nas玩家的福音...

8a9597d0a8e8b8c08cb1695a11ad3f84.png

【好玩的网络】系列面向普通人的网络科普视频。我在我的哔哩哔哩账号(up主:旋律果子)更新【好玩的网络】视频版,在我的知乎(用户:曾彦)专栏更新【好玩的网络】文字版。最新消息以及预告在我的个人网站www.yzeng1995.top发布,大家可以关注我的哔哩哔哩(旋律果子)和知乎账号(曾彦)。其中,我的知乎专栏欢迎网络爱好者的投稿以及补充。

本期B站视频连接:【好玩的网络-第5期】宝藏up分享自编ddns程序,17行代码轻松实现免费通用ddns,服务器/NAS小伙伴的福音_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili

大家好,我是你们的小伙伴果子。我相信这一期视频大家已经期待很久了!

好了,废话不多说,直接进入今天的正题。第4期视频,我简要介绍了dns与ddns的原理,也准备将我自己开发的ddns程序免费分享给大家。这一期,我介绍一下我自己开发的程序的原理以及使用方法。

1.原理以及优势

我的ddns程序的原理是通过调用dns服务商dnspod的api接口实现更新IP地址。Dnspod提供的服务是完全免费的,稳定性也非常不错,而且不受三级域名名称和数量的限制。这里所指的三级域名指的是类似上一期所讲到的www,picture等域名。你可以轻轻松松创建足够多的三级域名进行解析。

8a0effdd0ba27d824883207bee0d53b5.png
三级域名

2.使用的开发语言以及功能简介

程序使用的是shell script语言(bash),也就是linux系统最开始的那个命令行界面。这个程序在linux、mac等支持bash环境的系统都能运行,通常,系统自带的环境已经足够,不需要安装其他依赖。经过测试,程序也运行的相当稳定,自从开发好之后就没出现过问题,我也至少有5个服务器都是在用这个程序。对于程序安全性也无需担心,因为它是开源的,你可以自己去查看代码或者修改代码。不过这个脚本暂时只支持ipv4的ddns,因为我家暂时没有公网ipv6地址,后期有需要再加。另外,如果你知道武汉电信家庭宽带有ipv6,欢迎在弹幕和评论区留言,或者给我发私信,非常感谢。

64643edc98f166f2a1448da273af9366.png
程序的开发语言为bash script

3.程序实现过程以及使用方法

现在就来看看我是如何用17行代码实现ddns的吧。大家初看这个程序,可能感觉挺复杂,但其实原理非常简单,稍作解释就能明白。程序的第一行直接声明了程序的运行环境为bash shell,没错,就是你打开的那个命令行,linux系统的初始环境。第一个代码块需要填写dnspod服务商的认证信息,这个信息在dnspod官网上进行申请,相当于账号和密码。

ebe22f6e7d07d65ee145190119681bc6.png
程序需要填写的信息

Domain这一项应该填写你所购买的二级域名,一般具有以下形式。Subdomain这一行需要填写子域名,也就是三级域名,只填写第一部分,如www。下面的程序看着挺复杂,不用去管它,其主要功能是从dnspod中获取当前子域名的A记录,也就是dns服务器中记录的ip地址。下一个代码块主要是是获得当前实际的公网IP。最后程序判断当前实际IP地址和服务器中解析的地址是否一致。如果一致则不进行操作,因为dns服务器会限制不正常操作的次数,在真实IP和记录ip相同的情况下强制调用api就属于不正常操作。因此,只有在IP地址不一致时,才会修改dns服务器中的地址为当前实际的公网IP地址。

07f28bcb22f98e47d0ed2d2f5cc0aec8.png
获取A记录以及判断IP是否需要更新

0fcf8a2d1b5e7cfb0bb24eca8c2f343a.png
为了避免api被滥用,账号被封禁,因此应判断ip地址是否发生改变

原理很简单吧,使用起来也非常的easy。我们只需要填写认证信息和子域名信息,再将程序添加到系统的定时任务中去,就能够实现ddns解析了。如果有不明白的,请暂停下来看操作。

0dd05095dcadbc99e73daab666720291.png
使用程序只需要修改3行

4.操作步骤总结

我们来具体演示关键步骤:第1步,需要在域名注册商添加dns主机记录为dnspod的主机记录,并等待要求等待的时间,一般为72个小时。

04882c736078ff5bd5d6f811c7320dae.png
在哪里购买的域名就在哪个网站的管理控制台里找

第2步,我们进入dnspod的官网,将购买的二级域名添加到dnspod中。

aeea67badbee2e98da9ed08035bd44d9.png
将购买的二级域名添加到dnspod中

第3步,在管理控制台中创建认证信息。

a98a8759f84010f350c7bbbcd3eef760.png
在dnspod管理控制台中创建认证信息

第4步,我们进入域名解析中,新添加一条A记录,并设置好三级域名,地址任意填写一个ipv4地址,其他默认即可,点击确认。

834fc9407ad74684ff7c0198681f81f0.png
新添加一条A记录,并设置好三级域名

第5步,将api调用的密钥和需要解析的二级域名和三级域名填写入程序,运行一次程序进行测试,观察dnspod管理页面中的ip地址是否变为当前的公网IP地址。

第6步,我们将这个程序加入到系统定时任务中去。例如在linux系统中打开这个目录(/etc/crontab),添加一行自动执行的记录。

64a061533b93b91aa830cec774f475cd.png
将程序添加到系统的定时任务中
#/etc/crontab中定时任务:
*/10 * * * * root /usr/local/sbin/dnspod_ddns.sh 1>&2> /dev/null

这样我们就配置好了。非常的easy。这个程序我会放到视频简介中,在我的github中也能找到。如果使用过程中遇到问题,请在评论区留言。文字版教程我也会发布在B站专栏和知乎专栏中,感兴趣的小伙伴可以关注我,以免错失最新消息。我也建立了一个qq交流群1084369522,欢迎大家加入讨论。

这就是本期视频的全部内容了,希望能帮助到大家。如果本期视频三连数量超过3000,我会将ipv6功能也加进去,再做个教程。感谢大家的支持~~

本人网站www.yzeng1995.top

程序下载:(大家有兴趣可以数数有用的代码是不是17行)

https://github.com/yzeng1995/fast_set_centos/blob/master/usr_local_sbin/dnspod_ddns.sh

#!/bin/bash

# This program establish ddns service
# to modify the public ip address of dns server.
# The dns server is dnspod.

TOKEN="177,4e"
DOMAIN="y5.t"
SUB_DOMAIN="test"

# TOKEN=`cat dnspod_ddns.conf|grep TOKEN|awk -F'=' '{print $2}'`
# DOMAIN=`cat dnspod_ddns.conf|grep -e '^DOMAIN'|awk -F'=' '{print $2}'`
# SUB_DOMAIN=`cat dnspod_ddns.conf|grep SUB_DOMAIN|awk -F'=' '{print $2}'`


DATA="login_token=$TOKEN&format=json&domain=$DOMAIN&sub_domain=$SUB_DOMAIN&record_type=A&offset=0&length=3"
JOSN_RECORDS=`curl -s -X POST https://dnsapi.cn/Record.List -d $DATA`

RECORD_ID=`echo $JOSN_RECORDS|sed '/id/ s/.*id":"(.*)","ttl.*/1/'`
LINE_ID=`echo $JOSN_RECORDS|sed '/line_id/ s/.*line_id":"(.*)","type.*/1/'`
#=================get record ip
IP_RESOLVED=`echo $JOSN_RECORDS|sed '/value/ s/.*value":"(.*)","enabled.*/1/'`

#================get real ip
REAL_IP=`cat</dev/tcp/ns1.dnspod.net/6666`
#REAL_IP="2.2.3.2"
if [ $REAL_IP != $IP_RESOLVED ]; then
	#================modify record
	DATA="login_token=$TOKEN&format=json&domain=$DOMAIN&record_id=$RECORD_ID&sub_domain=$SUB_DOMAIN&value=$REAL_IP&record_type=A&record_line_id=$LINE_ID"
	# echo $DATA
	JSON_RESULT=`curl -s -X POST https://dnsapi.cn/Record.Modify -d $DATA`
	echo $JSON_RESULT >> /var/log/dnspod_ddns.log
	IP_RESOLVED=$REAL_IP
fi
ddns-scripts是一种开源软件,用于管理动态DNS(DDNS)的配置和更新。 DDNS是一种用于动态IP地址的服务,允许用户通过域名访问其网络设备,而不必担心IP地址的变化。ddns-scripts通过与DDNS提供商交互,实现自动更新动态IP地址,并将其映射到相应的域名上。它支持多种常见的DDNS协议和服务提供商,包括DynDNS、No-IP、DNSPod等。 ddns-scripts的主要功能包括配置文件管理、域名更新、状态查询和日志记录。用户可以通过编辑配置文件指定需要更新的域名和相应的DDNS参数,如用户名、密码和主机名等。当IP地址发生变化时,ddns-scripts会自动通过相应的协议和API更新域名的DNS记录。 此外,ddns-scripts还提供了状态查询功能,可以显示当前的DDNS状态和日志记录,以便用户了解更新过程和结果。用户也可以通过命令界面手动触发更新操作或查看更新状态。 ddns-scripts是基于OpenWrt项目的脚本,并在OpenWrt系统上特别常见和受欢迎。它可以方便地与路由器、服务器或其他网络设备集成,通过定检测IP地址变化和自动更新域名,为用户提供稳定可靠的DDNS服务。 总之,ddns-scripts是一种功能强大的动态DNS管理工具,通过自动更新IP地址和域名的映射关系,帮助用户轻松实现通过域名访问其网络设备的需求。它简单易用,支持多种协议和服务提供商,是管理DDNS的理想选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值