代码拉取完成,页面将自动刷新
使用go
语言编写的腾讯云
域名解析管理脚本
Usage of ddns-go:
-c string
设置配置文件路径 (default "/opt/apps/com.liumou.ddns-tencent/ddns.toml")
-debug
显示程序运行详细日志信息
-list
显示域名列表
-sec int
下一次更新间隔时间(秒) (default 60)
-service
是否为服务模式,设置为true时会在系统启动时自动执行DNS更新
-show
显示程序简介
-u6 string
设置IPV6查询接口地址 (default "http://ipv6.liumou.site:22011/api")
-v 显示版本信息
环境变量优先级最高,当同时设置了环境变量和配置文件,优先级为环境变量 > 配置文件
环境变量名 | 说明 | 必选 | 默认值 | 参考值 |
---|---|---|---|---|
UrlIp6Api |
IPV6接口地址 | 可选 | https://ipv6.icanhazip.com |
备注: 接口返回数据格式必须和默认值的一致,备用: http://ipv6.liumou.site:22010/api |
TXY_KEY |
腾讯云密钥 | 必选 | - | 备注: 腾讯云密钥,如何获取请参考: https://cloud.tencent.com/document/product/302/7299 |
TXY_ID |
腾讯云ID | 必选 | - | 备注: 腾讯云ID,如何获取请参考: https://cloud.tencent.com/document/product/302/7299 |
TYPE |
IP类型 | 必选 | - | 备注: A(只更新IPV4),AAAA(只更新IPV6),ALL(双栈) |
DOMAIN |
域名 | 必选 | - | 备注: 域名,例如: liumou.site |
Remark |
备注 | 可选 | - | 备注: 备注信息 |
Sub |
子域名 | 必选 | - | 备注: 子域名,例如: ipv4,ipv6,ddns4,ddns6 |
Sub4 |
IPV4专属子域名 | 必选 | - | 备注: 子域名,例如: ipv4,ddns4 |
Sub6 |
IPV6专属子域名 | 必选 | - | 备注: 子域名,例如: ipv6,ddns6 |
sec |
下次更新间隔时间(秒) | 可选 | 60 | 备注: 默认60秒,可自行修改 |
debug |
显示程序运行详细日志信息 | 可选 | - | 备注: 默认开启,开启后,会显示程序运行详细日志信息 |
Delete |
是否先删除记录再重新添加 | 可选 | - | 备注: 默认为false,不删除,true为删除 |
配置文件优先级为: 环境变量 > 配置文件 > 默认值
默认使用: /opt/apps/com.liumou.ddns-tencent/ddns.toml
[domain]
# 设置域名,例如 liumou.site
Domain="liumou.site"
# 预设字段,留空即可
Sub=""
# 设置IPV4专属子域名,例如 ipv4
Sub4="ddns4"
# 设置IPV6专属子域名,例如 ipv6
Sub6="ddns6"
# 设置备注
Remark="模板"
# Type 设置IP类型
## ALL(双栈)
## A(只更新IPV4)
## AAAA(只更新IPV6)
Type="A"
[login]
# 设置Key
Key="Keys"
# 设置ID
Id="Ids"
[option]
# 设置是否删除
# true:删除
# false:不删除
Delete=false
镜像大小
root@tb4:/data/ddns# docker images | grep ddns
ccr.ccs.tencentyun.com/liumou/ddns latest 99fb42d31284 15 minutes ago 15.9MB
root@tb4:/data/ddns#
运行命令
docker run -tid --name ddns --net=host -e TXY_KEY=<Keys> \
-e TXY_ID=<Ids> -e DOMAIN=liumou.site -e TYPE=A -e Sub=ddns4 \
-e Sub4=ddns4 -e Sub6=ddns6 -e Remark="模板" ccr.ccs.tencentyun.com/liumou/ddns
docker run -tid --name ddns --net=host -v `pwd`/ddns.toml:/opt/apps/com.liumou.ddns-tencent/ddns.toml ccr.ccs.tencentyun.com/liumou/ddns
当需要更新IPV6的时候,必须使用
--net=host
网络模式,否则IPV6将无法获取宿主机的实际IP
必须在当前路径先创建
ddns.toml
文件
效果
root@tb4:/data/ddns# docker run -tid --name ddns --net=host -v `pwd`/ddns.toml:/opt/apps/com.liumou.ddns-tencent/ddns.toml ccr.ccs.tencentyun.com/liumou/ddns
b2e8aaacf58d98a02113034e6103e1ca8a1a2b76770882939c8f12aa697b7551
root@tb4:/data/ddns# docker logs -f ddns
https://liumou.site
[2025-04-23 11:10:35] [INFO] [ddns:57] ddns-go v3.2.4
[2025-04-23 11:10:35] [DEBG] [get:24] 正在获取域名解析列表
{1917368408 182.88.114.180 ENABLE 2025-04-21 19:51:09 www 默认 0 A 模板 600 0}
[2025-04-23 11:10:35] [DEBG] [IP:83] 正在获取ipv6地址
[2025-04-23 11:10:35] [DEBG] [IP:101] 通过正则匹配IPV6地址成功 2408:825c:8e1:99a9:6a1d:efff:fe35:59aa
[2025-04-23 11:10:35] [DEBG] [IP:35] 正在获取ipv4地址
[2025-04-23 11:10:37] [DEBG] [ipv4:133] 获取到本机公网IPv4地址: 182.88.114.45
[2025-04-23 11:10:37] [DEBG] [get:108] 记录已存在...
[2025-04-23 11:10:37] [DEBG] [get:127] 当前解析ID: 1917368408
[2025-04-23 11:10:37] [INFO] [start:45] IP: 182.88.114.45
[2025-04-23 11:10:37] [DEBG] [start:110] 检测到当前IPV4连接正常,正在更新解析
[2025-04-23 11:10:37] [DEBG] [start:118] 当前获取ID值: 1917368408
[2025-04-23 11:10:37] [DEBG] [start:135] 检测到当前记录存在,正在更新... ddns4
ddns4 -> 182.88.114.45
[2025-04-23 11:10:37] [INFO] [update:27] IP地址未发生变化,无需更新
[2025-04-23 11:10:37] [DEBG] [start:145] 检测到当前IPV6连接正常,正在更新解析
[2025-04-23 11:10:37] [DEBG] [start:153] 当前获取ID值: 1917368408
[2025-04-23 11:10:37] [DEBG] [start:170] 检测到当前记录存在,正在更新... ddns6
ddns6 -> 2408:825c:8e1:99a9:6a1d:efff:fe35:59aa
[2025-04-23 11:10:37] [INFO] [update:27] IP地址未发生变化,无需更新
[2025-04-23 11:10:37] [INFO] [ddns:71] 本次更新完成,正在等待下次更新,当前设置等待时间: 60 秒
效果
root@tb4:/data/ddns# echo '[domain]
# 设置域名,例如 liumou.site
Domain="liumou.site"
# 预设字段,留空即可
Sub=""
# 设置IPV4专属子域名,例如 ipv4
Sub4="ddns4"
# 设置IPV6专属子域名,例如 ipv6
Sub6="ddns6"
# 设置备注
Remark="模板"
# Type 设置IP类型
## ALL(双栈)
## A(只更新IPV4)
## AAAA(只更新IPV6)
Type="A"
[login]
# 设置Key
Key="Keys"
# 设置ID
Id="Ids"
[option]
# 设置是否删除
# true:删除
# false:不删除
Delete=false' > ddns.toml
root@tb4:/data/ddns# docker run -tid --name ddns --net=host -v `pwd`/ddns.toml:/opt/apps/com.liumou.ddns-tencent/ddns.toml ccr.ccs.tencentyun.com/liumou/ddns
1bae890bed8d77d8e3ccf11c42abacc25ee0814bc7fcaeb5854a8a8881e5e10d
root@tb4:/data/ddns# docker logs -f ddns
https://liumou.site
[2025-04-21 21:19:11] [EROR] [check:25] 请先编辑配置文件: /opt/apps/com.liumou.ddns-tencent/ddns.toml
当前错误是设置子域名的值,例如:www
root@tb4:/data/ddns#
当首次启动的时候,会提示错误,请先编辑配置文件,此时根据提示完成配置修改
假设已经下载好适合当前环境的
ddns-go
程序,并重命名为ddns-go
,且将此程序放在PATH
环境变量中的任意一个目录
首先前往发行版页面下载 https://gitee.com/liumou_site/ddns-go/releases
然后安装
sudo dpkg -i com.liumou.ddns-tencent_amd64-linux_3.2.3.deb
root@Debian12:/data# dpkg -i com.liumou.ddns-tencent_amd64-linux_3.2.3.deb
Selecting previously unselected package com.liumou.ddns-tencent.
(Reading database ... 152186 files and directories currently installed.)
Preparing to unpack com.liumou.ddns-tencent_amd64-linux_3.2.3.deb ...
正在进行安装之前的删除操作...
正在检测程序运行状态...
程序已关闭,可以继续安装
安装之前 [ 安装目录 ] 删除成功: /opt/apps/com.liumou.ddns-tencent/
安装之前 [ 软连接 ] 删除成功: to_bin=/usr/bin/ddns-tencent
安装之前 [ 包信息 ] 删除成功: /var/lib/dpkg/info/com.liumou.ddns-tencent.*
安装之前的删除操作结束!
Unpacking com.liumou.ddns-tencent (3.2.3) ...
Setting up com.liumou.ddns-tencent (3.2.3) ...
正在执行安装配置 - postinst
正在创建软连接...
ln -s /opt/apps/com.liumou.ddns-tencent/com.liumou.ddns-tencent_linux /usr/bin/ddns-tencent
软连接成功: /usr/bin/ddns-tencent
正在创建用户: ddns
用户创建成功
可使用下面的命令查看服务日志
ddns-tencent-log # 查看日志
ddns-tencent-restart # 重启服务
ddns-tencent-enable # 设置开机启动
ddns-tencent-disable # 取消开机启动
ddns-tencent-stop # 停止服务
ddns-tencent-status # 查看服务状态
安装配置执行结束!
installed successfully
请先编辑该文件再启动
/opt/apps/com.liumou.ddns-tencent/ddns.toml
启动服务之前,请先编辑环境变量文件
vim /opt/apps/com.liumou.ddns-tencent/ddns.toml
ddns-tencent-restart # 启动服务
ddns-tencent-status # 查看服务状态
ddns-tencent-stop # 停止服务
ddns-tencent-enable # 设置开机启动
ddns-tencent-disable # 取消开机启动
ddns-tencent-log # 查看运行日志(后面50条)
journalctl -u com.liumou.ddns-tencent.service | grep ERROR
效果
root@ddns:~# journalctl -u com.liumou.ddns-tencent.service | grep ERROR
Mar 27 10:10:19 ddns ddns-tencent[618]: + echo 'ERROR TXY_KEY is empty'
Mar 27 10:10:19 ddns ddns-tencent[618]: ERROR TXY_KEY is empty
Mar 27 10:10:19 ddns ddns-tencent[618]: + echo 'ERROR : Please configure the file first : /opt/apps/com.liumou.ddns-tencent/.txy.env'
Mar 27 10:10:19 ddns ddns-tencent[618]: ERROR : Please configure the file first : /opt/apps/com.liumou.ddns-tencent/.txy.env
Mar 27 10:10:19 ddns ddns-tencent[619]: + echo 'ERROR TXY_KEY is empty'
Mar 27 10:10:19 ddns ddns-tencent[619]: ERROR TXY_KEY is empty
Mar 27 10:10:19 ddns ddns-tencent[619]: + echo 'ERROR : Please configure the file first : /opt/apps/com.liumou.ddns-tencent/.txy.env'
Mar 27 10:10:19 ddns ddns-tencent[619]: ERROR : Please configure the file first : /opt/apps/com.liumou.ddns-tencent/.txy.env
Mar 27 10:10:19 ddns ddns-tencent[620]: + echo 'ERROR TXY_KEY is empty'
Mar 27 10:10:19 ddns ddns-tencent[620]: ERROR TXY_KEY is empty
Mar 27 10:10:19 ddns ddns-tencent[620]: + echo 'ERROR : Please configure the file first : /opt/apps/com.liumou.ddns-tencent/.txy.env'
Mar 27 10:10:19 ddns ddns-tencent[620]: ERROR : Please configure the file first : /opt/apps/com.liumou.ddns-tencent/.txy.env
Mar 27 10:10:19 ddns ddns-tencent[621]: + echo 'ERROR TXY_KEY is empty'
Mar 27 10:10:19 ddns ddns-tencent[621]: ERROR TXY_KEY is empty
Mar 27 10:10:19 ddns ddns-tencent[621]: + echo 'ERROR : Please configure the file first : /opt/apps/com.liumou.ddns-tencent/.txy.env'
Mar 27 10:10:19 ddns ddns-tencent[621]: ERROR : Please configure the file first : /opt/apps/com.liumou.ddns-tencent/.txy.env
Mar 27 10:10:20 ddns ddns-tencent[622]: + echo 'ERROR TXY_KEY is empty'
Mar 27 10:10:20 ddns ddns-tencent[622]: ERROR TXY_KEY is empty
Mar 27 10:10:20 ddns ddns-tencent[622]: + echo 'ERROR : Please configure the file first : /opt/apps/com.liumou.ddns-tencent/.txy.env'
Mar 27 10:10:20 ddns ddns-tencent[622]: ERROR : Please configure the file first : /opt/apps/com.liumou.ddns-tencent/.txy.env
首先前往发行版页面下载可执行文件 https://gitee.com/liumou_site/ddns-go/releases 或者使用下面的命令
wget -O /usr/bin/ddns-go https://gitee.com/liumou_site/ddns-go/releases/download/v3.2.2/ddns-go_3.2.2_linux-X86_64
具体链接请根据版本号及系统类型、架构自行选择,这里仅以最常见的
linux-amd64
为例
然后赋予可执行权限
chmod +x /usr/bin/ddns-go
然后执行下面的命令完成模板创建
mkdir -p /opt/apps/com.liumou.ddns-tencent
echo '[domain]
# 设置域名,例如 liumou.site
Domain="liumou.site"
# 预设字段,留空即可
Sub=""
# 设置IPV4专属子域名,例如 ipv4
Sub4="ddns4"
# 设置IPV6专属子域名,例如 ipv6
Sub6="ddns6"
# 设置备注
Remark="模板"
# Type 设置IP类型
## ALL(双栈)
## A(只更新IPV4)
## AAAA(只更新IPV6)
Type="A"
[login]
# 设置Key
Key="Keys"
# 设置ID
Id="Ids"' > /opt/apps/com.liumou.ddns-tencent/ddns.toml
然后使用编辑器编辑ddns.toml
文件
nano ddns.toml
[root@Halo20 ~]# ddns-go -c ddns.toml -service
https://liumou.site
[2025-04-24 13:29:05] [INFO] [ddns:61] ddns-go v3.2.5
[2025-04-24 13:29:05] [INFO] [gf] [v1.3.2] [extern:304] 该路径不存在
[2025-04-24 13:29:06] [INFO] [service:97] ddns-go服务创建成功并已设置为开机自启
[2025-04-24 13:29:06] [INFO] [service:98] 配置文件路径: /etc/ddns-go/config.toml
[2025-04-24 13:29:06] [INFO] [service:99] ddns-go服务路径: /usr/lib/systemd/system/ddns-go.service
[2025-04-24 13:29:06] [INFO] [service:100] 启动命令: systemctl start ddns-go.service
[root@Halo20 ~]# systemctl status ddns-go
● ddns-go.service - ddns-go
Loaded: loaded (/usr/lib/systemd/system/ddns-go.service; enabled; preset: disabled)
Drop-In: /run/systemd/system/service.d
└─zzz-lxc-service.conf
Active: active (running) since Thu 2025-04-24 13:29:06 UTC; 11s ago
Main PID: 6879 (ddns-go)
Tasks: 6 (limit: 100530)
Memory: 6.6M (peak: 7.1M)
CPU: 21ms
CGroup: /system.slice/ddns-go.service
└─6879 /usr/bin/ddns-go -c /etc/ddns-go/config.toml
Apr 24 13:29:06 Halo20 systemd[1]: Started ddns-go.
Apr 24 13:29:06 Halo20 ddns-go[6879]: https://liumou.site
Apr 24 13:29:06 Halo20 ddns-go[6879]: [2025-04-24 13:29:06] [INFO] [ddns:61] ddns-go v3.2.5
Apr 24 13:29:06 Halo20 ddns-go[6879]: [2025-04-24 13:29:06] [INFO] [start:63] 正在更新V6记录
Apr 24 13:29:06 Halo20 ddns-go[6879]: tb4.halo6.liumou.site -> 2408:825c:8e1:d0e2:be24:11ff:fe32:338b
Apr 24 13:29:06 Halo20 ddns-go[6879]: [2025-04-24 13:29:06] [INFO] [update:27] IP地址未发生变化,无需更新
Apr 24 13:29:06 Halo20 ddns-go[6879]: [2025-04-24 13:29:06] [INFO] [ddns:84] 本次更新完成,正在等待下次更新,当前设置等待时间: 60 秒
[root@Halo20 ~]#
需要打开终端,然后在终端中运行,不建议直接双击
exe
文件运行
.\ddns_windows-amd64.exe
PS D:\Code\gitee\go\ddns-go> go run .\ddns.go -c .\client\ddns.toml
https://liumou.site
[2025-04-24 20:35:12] [INFO] [ddns:59] ddns-go v3.2.5
[2025-04-24 20:35:16] [DEBG] [ipv4:133] 获取到本机公网IPv4地址: 171.37.177.164
[2025-04-24 20:35:16] [INFO] [start:46] 正在更新V4记录
tb4.liumou.site -> 171.37.177.164
[2025-04-24 20:35:16] [INFO] [update:27] IP地址未发生变化,无需更新
[2025-04-24 20:35:16] [INFO] [start:79] 正在更新V6记录
tb4.halo6.liumou.site -> 2408:825c:8e1:99a9:df9d:8a13:c1f7:902d
[2025-04-24 20:35:16] [INFO] [update:27] IP地址未发生变化,无需更新
[2025-04-24 20:35:16] [INFO] [ddns:75] 本次更新完成,正在等待下次更新,当前设置等待时间: 60 秒
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。