前言
这篇文章并非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.sh
chmod +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 Key
CFKEY= #你刚才获取的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