在这篇教程中,我们将一步步指导你如何使用 Docker 部署 ddns-go
,一个简单而强大的动态 DNS (DDNS) 客户端。ddns-go
允许你将公网 IP 自动更新到指定的域名,非常适合动态 IP 环境中使用。我们会详细讲解从 Docker 安装到 ddns-go 配置的完整流程。
安装 Docker
首先,我们需要在 Ubuntu 系统上安装 Docker。通过官方提供的安装脚本,可以非常简单地完成这一操作。
-
打开终端并运行以下命令,下载并执行 Docker 官方安装脚本:
curl -fsSL https://get.docker.com -o get-docker.sh sudo sh ./get-docker.sh
-
安装完成后,验证 Docker 是否正确安装:
docker --version
如果输出 Docker 的版本信息,说明安装成功。
创建并构建 ddns-go
服务
接下来,我们将在当前用户的家目录下创建一个 ddns-go
文件夹,并在其中配置 docker-compose.yml
文件,以便通过 Docker Compose 启动 ddns-go
服务。
-
创建工作目录:
mkdir -p ~/ddns-go cd ~/ddns-go
-
在该目录下创建
docker-compose.yml
文件,内容如下:version: '3' services: ddns-go: image: jeessy/ddns-go # 使用 ddns-go Docker 镜像 container_name: ddns-go # 容器名称 restart: always # 容器重启策略:总是重启 ports: - '9876:9876' # 映射端口 volumes: - ./volume:/root # 挂载本地目录到容器内,持久化存储 ddns 配置
image: jeessy/ddns-go
:使用官方提供的ddns-go
Docker 镜像。restart: always
:容器在崩溃或重启后会自动重启。ports: 9876:9876
:将主机的 9876 端口映射到容器的 9876 端口,便于我们访问ddns-go
的 Web 界面。volumes: ./volume:/root
:挂载本地目录volume
到容器内的/root
目录,确保容器中的数据能够持久化。
-
创建
volume
文件夹,用于存放持久化配置和数据:mkdir volume
-
启动
ddns-go
服务:sudo docker-compose up -d
使用
-d
参数让容器在后台运行。运行完成后,你可以使用以下命令查看容器的运行状态:sudo docker ps
如果看到名为
ddns-go
的容器正在运行,说明部署成功。
购买并使用华为云域名
首先,你需要一个支持动态 DNS 的域名服务商,在本文中我们将以华为云为例进行演示。
- 登录华为云官网,创建一个账户并购买一个域名。
- 进入控制台,点击右上角的 我的凭证,获取 Access Key ID 和 Secret Access Key,这两个密钥用于与华为云的 API 进行交互。
配置 ddns-go
ddns-go
将会定期检测你的公网 IP 是否发生变化。如果 IP 发生变化,ddns-go
会自动更新你的域名解析记录,使得你的域名始终指向正确的 IP 地址。
- 访问
ddns-go
Web 界面。由于我们在 Docker Compose 配置中将端口9876
映射到了主机上,因此可以通过浏览器访问http://<你的服务器 IP>:9876
来进入ddns-go
的管理界面。 - 进入 Web 界面后,点击 配置,选择 华为云 DNS 作为 DNS 服务商,输入你在华为云控制台获取的 Access Key ID 和 Secret Access Key。
- 在 域名 部分,填写你在华为云购买的域名,并启用 IPv4。如果你打算使用 IPv6,也可以选择配置 IPv6。
- 配置完成后,你可以选择启用 Webhook(可选)。Webhook 允许在 IP 更新时触发外部服务的通知。
- 保存配置并测试。可以通过 Ping 测试 来验证域名是否已正确指向当前的公网 IP。
你可以通过 ddns-go
的 Web 界面或者日志来监控服务的运行状态,确保它正常工作。
测试与验证
通过访问你的域名,检查是否可以正确解析到你的公网 IP。同时,可以使用 ping
或 nslookup
命令检查 DNS 解析是否及时更新。
ping <你的域名>
如果一切配置正确,应该可以看到通过域名访问时解析到的 IP 地址与你当前的公网 IP 相匹配。
总结
通过以上步骤,你已经成功使用 Docker 在 Ubuntu 上部署了 ddns-go
,并通过华为云的 DNS 服务完成了动态 DNS 的配置。ddns-go
会自动监控并更新你购买的域名的解析记录,使其始终指向当前的公网 IP。通过这种方式,你无需手动更改 DNS 配置,确保在动态 IP 环境下,域名始终可用。
如果你有其他 DNS 服务商的需求,ddns-go
支持多种 DNS 服务,配置方法大同小异,你只需选择合适的服务商并提供相应的 API 密钥即可。