搭建内网服务器时,因为运营商分配的公网 ip 地址是动态的。在一段时间后或者重启路光猫后,会导致公网 ip 变化,此时阿里云设置 DNS 将失效。因此需要进行动态域名解析 DDNS 。
DDNS 是什么
对于 DHCP 方式获得的 IP,无论对于局域网内来说,还是外网来说,都会有使得 IP 地址每隔一段时间变化一次,如果想要通过恒定不变的地址访问主机,就需要动态域名解析。用一句话说明原理是:把动态变化的 IP 地址绑定到固定不变的域名上,这样便是以不变应万变,只要记住域名就可以了。
怎么做?
根据能力和预算有不同的做法:
不差钱可以直接去花生壳购买动态域名服务,随便还能提供内网穿透的功能;
自己折腾可以使用 DNSPod + 个人域名 + ArDNSPod 脚本.
利用 DNSPod 实现动态域名解析
首先需要注册一个域名,去腾讯云注册最为方便,因为 DNSPod 2015 年被腾讯收购后和腾讯云的账号打通了。
登陆 dnspod 控制台 https://console.dnspod.cn/dns/list,创建一条 A 记录解析,IP 值暂时随便填就行:

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

- 创建成功后获得 ID 和 Token

利用这两个信息,就可以通过 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 文件, 并指定要绑定的子域名↓

到域名控制台查看,已经更新了记录值. 现在就可以通过域名 ddns1.cxaa.com 访问主机了。
IPV6 解析
1. 在网页管理界面中新建一条解析 ipv6 的 AAAA 记录,可以先随便乱填一个地址。

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 来实现。

评论 (0)