前言
家里的IPv6公网是可以访问的,有了树莓派之后不加以利用怎么行?但是IPv6地址随着每天一次(自动)的拨号会发生变化,因此在树莓派上搭建一个动态域名解析服务(DDNS)就很有必要。在这里我们使用CloudFlare的API接口来实现动态域名解析。
原作地址:https://github.com/wherelse/cloudflare-ddns-script
使用脚本前需要做的
- 一台可以联网的树莓派设备(其他Linux系统设备也是可以的)
- 注册一个域名,免费的或者收费的都可以(国内的域名需要备案)
- 注册一个CloudFlare账户 ( http://www.cloudflare.com ),并将需要使用的域名添加到账户上,完成配置后根据需要添加服务设备的IPV6地址添加一个AAAA解析(随便解析到哪里,比如2001:4860:4860::8888),并设为仅进行DNS解析
- 查询CloudFlare账户的Globel ID并记录下来,用于后续配置
配置本地脚本
打开命令窗口,执行以下程序:
wget https://raw.githubusercontent.com/wherelse/cloudflare-ddns-script/master/cloudflare-ddns.sh
sudo chmod +x /home/pi/cloudflare-ddns.sh #目录根据实际用户等进行更改
需要对脚本内的个人配置信息进行更改,目录和上一条命令保持一致
sudo nano /home/pi/cloudflare-ddns.sh
#或
sudo vi /home/pi/cloudflare-ddns.sh
找到如下内容进行更改
auth_email="[email protected]" #你的CloudFlare注册账户邮箱
auth_key="*****************" #你的cloudflare账户Globel ID
zone_name="Your main Domain" #你的域名
record_name="Your Full Domain" #完整域名
以任意一个域名为例,ipv6.google.com 这个域名,zone_name为 google.com
和record_name则为 ipv6.google.com
,修改完成后,保存并退出。
在命令行中输入以下内容运行脚本:
bash /home/pi/cloudflare-ddns.sh
如果提示 IP changed to: xxxxx
或 IP has not changed.
则说明配置成功了:
root@raspberrypi:/home/pi/conf/ddns# ls cloudflare-ddns.sh root@raspberrypi:/home/pi/conf/ddns# ./cloudflare-ddns.sh Mon Mar 16 16:00:40 GMT 2020 Checking AAAA for home.liujason.com Content Changed. Update Cloudflare. Zone ID: 9f59ca95276ddc45ee500b3132a23bae Record ID: 6df37462bafbf20532e6aa9d92ad70fa Current Content: 2a01:4f8:b16:1051::52:7586 New Content: 2a02:1812:1511:3b00:897e:320f:4903:ce81 AAAA changed to: 2a02:1812:1511:3b00:897e:320f:4903:ce81
定时运行脚本 为了实现动态域名解析,必须让脚本保持运行以获取IP状态,这里使用系统crontab定时 在命令行输入:crontab -e
后在文件最后添加以下内容
*/5* * * * /home/pi/cloudflare-ddns.sh >/dev/null 2>&1
更改完成后保存并退出。 在这里将脚本设置为每五分钟执行一次 cloudflare-ddns.sh
脚本,就可以实现动态域名解析了。
其他
附上另一个脚本,貌似这个才是原作者:https://github.com/gstuartj/cf-ddns.sh