前言
这篇文章并非100%原创,属于记录,因为有很多东西,长时间不用,就忘记了,因此有了本文,各位也可以借鉴本文,本文只描述这个过程!
我们在搭建落地的过程中 如果是动态IP的VPS或者NAT小鸡,如果遇到商家没有给你配置DDNS那么就需要我们自己来配置
本文利用CF来搭建
本人使用的Alpine系统,Ubuntu和Debian更加简单
自建DDNS解决动态IP服务器访问问题
获取Global API Key设置用于 DDNS 解析的二级域名,流量不经过CDN(云朵变灰)下载 DDNS 脚本修改配置文件设置定时任务
获取Global API Key
访问CF官网 右上角点自己头像 个人资料 再去左边找API令牌 Global API Key,在页面下方找到 Global API Key,点击右侧的 View 查看 Key,并保存下来
设置用于 DDNS 解析的二级域名,流量不经过CDN(云朵变灰)
添加一条A记录,例如:hkt.test.com,IP地址处写1.1.1.1 Proxy status设置成DNS only(不代理)
前置准备工作完成 接下来开始接入
Alpine系统多安装一个东西
apk add grep
下载 DDNS 脚本
Ubuntu&Debian 一键梭哈
Curl https://raw.githubusercontent.com/aipeach/cloudflare-api-v4-ddns/master/cf-v4-ddns.sh > /root/cf-v4-ddns.sh && chmod +x /root/cf-v4-ddns.sh
Alpine
Alpine 分两步执行
Curl https://raw.githubusercontent.com/aipeach/cloudflare-api-v4-ddns/master/cf-v4-ddns.shchmod +x /root/cf-v4-ddns.sh
修改 配置文件
下载好了在root目录里手动修改 这里我是FinalShell直接修改
各位自己用nano 还是vim 还是Xftp拖出来用N++看个人喜好
修改root目录下的cf-v4-ddns.sh文件
# incorrect api-key results in E_UNAUTH error# 填写 Global API KeyCFKEY= #你刚才获取的CF的Global密钥# Username, eg: user@example.com# 填写 CloudFlare 登陆邮箱CFUSER= #你的CF账号# Zone name, eg: example.com# 填写需要用来 DDNS 的一级域名CFZONE_NAME= #比如baidu.com# Hostname to update, eg: homeserver.example.com# 填写 DDNS 的二级域名(只需填写前缀)CFRECORD_NAME= #如果是123.baidu.com 这里就填123
首次运行脚本,输出内容会显示当前IP
./cf-v4-ddns.sh
进入cloudflare查看 确保IP已变更为当前IP
设置定时任务
Ubuntu&Debian
crontab -e*/2 * * * * /root/cf-v4-ddns.sh >/dev/null 2>&1# 如果需要日志,替换上一行代码*/2 * * * * /root/cf-v4-ddns.sh >> /var/log/cf-ddns.log 2>&1
Alpine
在 Alpine 中设置定时任务的步骤与 Debian 略有不同。Alpine 使用的是 crond 服务,配置文件为 /etc/crontabs/root。
编辑 /etc/crontabs/root 在文件末尾添加以下内容:
*/2 * * * * /root/cf-v4-ddns.sh >/dev/null 2>&1
这行代码的意思是每隔 2 分钟执行一次 /root/cf-v4-ddns.sh 脚本,并将标准输出和错误输出重定向到 /dev/null。
保存退出
重启 crond 服务以使更改生效:
rc-service crond restart