侧边栏壁纸
  • 累计撰写 37 篇文章
  • 累计创建 17 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

DDNS-GO搭建

Joe
Joe
2026-06-02 / 0 评论 / 0 点赞 / 17 阅读 / 0 字

前言

有一台HKBN的nat机器,动态ipv4+静态ipv6,机器的配置也比较低1c521内存5G硬盘,由于ipv4经常变动,使用ddns服务可以自动获得你的公网 IPv4 或 IPv6 地址,并解析到对应的域名服务,此时我们就可以用一个域名来代替这个ip了,ip再怎么变动都不会影响,同时添加TG消息提醒ip变动。

DDNS-GO项目地址:https://github.com/jeessy2/ddns-go

DDNS-GO通知TG项目地址:https://github.com/WingLim/ddns-telegram-bot

前期准备

一个域名并托管好。我用的是cloudflare,所以本次也是使用cloudflare作为演示。

获取域名API

在域名首页往下拉找到该域名的API

img

创建令牌

img

点击这项

img

选择域名

img

然后点击继续直至创建令牌

img

注意!!!

此令牌只展示一次,所以需要自行先保存至别处,下次就无法再显示。如果忘记,只能重新创建令牌!

域名解析

在域名的DNS出进行解析,这个域名就是用来代替本机动态IPV4的,所以小黄云一定要关闭!!!

假设本次域名是a.bb.cc

img

根据自己的情况填写并保存。


再解析多一个给一会反代DDNS-GO的面板用。这台机器有一个静态ipv6,那么就可以用ipv6。

假设本次域名是d.bb.cc

img

自己填写名称和ipv6。

DDNS-GO安装

项目官方有Docker和下载二进制文件的安装方式,由于这台机器配置比较低,所以本次采取下载二进制文件的安装方式,也可以自行查看项目文档采用Docker的安装方式。

演示系统:Debian13

下载并解压

创建并进入目录

mkdir -p /opt/ddns-go && cd /opt/ddns-go

下载DDNS-GO

先确认 CPU 架构(例如本次的机器就是 x86_64/amd64)

Releases下载自己CPU架构的文件,例如我的是ddns-go_6.13.3_linux_x86_64.tar.gz。

wget https://github.com/jeessy2/ddns-go/releases/download/v6.13.3/ddns-go_6.13.3_linux_x86_64.tar.gz

解压

tar -zxvf ddns-go_6.13.3_linux_x86_64.tar.gz

解压后有需求的话可以把ddns-go_6.13.3_linux_x86_64.tar.gz压缩包给删除了,接下来已经用不到。

安装服务

防火墙放行端口

如果开启了防火墙(如 nftablesufw),需要放行默认端口 9876。如果没有开启防火墙,忽略即可。如果使用反代的话,同样忽略即可。

如果使用的是ufw

ufw allow 9876

赋予权限

chmod +x ddns-go

安装

ddns-go自带服务安装功能,非常方便,它会自动配置 systemd 实现开机自启。

这一步会自动注册 systemd 服务

sudo ./ddns-go -s install

提示安装成功:Installed ddns-go service successfully! Please open the browser and configure it

启动服务

systemctl start ddns-go

此时正常就可以使用http://IP:9876打开后台了。

但是,官方建议:

建议在启用公网访问时,使用 Nginx 等反向代理软件启用 HTTPS 访问,以保证安全性。

所以我们还需要反代启用HTTPS访问,增加安全性。

而且,像我本次的情况:

  • 这机器没有公网ipv4,是nat v4,且只有一个ipv6,此时我本地没有ipv6

  • 服务商nat v4端口也没有给我9876端口,也无法9876映射到别的端口

所以此时我是无法登录DDNS-GO的后台的。

这种情况,反代便可同时解决以上的问题。

其它命令

停止

systemctl stop ddns-go

重启

systemctl restart ddns-go

反代

Ningx、Caddy、Nginx Proxy Manager都可以。

此处为了操作简单且通俗易懂,使用Caddy进行反代。

安装Caddy

返回

cd

Caddy官网安装教程:点击打开,找到自己对应系统的安装方式,如Debian, Ubuntu, Raspbian适用的:

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
chmod o+r /usr/share/keyrings/caddy-stable-archive-keyring.gpg
chmod o+r /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy

等待安装完成,在浏览器输入你的ip,会显示:

b09176c38f975c63448b54e03c888133.jpeg

到此Caddy安装成功。

配置Caddy

域名 {
    reverse_proxy localhost:9876
}

域名修改成刚才解析ipv6的AAAA类型的完整域名,也就是上面的假设的d.bb.cc,自己是什么域名,改成自己的就好。

打开Caddy的配置文件:

nano /etc/caddy/Caddyfile

把修改好的配置信息粘贴到最后去,然后Ctrl+x确认保存并退出。

重启Caddy:

systemctl reload caddy

此时,直接在浏览器输入你的域名即可。

面板设置

配备管理员账号

img

根据字面意思提示输入用户名和密码,第一次进入会把该用户默认设置为管理员。

第一次配置时,需要在5分钟内日配置完成,超时的话无法保存,此时可以重启DDNS-GO服务或者从内网尝试配置,一般重启重启DDNS-GO服务即可。

重启

systemctl restart ddns-go

配置面板

有3个地方需要设置

img

  • 选择对应的DNS服务商,本次使用的Cloudflare,选择Cloudflare

  • 在Token处填入一开始获取的域名API令牌

  • 在对应的IPV4或者IPV6处填写刚才不开小黄云的域名,也就是上面的假设的a.bb.cc

填写后保存即可,保存后会自动执行DDNS-GO服务,此时面板会有对应的提示

再返回Cloudflare可以看到,此时刚才的域名已经换成了本机的IPV4地址

img

TG通知

官方有多种通知方式,可以在IP变动是获得通知,此处以TG示例,下图是现有的通知方式:

img


DDNS-GO通知TG项目地址:https://github.com/WingLim/ddns-telegram-bot

获取Webhook URL

TG上先关注机器人:@DDNSGoBot

  1. 打开并启用 @DDNSGoBot

  2. 发送 /gethook 命令,此时会获得Webhook URL

img

获取RequestBody

TG项目已经提供了RequestBody信息,按需使用对应的就可以

{
    "ipv4": {
        "result": "#{ipv4Result}",
        "addr": "#{ipv4Addr}",
        "domains": "#{ipv4Domains}"
    },
    "ipv6": {
        "result": "#{ipv6Result}",
        "addr": "#{ipv6Addr}",
        "domains": "#{ipv6Domains}"
    }
}

例如本次是ipv4的,那么RequestBody就是

{
    "ipv4": {
        "result": "#{ipv4Result}",
        "addr": "#{ipv4Addr}",
        "domains": "#{ipv4Domains}"
    }
}

填写Webhook URL和RequestBody

在DDNS-GO面板的Webhook处把刚才的Webhook URL和RequestBody填到对应的地方

img

点击模拟测试Webhook按钮测试

img

提示此消息即大功告成!

0

评论区