【Docker】DDNS-GO:动态域名解析

在这篇教程中,我们将一步步指导你如何使用 Docker 部署 ddns-go,一个简单而强大的动态 DNS (DDNS) 客户端。ddns-go 允许你将公网 IP 自动更新到指定的域名,非常适合动态 IP 环境中使用。我们会详细讲解从 Docker 安装到 ddns-go 配置的完整流程。

安装 Docker

首先,我们需要在 Ubuntu 系统上安装 Docker。通过官方提供的安装脚本,可以非常简单地完成这一操作。

  1. 打开终端并运行以下命令,下载并执行 Docker 官方安装脚本:

    curl -fsSL https://get.docker.com -o get-docker.sh
    sudo sh ./get-docker.sh
    
  2. 安装完成后,验证 Docker 是否正确安装:

    docker --version
    

    如果输出 Docker 的版本信息,说明安装成功。

创建并构建 ddns-go 服务

接下来,我们将在当前用户的家目录下创建一个 ddns-go 文件夹,并在其中配置 docker-compose.yml 文件,以便通过 Docker Compose 启动 ddns-go 服务。

  1. 创建工作目录:

    mkdir -p ~/ddns-go
    cd ~/ddns-go
    
  2. 在该目录下创建 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 目录,确保容器中的数据能够持久化。
  3. 创建 volume 文件夹,用于存放持久化配置和数据:

    mkdir volume
    
  4. 启动 ddns-go 服务:

    sudo docker-compose up -d
    

    使用 -d 参数让容器在后台运行。运行完成后,你可以使用以下命令查看容器的运行状态:

    sudo docker ps
    

    如果看到名为 ddns-go 的容器正在运行,说明部署成功。

购买并使用华为云域名

首先,你需要一个支持动态 DNS 的域名服务商,在本文中我们将以华为云为例进行演示。

  1. 登录华为云官网,创建一个账户并购买一个域名。
  2. 进入控制台,点击右上角的 我的凭证,获取 Access Key IDSecret Access Key,这两个密钥用于与华为云的 API 进行交互。

配置 ddns-go

ddns-go 将会定期检测你的公网 IP 是否发生变化。如果 IP 发生变化,ddns-go 会自动更新你的域名解析记录,使得你的域名始终指向正确的 IP 地址。

  1. 访问 ddns-go Web 界面。由于我们在 Docker Compose 配置中将端口 9876 映射到了主机上,因此可以通过浏览器访问 http://<你的服务器 IP>:9876 来进入 ddns-go 的管理界面。
  2. 进入 Web 界面后,点击 配置,选择 华为云 DNS 作为 DNS 服务商,输入你在华为云控制台获取的 Access Key IDSecret Access Key
  3. 域名 部分,填写你在华为云购买的域名,并启用 IPv4。如果你打算使用 IPv6,也可以选择配置 IPv6。
  4. 配置完成后,你可以选择启用 Webhook(可选)。Webhook 允许在 IP 更新时触发外部服务的通知。
  5. 保存配置并测试。可以通过 Ping 测试 来验证域名是否已正确指向当前的公网 IP。

你可以通过 ddns-go 的 Web 界面或者日志来监控服务的运行状态,确保它正常工作。

测试与验证

通过访问你的域名,检查是否可以正确解析到你的公网 IP。同时,可以使用 pingnslookup 命令检查 DNS 解析是否及时更新。

ping <你的域名>

如果一切配置正确,应该可以看到通过域名访问时解析到的 IP 地址与你当前的公网 IP 相匹配。

总结

通过以上步骤,你已经成功使用 Docker 在 Ubuntu 上部署了 ddns-go,并通过华为云的 DNS 服务完成了动态 DNS 的配置。ddns-go 会自动监控并更新你购买的域名的解析记录,使其始终指向当前的公网 IP。通过这种方式,你无需手动更改 DNS 配置,确保在动态 IP 环境下,域名始终可用。

如果你有其他 DNS 服务商的需求,ddns-go 支持多种 DNS 服务,配置方法大同小异,你只需选择合适的服务商并提供相应的 API 密钥即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值