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

利用DNSPod实现动态域名解析DDNS (解析内网、外网或IPV6地址)更新记录2020-01-03-修复了12月31日由于dnspodAPI改动导致的失效。2019-05-24-支持IPV6(如你所料,之前所说的支持是假的)-根据网站的更新,api调用使用TLSv1.2,解决了之前调用失败的问题(感谢@lth410指出)。——————————-以下正文—————–…

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

更新记录

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实现动态域名解析

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

登陆dnspod控制台https://console.dnspod.cn/dns/list,创建一条A记录解析,IP值暂时随便填就行:

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

在 dnspod 的管理界面https://console.dnspod.cn/account/token#  创建API Token 

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

创建成功后获得ID和Token,

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

利用这两个信息,就可以通过API修改域名解析值了,详见API文档:https://www.dnspod.cn/docs/info.html#d

下载ArDNSPod客户端

ArDNSPod是利用DNSPod实现动态解析的项目,github地址:ArDNSPod  https://github.com/anrip/ArDNSPod

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

https://github.com/imki911/ArDNSPod     
(复制到浏览器打开,避免被csdn劫持)

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

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

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

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

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

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

IPV6解析

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

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

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

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

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

ip addr show dev eth0 | sed -e's/^.*inet6 \([^ ]*\)\/.*$/\1/;t;d'

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

自动更新解析

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Python爬虫必备技能,使用 动态代理ip 爬取 Youtube游戏模块主页 示例,不翻墙无版权

    Python爬虫必备技能,使用 动态代理ip 爬取 Youtube游戏模块主页 示例,不翻墙无版权动态ip相信大家肯定都听说过,或者已经使用过。使用动态ip有很多好处,比如保护你的网络免受外部攻击、屏蔽你的IP地址等。那本篇文章就来研究一下这个动态ip,对这方面不了解的小伙伴正好可以一起学习一下。

    2022年6月3日
    42
  • 大数据数仓建模

    大数据数仓建模        大数据项目之电商数仓(用户行为数据采集)数据仓库简介      1.什么是数据库?    数据库(database)是按照数据结构来组织,存储和管理数据的建立在计算机存储设备上的仓库。    数据库是长期存储在计算机内,有组织的,可共享的数据集合。数据库中的数据指的是以一定的数据模型组织,描述和存储在一起,具有尽可能小的冗余度,较高的数据独立性和易扩展性的特点并可在一定范围内为多个用户共享。    常用的数据库有mysql,oracle,sqlserver等。作用不一样,数据库是

    2022年5月7日
    51
  • awk教程「建议收藏」

    awk教程「建议收藏」AWK介绍 0.awk有3个不同版本:awk、nawk和gawk,未作特别说明,一般指gawk。 1.awk语言的最基本功能是在文件或字符串中基于指定规则来分解抽取信息,也可以基于指定的规则来输出数据。完整的awk脚本通常用来格式化文本文件中的信息。 2.三种方式调用awk 1)awk[opion]’awk_script’input_file1[input_file

    2022年7月11日
    15
  • gridview样式模板_css列表样式

    gridview样式模板_css列表样式在标签中加入一个样式表,并定义它.                   .GridViewStyle              {                     border-right:2pxsolid#A7A6AA;                   border-bottom:2pxsolid#A7A6AA;             

    2025年12月10日
    4
  • 电路交换和分组交换的异同_电路交换的三个过程

    电路交换和分组交换的异同_电路交换的三个过程从交换技术的发展历史看,数据交换经历了电路交换、报文交换、分组交换和综合业务数字交换的发展过程。  电路交换  电路交换就是计算机终端之间通信时,一方发起呼叫,独占一条物理线路。当交换机完成接续,对方收到发起端的信号,双方即可进行通信。在整个通信过程中双

    2025年12月9日
    5
  • spring SchedulerFactoryBean 没有创建 Scheduler的实现类bea

    spring SchedulerFactoryBean 没有创建 Scheduler的实现类bea2019独角兽企业重金招聘Python工程师标准>>>…

    2022年5月23日
    29

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号