CloudFlare 自建DDNS教程

/ 0评 / 0

CloudFlare 自建DDNS教程


CloudFlare Global API 获取地址: https://www.cloudflare.com/a/profile

Shell 脚本

安装一些要使用的组件

apt install update
apt install vim
apt install curl

得到 API 后,在 VPS 中下载脚本到/usr/local/bin 目录,把脚本命名为 cf-ddns.sh,并修改脚本的权限:

curl https://gist.githubusercontent.com/benkulbertis/fff10759c2391b6618dd/raw > /usr/local/bin/cf-ddns.sh && chmod +x /usr/local/bin/cf-ddns.sh

修改

vim /usr/local/bin/cf-ddns.sh

找到以下内容并修改:

auth_email="user@example.com"
auth_key="c2547eb745079dac9320b638f5e225cf483cc5cfdda41" # found in cloudflare 3 account settings
zone_name="example.com"
record_name="www.example.com"

auth_email 填写 CloudFlare 账号的邮箱
auth_key 填写获取的 Global API
zone_name 填入域名 主域名
record_name 填入 DDNS 的域名

输入bash /usr/local/bin/cf-ddns.sh运行脚本,如果提示IP changed to: X.X.X.X,表明配置成功。

定时运行

crontab -e 
# 最下面添加,这里设置每 10 分钟运行一次 cf-ddns.sh 脚本
*/10 * * * * rm /usr/local/bin/cloudflare.log
*/10 * * * * rm /usr/local/bin/cloudflare.ids
*/10 * * * * rm /usr/local/bin/ip.txt
*/10 * * * * sh /usr/local/bin/cf-ddns.sh

输入service crond status,可以看到 contab 的运行状态。

日志文件

脚本获取 IP 更改 CloudFlare 的 DNS 记录后,会在目录中生成 ip.txt、cloudflare.ids 和 cloudflare.log 三个文件。ip.txt 记录的是本机的 IP。脚本自动获取到 IP 后,会先与 ip.txt 中的 IP 进行比较,当不一致时(检测到 IP 发生变化),才会更新 CloudFlare 的 DNS 记录,并且把新 IP 写入 ip.txt 文件中。

如果 IP 没变化,运行脚本会提示IP has not changed。如果要强制运行脚本更新 DNS 记录,可以rm /usr/local/bin/ip.txt 删除掉 ip.txt。

如果运行忽然出问题,可以试试rm /usr/local/bin/cloudflare.ids把 cloudflare.ids 文件和 ip.txt 文件删除掉,再重新运行脚本。

发表评论

邮箱地址不会被公开。 必填项已用*标注