Cloudflare DDNS设定

所需参数 CF_API_TOKEN: Cloudflare API Token,需具备 Zone.DNS 编辑权限 CF_ZONE_ID: 域名所在 Zone ID CF_RECORD_ID: 需要更新的 DNS 记录 ID CF_RECORD_NAME : 要更新的记录名称,例如 “sub.example.com” 其中RECORD_ID 要通过 curl -s -X GET "https://api.cloudflare.com/client/v4/zones/${CF_ZONE_ID}/dns_records?name=${CF_RECORD_NAME}" -H "Authorization: Bearer ${CF_API_TOKEN}" -H "Content-Type: application/json" | jq -r '.result[0].id' 来获得 IP Provider ip.sb ip.3322.net Script GPT写的简单脚本: #!/usr/bin/env bash # Cloudflare DDNS 更新脚本 # 依赖: curl, jq # 使用前请设置以下环境变量: # CF_API_TOKEN: Cloudflare API Token,需具备 Zone.DNS 编辑权限 # CF_ZONE_ID: 域名所在 Zone ID # CF_RECORD_ID: 需要更新的 DNS 记录 ID # CF_RECORD_NAME: 要更新的记录名称,例如 "sub.example.com" # 可选: # IP_PROVIDER: 获取公网 IP 的接口,默认使用 https://api.ipify.org # 默认配置 CF_API_TOKEN="xxx" CF_RECORD_NAME="xxx" CF_RECORD_ID="xxxx" CF_ZONE_ID="xxxx" IP_PROVIDER="ip.3322.net" CACHE_FILE="/tmp/cloudflare_ddns_last_ip.txt" # 获取当前公网 IP current_ip=$(curl --interface eth0 "$IP_PROVIDER") if [[ -z "$current_ip" ]]; then echo "无法获取公网 IP,请检查网络或 IP_PROVIDER 设置。" exit 1 fi # 获取上一次记录的 IP if [[ -f "$CACHE_FILE" ]]; then last_ip=$(cat "$CACHE_FILE") else last_ip="" fi # 如果 IP 未变化,则退出 if [[ "$current_ip" == "$last_ip" ]]; then echo "IP 未变化 ($current_ip),无需更新。" exit 0 fi echo "检测到 IP 变化: $last_ip -> $current_ip,开始更新 Cloudflare 记录..." # 构建 JSON 数据 read -r -d '' payload <<EOF { "type": "A", "name": "${CF_RECORD_NAME}", "content": "${current_ip}", "ttl": 120, "proxied": false } EOF # 调用 Cloudflare API 更新 DNS 记录 response=$(curl -s -X PUT \ "https://api.cloudflare.com/client/v4/zones/${CF_ZONE_ID}/dns_records/${CF_RECORD_ID}" \ -H "Authorization: Bearer ${CF_API_TOKEN}" \ -H "Content-Type: application/json" \ --data "$payload") # 检查更新结果 success=$(echo "$response" | jq -r '.success') if [[ "$success" == "true" ]]; then echo "更新成功: ${CF_RECORD_NAME} -> ${current_ip}" echo "$current_ip" > "$CACHE_FILE" exit 0 else echo "更新失败: $(echo "$response" | jq -r '.errors[]?.message')" exit 1 fi

July 8, 2025 · 2 min · 243 words

hugo 使用方法

记录一下hugo是怎么用的 TL;DR 简单来说就是安装hugo 之后,通过hugo server 渲染,然后推送到部署的服务器/Pages上。 目前方案 我目前是部署在Cloudflare 的 Pages上。 流程为: hugo new posts/{filename}.md 创建新文章 git push到github的仓库中 Cloudflare自动CI/CD TODO 文件夹管理

May 3, 2025 · 1 min · 20 words

Google Voice 保号

目前在每月1号设置了提醒,记得上去打个电话 在手机上使用的话: 设置->接听和拨打电话改成“首选 WLAN 和移动数据网络 from: https://www.v2ex.com/t/1098947#10 Source https://zhuanlan.zhihu.com/p/691772738 https://www.v2ex.com/t/385085 https://www.cnblogs.com/blog5277/p/12255636.html https://linux.do/t/topic/429672 拨打电话 ChatGPT: (800) 242-8478 一个月15分钟 Apple 客服: (800) 275-2273 亚马逊客服: (206) 266-2992 微软客服: (800) 642-7676 美西时间周一至周五 5:00-21:00 ,周六日 6:00-15:00 谷歌客服:(800) 419-0157 订阅广告 放一段时间再开始发短信会比较好 发送"JOIN”到"22122",每月会接收2条Starbucks(星巴克)的广告推送短信;如果要停止订阅,发送“STOP”即可。 编辑网址发送到(833) 672-1001‬ (cloudflare) 查询ipv6 失效 TODO 自动化

May 3, 2025 · 1 min · 43 words