利用DNSPod实现动态域名解析DDNS (解析内网、外网或IPV6地址)

大家好,又见面了,我是你们的朋友全栈君。

更新记录

2020-01-03 – 修复了12月31日由于 dnspod API 改动导致的失效。

2019-05-24

– 支持IPV6(如你所料,之前所说的支持是假的) – 根据网站的更新,api调用使用TLS v1.2,解决了之前调用失败的问题(感谢@lth410 指出)。

——————————-以下正文———————————————

DDNS是什么

对于DHCP方式获得的IP,无论对于局域网内来说,还是外网来说,都会有使得IP地址每隔一段时间变化一次,如果想要通过恒定不变的地址访问主机,就需要动态域名解析。用一句话说明原理是:把动态变化的IP地址绑定到固定不变的域名上,这样便是以不变应万变,只要记住域名就可以了。

应用场景举例:

1. 在公司局域网内,小明在自己的电脑上建立了一个FTP服务器用来共享文件。但他使用普通的上网账号上网,主机接入局域网后需要认证账号,随机分配IP地址。每次断线之后都会使得IP地址发生变化,这样一来,小明需要时刻记录下当前的IP地址,才能通过该地址访问到FTP服务器。做动态域名解析后,主机IP绑定到小明自己的域名,一旦IP地址发生变化,更新域名解析内容,他依旧可以通过域名访问到FTP服务器。

2. 阿杰办理了电信宽带后幸运地发现,获得的IP可以从外网直接访问(之所以说他幸运,是因为现在IPV4资源紧张,宽带运营商都是做了一层NAT再后在给用户分配内网IP,很多人实际公用一个出口IP. )。阿杰于是在自己的主机上搭了一个IP摄像头,这样无论在何地都可以通过网络查看家里的情况。IP虽然是公网IP,但却是动态分配的(公网静态IP要10万块钱一年),每断开一次就会变化一次。因此他可以选择动态域名解析。

DDNS可以解决什么? 答:可以把变化的IP自动动态地映射到域名上,通过不变的域名访问变化IP的主机;

DDNS不能解决什么?答:本身不能实现端口映射,因此如果主机在NAT网络内部,而你又没有权限在路由器上设置端口映射,那么DDNS就无解了,需要做反向代理或者端口穿透。

根据能力和预算有不同的做法:

不差钱可以直接去花生壳购买动态域名服务,随便还能提供内网穿透的功能;

自己折腾可以使用DNSPod + 个人域名 + ArDNSPod脚本.

首先需要注册一个域名,去腾讯云注册最为方便,因为DNSPod 2015年被腾讯收购后和腾讯云的账号打通了。

创建成功后获得ID和Token,

下载ArDNSPod客户端

笔者重新作了一些修改,可以选择要解析的IP类型,包括外网,内网,IPv6,见

将之前得到的ID和token写入dns.conf 文件, 并指定要绑定的子域名↓

运行ddnspod.sh,就可以获得IP地址,更新域名的解析值了(这里选择的是解析LAN 地址)。

到域名控制台查看,已经更新了记录值. 现在就可以通过域名ddns1.imki.club 访问主机了。

IPV6解析

1. 在网页管理界面中新建一条解析ipv6的AAAA记录,可以先随便乱填一个地址。

2. 在ddnspod.sh 开头,IPtype值改为3,切换到 IPv6 解析。

3. 运行ifconfig,查看具有IPv6地址的网卡设备名,例如eth0等

4. ddnspod.sh 69行,将 eth0 替换成本机的网卡设备名。确保单独运行该命令可以返回ipv6地址

5. 配置dns.conf文件,运行ddnspod.sh即可更新解析值。

DDNS的第一个D含义在于动态,即IP地址变化之后自动更新域名记录值,这可以通过把脚本设置为定时任务cron来实现。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/132609.html原文链接:https://javaforall.cn

原文链接:https://cloud.tencent.com/developer/article/2071744?areaSource=102001.14&traceId=D4TM7Qi19maAQgjUssU8B

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享