更新记录
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 的管理界面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 文件, 并指定要绑定的子域名↓
运行 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 地址
ip addr show dev eth0 | sed -e's/^.*inet6 \([^]*\)\/.*$/\1/;t;d'
5. 配置 dns.conf 文件 , 运行 ddnspod.sh 即可更新解析值。
自动更新解析
DDNS 的第一个 D 含义在于动态 , 即 IP 地址变化之后自动更新域名记录值 , 这可以通过把脚本设置为定时任务 cron 来实现。
原文链接:https://blog.csdn.net/Imkiimki/article/details/83794355?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168476299816800180624703%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=168476299816800180624703&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-15-83794355-null-null.blog_rank_default&utm_term=NAS%E3%80%81%E7%BE%A4%E6%99%96%E3%80%81%E9%98%BF%E9%87%8C%E4%BA%91%E3%80%81%E5%9F%9F%E5%90%8D%E8%A7%A3%E6%9E%90%E3%80%81%E5%86%85%E7%BD%91%E7%A9%BF%E9%80%8F%E3%80%81ipv6%E3%80%81ddns%E3%80%81%E8%BD%BB%E9%87%8F%E7%BA%A7%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%99%A8%E3%80%81%E9%93%81%E5%A8%81%E9%A9%AC%E3%80%81%E5%A8%81%E8%81%94%E9%80%9A%E3%80%81DSM%E3%80%81DSM6.0%E3%80%81%E7%BE%A4%E6%99%96nas%E3%80%81%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%99%A8%E3%80%81%E8%9C%97%E7%89%9B%E6%98%9F%E9%99%85%E3%80%81%E9%BB%91%E7%BE%A4%E6%99%96%E3%80%81docker%E3%80%81%E5%AE%B9%E5%99%A8%E9%95%9C%E5%83%8F%E3%80%81%E5%9F%9F%E5%90%8D%E6%B3%A8%E5%86%8C%E3%80%81%E5%AE%9D%E5%A1%94%E3%80%81%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86%E3%80%81nginx%E3%80%81frp%E3%80%81%E5%8A%A8%E6%80%81%E5%9F%9F%E5%90%8D%E8%A7%A3%E6%9E%90
原文链接:https://www.mlooy.com/10070.html