站长视角
用户至上

如何利用CloudFlare设置Dynamic DNS(DDNS)获取动态IP教程

如果我们购买了动态IP的VPS或服务器,IP会经常改变。这时,就可以通过DDNS来获取动态IP。但是部分商家可能不提供DDNS,需要自己搭建。那么我们应该怎么办?假设你已经有了一个域名shiyanhe.com,想要设置域名ddns.zhaozhu.net获取最新的动态IP,下面我们就来看一下具体教程。

获取API

如果域名没有使用CloudFlare的DNS解析服务,首先要在CloudFlare按提示添加域名shiyanhe.com,把域名的DNS服务器改为CloudFlare,增加对应域名的A记录ddns.shiyanhe.com。TTL可设为2分钟或自动。注意,DDNS使用的域名不要开启CloudFlare的CDN,只用CF的DNS解析功能,也就是status一列对应域名的图标要是灰色的。

2916860425

添加好域名解析后,前往https://www.cloudflare.com/a/profile获取Global API,把API一长串字符复制保存下来。注意,这串API不要泄露给其他人。

3262460141

Shell获取脚本

得到API后,在VPS中下载脚本到/usr/local/bin目录,把脚本命名为cf-ddns.sh,并修改脚本的权限:

curl https://gist.githubusercontent.com/benkulbertis/fff10759c2391b6618dd/raw > /usr/local/bin/cf-ddns.sh

一般系统都会带有curl,但如果出错,就需要先安装curl,具体安装方法可以谷歌或百度一下。

配置

打开脚本进行配置:

vi /usr/local/bin/cf-ddns.sh

找到以下内容并修改:

auth_email="user@example.com" auth_key="c2547eb745079dac9320b638f5e225cf483cc5cfdda41" # found in cloudflare account settings zone_name="example.com" record_name="www.example.com"

其中,在auth_email中填入CloudFlare账号的邮箱,在auth_key输入前面获取的API,zone_name填入域名shiyanhe.com,record_name填入DDNS的域名ddns.shiyanhe.com。

修改完后,保存退出。输入bash /usr/local/bin/cf-ddns.sh运行脚本,如果提示IP changed to: X.X.X.X,表明配置成功。

crontab定时运行

脚本配置成功后,需要让它定时运行。这里设置每10分钟运行一次cf-ddns.sh脚本。

输入crontab -e,然后会弹出vi编辑界面,在里面添加一行:

*/10 * * * * /usr/local/bin/cf-ddns.sh >/dev/null 2>&1

保存并退出。输入service crond status,可以看到contab的运行状态。

日志文件

脚本获取IP更改CloudFlare的DNS记录后,会在目录中生成ip.txt、cloudflare.ids和cloudflare.log三个文件。ip.txt记录的是本机的IP。脚本自动获取到IP后,会先与ip.txt中的IP进行比较,当不一致时(检测到IP发生变化),才会更新CloudFlare的DNS记录,并且把新IP写入ip.txt文件中。如果IP没变化,运行脚本会提示IP has not changed。如果要强制运行脚本更新DNS记录,可以rm /usr/local/bin/ip.txt删除掉ip.txt。

如果运行忽然出问题,可以试试rm /usr/local/bin/cloudflare.ids把cloudflare.ids文件和ip.txt文件删除掉,再重新运行脚本。

Python获取脚本

curl https://raw.githubusercontent.com/AmirAzodi/cloudflare_ddns/master/cf-ddns.py > /usr/local/bin/cf-ddns.py && curl https://raw.githubusercontent.com/AmirAzodi/cloudflare_ddns/master/cf-ddns.conf > /usr/local/bin/cf-ddns.conf && chmod +x /usr/local/bin/cf-ddns.py

配置

打开配置文件:

vi /usr/local/bin/cf-ddns.conf

按提示修改以下内容:

{ "domains": [ { "hosts": [ { "id": "", "ipv4": "", "ipv6": "", "name": "ddns", #以ddns.shiyanhe.com为例,此处填入ddns "types": ["A"] } ], "id": "", "name": "shiyanhe.com" #以ddns.shiyanhe.com为例,此处填入shiyanhe.com } ], "user": { "api_key": "CLOUDFLARE_API_KEY_HERE", #填入API "email": "CLOUDFLARE_EMAIL_HERE" #填入CloudFlare邮箱 } }

保存并退出,输入python /usr/local/bin/cf-ddns.py运行脚本,如果提示内容有update successful,表明运行成功。

crontab定时运行

跟第一个脚本类似,输入crontab -e,然后会弹出vi编辑界面,在里面添加一行:

*/10 * * * * /usr/local/bin/cf-ddns.py >/dev/null 2>&1

搬瓦工推荐方案

温馨提醒 如果您有选择困难症,直接选中间的 CN2 GIA-E方案,季付 $49.99,多达 12 个机房任意切换
方案 内存 CPU 硬盘 流量/月 带宽 机房 价格 购买
CN2
(最便宜)
1GB 1核 20GB 1TB 1Gbps DC3 CN2
DC8 ZNET
$49.99/年 直达
CN2 2GB 1核 40GB 2TB 1Gbps $52.99/半年
$99.99/年
直达
CN2 GIA-E
(最推荐)
1GB 2核 20GB 1TB 2.5Gbps DC6 CN2 GIA-E
DC9 CN2 GIA
日本软银 JPOS_1
荷兰 EUNL_9
$49.99/季度
$169.99/年
直达
CN2 GIA-E 2GB 3核 40GB 2TB 2.5Gbps $89.99/季度
$299.99/年
直达
HK 2GB 2核 40GB 0.5TB 1Gbps 中国香港 CN2 GIA $89.99/月
$899.99/年
直达
HK 4GB 4核 80GB 1TB 1Gbps $155.99/月
$1559.99/年
直达
TOKYO 2GB 2核 40GB 0.5TB 1.2Gbps 日本东京 CN2 GIA $89.99/月
$899.99/年
直达
TOKYO 4GB 4核 80GB 1TB 1.2Gbps $155.99/月
$1559.99/年
直达
搬瓦工优惠码:BWH3HYATVBJW 2022年最新搬瓦工VPS购买图文教程
赞(16)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权, 转载请注明出处。
文章名称:《如何利用CloudFlare设置Dynamic DNS(DDNS)获取动态IP教程》
文章链接:https://www.sshce.com/37858.html
【声明】:国外主机测评仅分享信息,不参与任何交易,也非中介,所有内容仅代表个人观点,均不作直接、间接、法定、约定的保证,读者购买风险自担。一旦您访问国外主机测评,即表示您已经知晓并接受了此声明通告。
【关于安全】:任何 IDC商家都有倒闭和跑路的可能,备份永远是最佳选择,服务器也是机器,不勤备份是对自己极不负责的表现,请保持良好的备份习惯。

登录

找回密码

注册