第一步:建立子域名
首先,先前往 Cloudflare,建立一个 A 记录。
第二步: 获取 Zone ID、API Token 和 Record ID
取得 子域名 的 Record ID
#!/bin/sh
ZONE_ID="你的 Zone ID"
API_TOKEN=" api token "
curl -X GET "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records"
-H "Authorization: Bearer '$API_TOKEN'"
-H "Content-Type: application/json"
运行上面的命令,获取 JSON 格式的結果,找到 “name” 与目标相符的记录。
#!/bin/sh
NEW_IP=`curl -s http://ipv4.icanhazip.com`
CURRENT_IP=`cat ~/tmp/current_ip.txt`
CURRENT_TIME=$(date +"%F %T")
DDNS="ddns.xlxz.org"
ZONE_ID="{{ Zone ID}}"
API_TOKEN="{{ API Token}}"
RECORD_ID="{{ Record ID}}"
if [ "$NEW_IP" = "$CURRENT_IP" ]
then
echo "[$CURRENT_TIME] No Change in IP Adddress" >> ~/tmp/crontab_log.txt
else
curl -X PUT "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records/$RECORD_ID"
-H "Authorization: Bearer $API_TOKEN"
-H "Content-Type: application/json"
--data '{"type":"A","name":"'$DDNS'","content":"'$NEW_IP'","ttl":1,"proxied":false}' > /dev/null
echo $NEW_IP > ~/tmp/current_ip.txt
echo "[$CURRENT_TIME] IP changed to $NEW_IP" >> ~/tmp/crontab_log.txt
fi
将文件保存 ( ~/bin/ddns.sh) ,在终端中输入 crontab -e 編輯。以下是以「每10分钟运行一次」
*/10 * * * * bash ~/bin/ddns.sh