前言
什么是DDNS?
DDNS(Dynamic Domain Name Server)是动态域名服务的缩写。
目前路由器拨号上网获得的多半都是动态IP,DDNS可以将路由器变化的外网IP和固定的域名绑定,从而用户可以在外网通过该固定域名来访问路由器。
一般路由器系统都支持DDNS,但支持的域名服务商比较少,一般有花生壳等,明显不够用,这里我们安装DDNS-GO插件来实现DDNS。
DDNS-GO 是一个开源的动态域名解析工具,使用 Go 语言编写,旨在为用户提供一个简单、高效且易于使用的动态 DNS 服务,支持阿里云、腾讯云、Cloudflare、华为云、百度云、Porkbun、GoDaddy、Namecheap、NameSilo、Dynadot 等主流域名服务商
一、下载&安装DDNS-GO
本文用到的ddns-go 及scp工具都已经关联到文章资源上了
github项目地址:https://github.com/jeessy2/ddns-go/releases
AX6000路由器是64位,下载ddns-go_6.8.1_linux_arm64.tar.gz 的插件。
可以通过
uname -m
来查看ARM 架构还是 AMD 架构
如果返回结果是 aarch64,则表示服务器是 ARM 架构;如果返回结果是 x86_64,则通常表示是 AMD 或 Intel 等 x86 架构
下载成功DDNS-GO后,解压上传到路由器/data/ddns-go目录,默认肯定没有的,我们需要新建这个目录:
mkdir /data/ddns-go
然后使用SCP工具将解压后的文件上传到路由器的 /data/ddns-go 目录下
上传ddns-go文件后,给这个文件赋权:
chmod +x /data/ddns-go/ddns-go
安装ddns-go命令:
/data/ddns-go/ddns-go -l :9876 -f 600 -c /data/ddns-go/ddns-go.yaml -s install
参数的含义如下:
-l :9876: 监听地址,表示 DDNS-GO 将在路由器的 9876 端口上提供 Web 服务。
-f 600: 同步间隔时间,表示每 600 秒(10 分钟)进行一次域名解析的同步操作。
-c /data/ddns-go/ddns-go.yaml: 指定配置文件路径,使用 /data/ddns-go/ddns-go.yaml 作为配置文件。
-s install: 安装并启动 DDNS-GO 服务。
DDNS-GO默认的端口就是9876,指定配置文件路径是测试发现,默认配置没有读写权限,所有有这个操作。
二、配置ddns-go
首先得有一个域名,我这里使用的是阿里云。也可以用其他服务商的。
注册AccessKey
首先登录个人的阿里云账号,我的是RAM账户。各位的可以使用主账户进行使用AccessKey。
点击ACCESSKEY管理
创建你的AccessKey,并记录下来。
使用路由器IP + 9876 端口访问插件,第一次登录,用户名和密码将成为管理员账号和密码
将AK和SK填写进去
然后选择IPv4或IPv6配置域名保存即可
设置开机启动
在/data/ddns-go目录下创建一个sh文件
vim /data/ddns-go/check_ddns.sh
添加如下内容
#!/bin/sh
if netstat -tunlp | grep ':9876' > /dev/null; then
echo "DDNS-GO 已在运行,无需启动。"
else
echo "DDNS-GO 未运行,正在启动..."
/data/ddns-go/ddns-go -l :9876 -f 600 -c /data/ddns-go/ddns-go.yaml -s install > /data/ddns-go/ddns-go.log 2>&1 &
fi
将脚本添加到定时任务中
crontab -e
#追加如下内容
*/5 * * * * /data/ddns-go/check_ddns.sh