DDNS-GO 动态域名解析

news/2025/2/27 10:18:40

什么是 DDNS

DNS(域名系统) 是互联网的电话簿,将易于记忆的域名(如 www.example.com)转换为计算机可以理解的 IP 地址(如 192.0.2.1)。这使得用户无需记住复杂的数字地址即可访问网站。

DDNS(动态域名服务,Dynamic DNS) 是对传统 DNS 的扩展,旨在解决 IP 地址频繁变化的问题。在某些网络环境中,设备的公网 IP 地址可能会动态变化,导致固定的域名无法始终指向正确的 IP 地址。DDNS 通过自动更新域名与 IP 地址的映射关系,确保即使 IP 地址发生变化,用户仍然可以通过固定的域名访问设备或服务。

DNS 和 DDNS 的主要区别

  • IP 地址类型:DNS 主要用于处理静态 IP 地址,即 IP 地址不会频繁变化的情况。而 DDNS 适用于动态 IP 地址,即 IP 地址可能会频繁变化的情况。

  • 更新机制:DNS 的记录通常是静态的,需要手动更新。而 DDNS 能够自动检测 IP 地址的变化,并实时更新域名解析记录。

  • 应用场景:DNS 适用于服务器等固定 IP 地址的设备。而 DDNS 适用于家庭网络、移动设备等 IP 地址可能变化的环境。

DDNS-GO 的安装

DDNS-GO 是一项开源软件,在 github 上地址为 https://github.com/jeessy2/ddns-go 。下载对应的发布版本,本教程以 Linux 系统(Ubuntu)为例。

安装 ddns-go

首先解压程序

tar -xzvf filename.tar.gz

执行安装程序

sudo ./ddns-go -s install

配置与启动

启动 ddns-go

./ddns-go

ddns-go 提供了一个 webui 来进行图形化操作,要访问 ddns-go 的 web 界面,地址在 http://localhost:9876。在浏览器中访问该地址即可进行配置。

[!TIP]

如果目标机器不在局域网内且没有公网没那么方便直接访问没有穿透的端口,假设之前已经设置过 ssh 端口的内网穿透,可以通过 ssh 隧道进行连接:

ssh -L 8080:localhost:9876 <username>@<remote-machine> -p <port>
# 将远程主机的目标端口绑定到本地端口上,也就是接下来浏览器访问地址为 http://localhost:8080

这样远程主机的 localhost:9876 就被转发到自己主机的 localhost:8080 了,对于远程主机的其他目标也适用。

设置动态域名解析

以阿里云为例,需要在阿里云创建一个 AccessKey 来提供用户的操作权限,并设置一个名下的域名,程序就会根据域名的变化来与域名供应商进行比对并更新。

点击保存即可完成设置。

DDNS-GO 的其他设置

守护进程

如果需要设置开机自启动,在 Linux 中可以直接设置守护进程来控制程序的是否自启动和状态,在 /etc/systemd/system 中创建并设置 ddns_go.service

[Unit]
Description=DDNS-GO Service
After=network.target

[Service]
ExecStart=/path/to/ddns-go
Restart=always
User=your_username
Group=your_group

[Install]
WantedBy=multi-user.target

然后重新加载 systemd 设置并重新启动

sudo systemctl daemon-reload
sudo systemctl enable ddns-go.service
sudo systemctl start ddns-go.service

更新时间

动态域名服务(DDNS) 中,TTL(生存时间) 是指 DNS 记录在缓存中保存的时间长度,单位通常为秒。

TTL 值的设置需要在 更新频率服务器负载 之间找到平衡。

较长的 TTL 值(如 1 小时)可以减少 DNS 查询次数,降低服务器负载,但可能导致 IP 地址变化后,全球范围内的 DNS 缓存需要更长时间才能更新,影响访问的及时性。

相反,较短的 TTL 值可以使 DNS 记录更快地传播更新,但会增加对 DNS 服务器的查询频率,可能导致服务器负载增加。


http://www.niftyadmin.cn/n/5869940.html

相关文章

centos设置 sh脚本开机自启动

1. start.sh脚本 #!/bin/bash# 依赖docker&#xff0c;等待xxx容器完全启动 sleep 60curl -X POST "localhost:8381/models?urlmymodel.mar&model_namemymodel&batch_size1&max_batch_delay10&initial_workers1"sudo /usr/local/nginx/sbin/nginx …

大白话React 虚拟 DOM,好处在哪里?跟vue有什区别

大白话React 虚拟 DOM&#xff0c;好处在哪里&#xff1f;跟vue有什区别 React虚拟DOM 概念&#xff1a;可以把虚拟DOM想象成是对真实DOM的一种“虚拟描述”&#xff0c;就好像是真实DOM在电脑里的一个“替身”。它其实就是用JavaScript对象来表示DOM节点和它们之间的关系。比…

redission的原理

分布式锁的实现 Redisson 最出名的功能之一是分布式锁&#xff08;RLock&#xff09;。它的锁机制基于 Redis 的原子性操作&#xff1a; 使用 SET NX&#xff08;SET if Not eXists&#xff09;命令尝试获取锁&#xff0c;并设置一个过期时间&#xff08;防止死锁&#xff09;…

组件传递props校验

注意&#xff1a;prop是只读的&#xff01;不可以修改父组件的数据。 可以检验传过来的内容是否类型没问题。 App.vue <template><div><!-- <parentDemo/> --><componentA/></div></template> <script> import ComponentA …

港科大提出开放全曲音乐生成基础模型YuE:可将歌词转换成完整歌曲

YuE是港科大提出的一个开源的音乐生成基础模型&#xff0c;专为音乐生成而设计&#xff0c;专门用于将歌词转换成完整的歌曲&#xff08;lyrics2song&#xff09;。它可以生成一首完整的歌曲&#xff0c;时长几分钟&#xff0c;包括朗朗上口的声乐曲目和伴奏曲目。YuE 能够模拟…

【Java项目】基于Spring Boot的旅游管理系统

【Java项目】基于Spring Boot的旅游管理系统 技术简介&#xff1a;采用Java技术、Spring Boot框架、MySQL数据库等实现。 系统简介&#xff1a;旅游管理系统是一个基于Web的在线平台&#xff0c;主要分为前台和后台两大功能模块。前台功能模块包括&#xff08;1&#xff09;首…

35. Spring Boot 2.1.3.RELEASE 应用监控【监控信息可视化】

在 Spring Boot 2.1.3.RELEASE 中实现监控信息可视化可以通过多种方式&#xff0c;下面为你详细介绍使用 Spring Boot Actuator 结合 Grafana 和 Prometheus 以及使用 Spring Boot Admin 这两种常见方法。 方法一&#xff1a;Spring Boot Actuator Grafana Prometheus 1. 添…

TCP/IP 5层协议簇:数据链路层(交换机工作原理)

目录 1. 数据链路层 2. 帧 3. 工作在数据链路层的设备 4. 交换机工作原理 1. 数据链路层 数据链路层&#xff08;2层Data Link Layer&#xff09;&#xff1a;传输单元是帧、这层工作的主要设备二层交换机、网卡 2. 帧 帧的结构如下&#xff1a;帧最大1518字节 如下&…