首页
关于本站
Search
1
纯IPV6服务器使用教程
28,410 阅读
2
2.77T大合集
15,669 阅读
3
NAT机商家合集
800 阅读
4
NAT正确打开方式
788 阅读
5
RackNerd优惠款服务器推荐
486 阅读
默认分类
登录
Search
咸鱼
累计撰写
10
篇文章
累计收到
0
条评论
首页
栏目
默认分类
页面
关于本站
搜索到
1
篇与
的结果
2024-12-27
使用 Cloudflare DDNS
步骤1:获取 API 令牌登录到您的 Cloudflare 账户。点击您托管到CF的域名在右侧导航栏中,复制区域 ID 2: 然后点击获取您的API令牌-创建令牌-API 令牌模板-编辑区域 DNSDNS 模板,只需2个权限:权限保持默认区域资源:包括-特定区域-后面选择你的域名点击“继续”。创建令牌复制此令牌以访问 Cloudflare API步骤2:配置 DDNS 脚本在您的服务器上创建一个脚本文件,例如 cloudflare_ddns.sh例:root目录下创建cloudflare_ddns.sh,文件路径为/root/cloudflare_ddns.sh ,在finalshell中右键选择该文件,选择文件权限-全部打勾确定,然后打开cloudflare_ddns.sh这个文件将以下脚本内容粘贴到文件中,并用您的信息替换your_api_token:第二步获取的APIyour_zone_id: 你的域名的区域 ID your_record_name.example.com:替换为你需要使用的DDNS域名比如aa.bb.com#!/bin/bash # 配置 Cloudflare 信息 auth_token="your_api_token" # Cloudflare API Token zone_identifier="your_zone_id" # Cloudflare 区域 ID record_name="your_record_name.example.com" # 要同步的记录名称 # 开始脚本 echo "正在检查 IP 更新..." # 获取当前外网 IP ip=$(curl -s4 https://icanhazip.com/) if [[ -z "$ip" ]]; then echo "错误: 无法获取外部网络 IP。" >&2 exit 1 fi echo "当前外部 IP: $ip" # 设置认证头 auth_header=(-H "Authorization: Bearer $auth_token") # 获取当前 DNS 记录 record=$(curl -s -X GET "https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records?name=$record_name&type=A" \ "${auth_header[@]}" -H "Content-Type: application/json") # 检查记录是否存在 if [[ -z "$record" ]] || [[ "$record" == *'"count":0'* ]]; then echo "DNS 记录不存在,正在创建新记录..." # 创建新的 DNS 记录 create=$(curl -s -X POST "https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records" \ "${auth_header[@]}" -H "Content-Type: application/json" \ --data "{\"type\":\"A\",\"name\":\"$record_name\",\"content\":\"$ip\",\"ttl\":120,\"proxied\":false}") # 检查创建结果 if echo "$create" | grep -q '"success":true'; then echo "DNS 记录创建成功。IP: $ip" else echo "错误: DNS 记录创建失败。响应: $create" >&2 exit 1 fi exit 0 fi # 提取记录 ID 和当前的 IP 地址 record_identifier=$(echo "$record" | sed 's/.*"id":"\([^"]*\)".*/\1/') old_ip=$(echo "$record" | sed 's/.*"content":"\([^"]*\)".*/\1/') echo "当前 DNS IP: $old_ip" # 如果 IP 没有变化,则退出 if [[ "$ip" == "$old_ip" ]]; then echo "IP 地址未更改,更新已取消。" exit 0 fi # 更新 DNS 记录 update=$(curl -s -X PUT "https://api.cloudflare.com/client/v4/zones/$zone_identifier/dns_records/$record_identifier" \ "${auth_header[@]}" -H "Content-Type: application/json" \ --data "{\"type\":\"A\",\"name\":\"$record_name\",\"content\":\"$ip\",\"ttl\":120,\"proxied\":false}") # 检查更新结果 if echo "$update" | grep -q '"success":true'; then echo "更新成功。旧 IP: $old_ip, 新 IP: $ip" else echo "错误: 更新失败。响应: $update" >&2 exit 1 fi步骤3:打开运行 DDNS 脚本导航到您保存脚本文件的目录。例:文件在/root/cloudflare_ddns.sh cd /root运行脚本:bash cloudflare_ddns.sh步骤4:配置 DDNS 定时运行输入:crontab -e按键盘方向键下或者滑动滚轮到文本末尾最后一行*/50 * * * * bash /root/cloudflare_ddns.sh 以上文本中的数字是每50分钟运行一次如果你需要每天的 0 点执行,格式就是这样:*/0 0 * * * bash /root/cloudflare_ddns.sh 如果你需要每隔 10 分钟执行就是这样:*/10 * * * * bash /root/cloudflare_ddns.sh 执行含义参考文章末尾有参考然后 按ctrl+x 然后输入y 回车即可保存然后查看当前用户的 cron 任务可以使用:crontab -l如果在末尾最后一行看到你添加的代码那么已经成功
2024年12月27日
155 阅读
0 评论
0 点赞