在 Ubuntu 上安装并运行 ddns-go 教程

在 Ubuntu 上安装并运行 ddns-go 教程

什么是 ddns-go?

ddns-go 是一款开源的轻量级 DDNS(动态域名解析)客户端,支持多家 DNS 服务商(如阿里云、腾讯云、Cloudflare、Dnspod 等),适合在家用宽带、服务器等环境中自动更新 IP 地址。

本文将介绍如何在 Ubuntu 系统中快速部署并运行 ddns-go。


一、准备工作

系统要求:

  • Ubuntu 18.04 及以上版本
  • 可访问公网的网络
  • curl 或 wget 命令行工具
  • systemd(Ubuntu 默认已包含)

可选准备:

  • 提前在 DNS 服务商平台创建好域名和子域名解析记录

二、下载安装 ddns-go

你可以通过以下方式下载最新的 ddns-go 可执行文件。

使用 curl:

bash 复制代码
cd /usr/local/bin
sudo curl -L -o ddns-go https://github.com/jeessy2/ddns-go/releases/latest/download/ddns-go-linux-amd64
sudo chmod +x ddns-go

或使用 wget:

bash 复制代码
cd /usr/local/bin
sudo wget https://github.com/jeessy2/ddns-go/releases/latest/download/ddns-go-linux-amd64 -O ddns-go
sudo chmod +x ddns-go

三、首次运行

bash 复制代码
sudo ./ddns-go -s install

程序默认会监听 0.0.0.0:9876,即所有网卡地址,适合远程访问管理界面。

Web 管理页面地址为:

复制代码
http://<你的服务器IP>:9876

首次访问时会提示设置用户名和密码,作为 Web 登录凭据。


四、设置开机自启(使用 systemd)

创建 systemd 服务文件:

bash 复制代码
sudo nano /etc/systemd/system/ddns-go.service

写入以下内容:

ini 复制代码
[Unit]
Description=ddns-go Service
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/bin/ddns-go
Restart=on-failure

[Install]
WantedBy=multi-user.target

启动服务并设置为开机自启:

bash 复制代码
sudo systemctl daemon-reload
sudo systemctl enable ddns-go
sudo systemctl start ddns-go

查看状态:

bash 复制代码
sudo systemctl status ddns-go

五、开放端口(可选)

如果启用了防火墙(如 UFW),则需手动开放 9876 端口:

bash 复制代码
sudo ufw allow 9876

六、访问管理页面并配置

浏览器访问:

复制代码
http://<你的服务器IP>:9876
  1. 首次登录系统会引导你设置登录账号和密码
  2. 选择你使用的 DNS 服务商
  3. 填入 API 密钥和域名信息
  4. 保存配置即可开始使用

七、验证 DDNS 是否生效

使用以下命令确认域名 IP 已更新:

bash 复制代码
dig your-domain.com +short

常见问题解答

Q: 启动失败提示权限问题?

确认执行权限:

bash 复制代码
sudo chmod +x /usr/local/bin/ddns-go

Q: 如何更改监听端口?

在启动时添加 --port 参数,例如:

bash 复制代码
./ddns-go --port 8080

总结

通过本教程,你已在 Ubuntu 上成功部署并运行了 ddns-go,并启用了 Web 管理界面和 systemd 开机自启功能。ddns-go 是运行稳定、功能强大的 DDNS 客户端,推荐用于家庭宽带、自建服务器等场景。

相关推荐
森G1 分钟前
75、服务器源码解析---------云视频服务项目
linux·服务器·网络·c++·qt
阿米亚波3 分钟前
【Windows】QEMU 启动 openEuler aarch64/arm64 架构系统 + 离线软件源
linux·windows·经验分享·笔记·架构·arm
张飞飞飞飞飞7 分钟前
Tmux命令使用教程
linux·服务器·ubuntu
踏着七彩祥云的小丑15 分钟前
Go学习第9天:并发编程 + 文件操作 + 正则表达式
学习·golang·正则表达式·go
Fcy64825 分钟前
Linux下 可重入函数、volatile关键字和SIGCHLD信号
linux·可重入函数·volatile关键字·sigchld
qeen871 小时前
【Linux】Linux简单介绍与基本指令(上)
linux·运维·服务器·学习
JCGKS1 小时前
Go `init` 函数:包初始化顺序到底是怎样的
golang·init·init执行顺序
tianyuanwo2 小时前
深入解析 RISC-V 虚拟化中的 UEFI 固件配置:从 XML 到 NVRAM 的生命周期管理
xml·linux·risc-v
道川贤林2 小时前
OrangePi 系统启动优先级修改
linux·linux驱动·orangepi·u-boot
何以解忧,唯有..2 小时前
Go语言中的const:常量声明与iota枚举详解
java·开发语言·golang