请访问原文链接:https://sysin.org/blog/ddns-go/,查看最新版。原创作品,转载请保留出处。
作者主页:www.sysin.org
这是一个简单好用的 DDNS 动态域名服务工具,可以自动更新域名解析到公网 IP,目前支持Alidns(阿里云)
、Dnspod(腾讯云)
、Cloudflare
。并且是免费和开源的!
如果你的域名注册不在上述服务商,也是可以使用的,将域名解析转入到上述服务商的免费解析服务即可,参看以下文档:
v1.0.0 发布
- f4d91a5 feat: 在网页中快速查看最近50条日志
- v1.0.0 发布意味着正式版本
1. ddns-go 功能特性
- 自动获得你的公网 IPv4 或 IPv6 并解析到域名中
- 支持 Mac、Windows、Linux 系统,支持 ARM、x86 架构
- 支持的域名服务商
Alidns(阿里云)
Dnspod(腾讯云)
Cloudflare
- 间隔 5 分钟同步一次
- 支持多个域名同时解析,公司必备
- 支持多级域名
- 网页中配置,简单又方便
- 网页中方便快速查看最近 50 条日志
2. 系统中使用
- 下载并解压 https://github.com/jeessy2/ddns-go/releases
- 双击运行,程序自动打开 http://127.0.0.1:9876,修改你的配置,成功
- [可选] 加入到开机启动中,需自行搜索
动态 DNS 解析,通常可能是用在家里的电脑,没有固定公网 IP,但是需要远程访问的场景,以下以 macOS 和 Windows 为例,详细说明一下具体使用方法:
2.1 macOS
- 下载:
wget https://github.com/jeessy2/ddns-go/releases/download/v1.0.0/ddns-go_1.0.0_Darwin_x86_64.tar.gz
tar -zxvf ddns-go_1.0.0_Darwin_x86_64.tar.gz
mv ddns-go /usr/local/bin/
#运行
ddns-go
#此时将用默认浏览器打开:http://127.0.0.1:9876/
- 添加自动启动:
如果用户登录启动,创建 plist 文件如下:
vi ~/Library/LaunchAgents/ddns-go.plist
如果系统启动时自动运行,创建 plist 文件如下:
sudo vi /Library/LaunchDaemons/ddns-go.plist
内容如下:
<?xml version="1.0"encoding="utf-8"?>
<!DOCTYPE plist PUBLIC"-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<true/>
<key>RunAtLoad</key>
<true/>
<key>Label</key>
<string>com.jeessy2.ddns-go</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/ddns-go</string>
</array>
</dict>
</plist>
检查 plist 语法是否正确
plutil ~/Library/LaunchAgents/ddns-go.plist
修改文件权限
chmod 644 ~/Library/LaunchAgents/ddns-go.plist
添加自启动项
launchctl load ~/Library/LaunchAgents/ddns-go.plist
启动自启动项
launchctl start ddns-go
删除自启动项
launchctl unload ~/Library/LaunchAgents/ddns-go.plist
查看当前所有自启动项
launchctl list
2.2 Windows
1、下载(Win64为例):https://github.com/jeessy2/ddns-go/releases/download/v1.0.0/ddns-go_1.0.0_Windows_x86_64.tar.gz
2、解压到 C:\Program Files\ddns-go\ 文件夹下
3、点击 ddns-go.exe 右键,发送到 - 桌面快捷方式,可以直接双击运行
4、如果需要自动启动:
在开始菜单的搜索栏内或者在“运行”窗口内输入以下命令后回车:shell:Common Startup,打开启动文件夹。
将应用软件生成快捷方式放入C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp 文件夹(需要管理员权限)。
如果没有管理员权限,“运行”:shell:startup
将打开:C:\Users\用户名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup 文件夹
将应用软件快捷方式放到这里即可。
5、开机自启动(不需要用户登录),可以使用任务计划程序
任务计划程序 ~> 创建任务
常规:【不管是否用户登录都要运行 ,使用高级权限运行】
触发器:【新建:触发器 ~> 启动时 】
操作:【新建:操作 ~> 启动程序,浏览到应用程序所在路径】
2.3 获取域名 API 访问凭据
根据你的域名所在服务商,打开页面,登录后,根据提示获取凭据,然后填写到 ddns-go 的配置页面中即可。
Alidns(阿里云)
https://ram.console.aliyun.com/manage/ak
AccessKey ID
AccessKey Secret
Dnspod(腾讯云)
https://console.dnspod.cn/account/token
ID
Token
Cloudflare
https://dash.cloudflare.com/profile/api-tokens
Token
2.4 添加解析
在 IPv4 或者 IPv6(如果有)下,Domains 中填写 dns 解析条目即可。
示例:www.domain.com,也可以解析多条,一行一条,点击“SAVE”,右侧提示解析成功!
此时,回到域名解析服务商管理页面,可以看到 dns 条目已经正确添加。
从日志可以看到,应用程序 5 分钟检查一次地址变化并同步地址解析。
2.5 配置文件
cat ~/.ddns_go_config.yaml
可以看到软件使用 yaml 格式保存配置文件,配置参数也很直观。
3. Docker 中使用
docker run -d \
--name ddns-go \
--restart=always \
-p 9876:9876 \
jeessy/ddns-go
- 在网页中打开
http://主机IP:9876
,修改你的配置,成功 - [可选] docker 中默认不支持 IPv6,需自行探索如何开启