1. 什么是DDNS?
动态 DNS(DDNS)是一项在 IP 地址发生变化时可以自动更新 DNS 记录的服务。
域名将网络 IP 地址转换为人类可读的名称,便于识别和使用。将名称映射到 IP 地址的信息以表格形式记录在 DNS 服务器上。
在互联网服务供应商(ISP)提供动态IP地址(即每次连接到互联网时分配不同IP地址)的情况下,每当 IP 地址发生变化时,DDNS 服务都会更新 DNS 服务器记录。借助 DDNS,域名管理变得更容易、更高效。
DDNS的优点:
- 简化访问:即使IP地址经常改变,也可以通过固定的域名轻松访问我们的网络或设备。
- 节省成本:DDNS是维持稳定网络通信的经济有效的方法,这避免了需要为静态IP地址付费的必要性。
参考文档:
2. DNS 和 DDNS 之间有什么区别?
DNS 服务是一种全球分布式服务,可将人类可读的名称转换为数字 IP 地址。DNS 服务器将域名请求转换为 IP 地址。这些地址控制最终用户在 Web 浏览器中键入域名时将访问哪个服务器。
动态 DNS(DDNS)是 DNS 的扩展,可自动实时更新与域名关联的 IP 地址。它扩展 DNS 的功能。借助 DDNS,即使在动态 IP 地址环境中,组织和个人也可以保持连接和可访问性。
DNS 得到所有 DNS 服务商的普遍支持,在全球范围内用于将域名解析为 IP 地址。
而 DDNS 要求 DNS 服务商支持 DDNS,并且要求用户配置 DDNS 客户端,与 DDNS 服务商合作完成 DDNS 功能。
3. DDNS的工作原理
当我们本地网络的IP地址发生变化时,DDNS客户端会获取到本地网络的最新IP,请求DNS服务商的API,修改DNS记录,更新域名记录以反映新的IP地址。
因此,即使我们本地网络的IP地址在不断变化,我们也可以使用固定的域名来访问我们的网络或设备。
4. 如何使用DDNS?
使用DDNS服务的一般步骤如下:
1、申请域名:在域名服务商平台申请一个域名,比如GoDaddy、DNSPod、阿里云等。
2、选择DNS服务商:很多DNS服务商支持DDNS服务,比如DNSPod、阿里云、Cloudflare等。
3、DNS服务商平台配置:在DNS服务商平台上添加域名,并配置 DNS 解析
4、配置DDNS客户端:许多网络设备(如路由器、摄像头、NAS设备等)都支持DDNS服务,直接配置即可;在原本不支持DDNS服务的设备上,我们可以自行安装配置DDNS客户端软件。
5、配置端口映射:公网IP通常是分配给路由器的,如果想要直接访问到内网主机上服务,需要在路由器上配置一个端口映射。
5. DDNS客户端
DDNS客户端有很多,这里推荐一个ddns-go,使用简单,功能齐全:
- 支持Mac、Windows、Linux系统,支持ARM、x86架构
- 支持主流域名服务商
- 支持接口/网卡/命令获取IP
- 支持同时配置多个DNS服务商
- 支持多个域名同时解析
- 支持多级域名
- 支持WebUI配置
6. Linux安装配置DDNS
参考文档:绿联 NAS 域名直连 DDNS-Go+IPv6 内网穿透并开启 HTTPS
1、安装ddns-go
1 | docker run -d --name ddns-go --restart=always --net=host -v /opt/ddns-go:/root jeessy/ddns-go |
2、浏览器访问ddns-go管理页面
假设内网地址为 192.168.56.101,那么URL为 http://192.168.56.101:9876
3、配置ddns-go
(1)在DNS服务商平台获取token,填入token
(2)取消勾选ipv4;勾选ipv6,填入计划分配的域名 x.voidking.com
(3)填入webhook,以便ipv6变更时通知(可选)
(4)保存,保存后会自动在DNS服务商平台添加一条解析
要在5分钟内完成配置,否则就需要重启ddns-go
4、主机上ping域名
1 | ping x.voidking.com |
如果可以正常ping通,说明配置没问题。
5、网关配置
检查并修改网关(路由器)防火墙配置,普通路由器将防火墙等级调到低,使得外网可以访问到局域网主机。
不过,防火墙等级调低会带来一定的安全风险,最好是能配置防火墙规则(很多路由器不支持)。
6、外网ping域名
1 | ping x.voidking.com |
如果可以正常ping通,就证明配置成功,可以通过域名访问内网主机了。
7. 后记
使用DDNS的优点是可以充分利用带宽,因为是直连。
某些情况下无法使用DDNS(比如路由器不支持端口映射),那么退而求其次的方法是使用内网穿透技术,可以参考文档《使用frp进行内网穿透》