ipv4+ipv6网络中的DDNS

时间:2024-03-10 19:24:43

前言:看了我上一篇文章《NAT、PAT、DMZ、端口映射、端口转发、UPNP》应该会对“运营商公网宽带(ipv4)”有所了解,这篇文章来说下ipv4和ipv6网络中的DDNS。

原理:一般家庭宽带尽管申请了公网IP(ipv4),那这个IP也不是一直不变的,运营商还是会定期更换用户的公网IP,同样IPV6也是如此,会定期变更。所以这种情况下,如果家里有对外服务器,比如:web网站服务器、NAS、远程桌面、智能家居、路由器等等,怎么才能做到在外面能够一直访问呢?首先想到的就是通过域名绑定,因为域名是一直不变的,这样我们唯一需要解决的就是如何把变化的ip绑定到不变的域名上,DDNS就是一个很好的解决方案,本文通过阿里云申请的域名,并在对外服务器上定时执行脚本(此脚本会检测对外服务器IP是否变化,若变化则将新的IP绑定到阿里云域名)来实现DDNS。

名词解释:
DDNS:

DDNS(Dynamic Domain Name Server,动态域名服务)是将用户的动态IP地址映射到一个固定的域名解析服务上,用户每次连接网络的时候客户端程序就会通过信息传递把该主机的动态IP地址传送给位于服务商主机上的服务器程序,服务器程序负责提供DNS服务并实现动态域名解析。

如何实现:
提示:这里以centos7对外服务器做介绍,ipv6网络设置需要运营商已开通ipv6且路由器做好ipv6启用相关设置。
ipv4或ipv6网络设置DDNS:
1.ipv4网络中的对外服务器已经在路由器上做好了端口映射(映射方法如下截图),此时外网用户可以通过映射的公网IP+端口访问服务器(如果是ipv6这一步省略)。

2.注册阿里云域名,添加A或AAAA记录:

域名注册这里不做详细介绍,可以买个二手域名。接下来接入控制台:

鼠标划到最左侧,隐藏的左边栏就会自动弹出来,选择倒数第二个“域名”,就可以进入我们刚刚注册的域名管理页面,中间就是你注册的域名。但是这个时候还不能解析,你还需要完成实名认证。实名认证需要3-5个工作日,实际用不了那么久。认证完成之后我们就可以开始域名解析设置了。

点击后面的管理,你可以修改域名信息,第四项就是实名认证,按照要求提交相应的信息,等待审核,3-5天后审核通过,你的域名就可以使用了。(好像.cn域名还必须备案才能解析,大家尽量不要注册.cn)


回到我们域名管理页,点击域名列表右侧的解析,进入解析设置页面。

点击添加记录:

“记录类型”:如果是公网IPV4则选A,如果是IPV6的话选AAAA
“主机记录”:填写你想要的域名地址,以后你访问时候使用,我填个“myweb“,可以填自己喜欢的或者好记的。这样我添加的域名就是:myweb.前面申请的域名,比如为:myweb.iptest.top
“解析线路”:默认
“记录值”:需要填进去一个正确的IPV4或IPV6地址才可以提交,可以先随便填一个,后面他会自动更新。
“”TTL值“:就是域名和ip对应关系在DNS服务器中存储多久,默认10分钟就好,后面脚本会根据设置自动更改。

设置完确定,A或AAAA记录完成了。

3.获取阿里云域名的accesskeys

把鼠标放到最右上角你的头像位置,自动弹出的窗口里面点选里面的accesskeys

会有一个提醒,选择继续使用(这里更推荐子用户AccessKey(访问控制台RAM)),创建accesskeys然后保存下来你的acesskeys,点击显示后会有一个短信验证,然后就显示出来了,保存下来备用。

警告:使用子用户AccessKey,请分配 AliyunDNSReadOnlyAccess(只读访问云解析(DNS)的权限) 和 AliyunDNSFullAccess(管理云解析(DNS)的权限) 这两个权限!推荐有动手能力的用户使用子用户AccessKey!如果不会操作或者图省事,请使用全局AccessKey,但此时一定要注意!千万不要泄露你的全局AccessKey或者将你的全局AccessKey发布到公网上!这样等同于把你的号白送人,还可以名正言顺的白嫖你的阿里云账号!如果发生泄露,请立刻删除泄露的AccessKey!

4.下载DDNS自动更新脚本并执行配置

yum -y install curl openssl* bind-utils wget
wget -O /usr/sbin/AliDDNS-v2.0.sh https://ilemonrain.com/download/shell/AliDDNSv2.sh
chmod +x /usr/sbin/AliDDNS-v2.0.sh
/usr/sbin/AliDDNS-v2.0.sh

弹出启动菜单:

在这里,我们输入 1 (数字1) ,后按下回车,开始进入AliDDNS配置向导:

比如第二步中的“主机记录”设置的域名为myweb.iptest.top,那么这里就输入iptest.top
完成后按下回车键,继续填写二级域名:

同上面的范例,我们输入 myweb ,之后按下回车键继续:

如果使用的是免费版的阿里云云解析,此处可以填写的数值范围为:60086400;如果使用的是收费版(企业版)的阿里云云解析,此处可以填写的数值范围为:186400 (根据购买的产品类型决定)。填写完成后,按下回车键继续:

填入第三步中的accesskey ID,填写完成后,按下回车键继续:

填入第三步中的accesskey Secret,获取AccessKey Secret属于账号高风险操作,请准备好用来接收阿里云验证码的手机!填写完成后,AliDDNS 2.0如果没有激活专家模式,会直接进入执行流程;如果启动了专家模式,以下参数请在你理解的基础上填写!否则请一律留空!

输入获取本机IP地址使用的命令。这里根据自己服务器情况设置,我的获取ipv4地址和ipv6地址命令分别为:

#ipv4地址获取
curl -s whatismyip.akamai.com
#ipv6地址获取
ip a show ens33|grep ".*/64 scope global noprefixroute dynamic"|awk \'{print $2}\'|awk -F \'/\' \'{print $1}\'


输入nslookup命令解析使用的DNS服务器。这里留空,直接回车!之后,会自动开始DDNS(测试)运行过程:

出现最后的 DDNS记录更新成功 提示,即为DDNS记录同步成功,稍后等待DNS解析生效,即可完成DDNS域名更换!

5.设置AliDDNS脚本Crontab定时任务(每五分钟执行一次)

echo "*/5 * * * * /usr/sbin/AliDDNS-v2.0.sh run >/dev/null 2>&1 &" >> /etc/crontab

6.这样DDNS就设置完了,以后就可以通过域名访问家庭web服务器或者NAS、智能家居、路由器了。