别再去问活着的意义,一生所经所历,便是答案。

【原创】【汉化】利用CloudFlare实现DDNS动态解析

hjh原创 hjh 44℃ 0评论

前几天hjh买了一条香港hkt的线路,是动态IP,即被墙自动换IP

然后买了之后各种被墙,实在是不胜其烦。。。

于是hjh就魔改了一个外国大佬的脚本,因为他的脚本太古老了,3年多没更新了,所以就不放源地址了,哈哈哈

魔改汉化版仓库地址:https://github.com/hjh70526/CloudFlare-DDNS-

脚本完全开源,欢迎指出问题

使用教程

准备:

1、一个有动态IP的服务器或vps,nat主机也可以(静态也可以。。除非你闲的蛋疼)

2、一个激活的CloudFlare帐号

3、一个顶级域名(可以是免费域名,申请教程:逗比根据地

第一步 使用CloudFlare添加域名解析

在CloudFlare官网登陆你的帐号(注册过程就不写了。。太过基础),进入后台

点击+ Add a Site来添加一个站点

填写你的顶级域名,点击Add site

选择免费计划即可,DDNS不需要http连接速度

暂时不需要添加解析记录,直接翻到最下面,点击下一步

之后会提示你更改NS服务器,因为每个域名销售商的更改方式不同,就不写更改步骤了,自己谷歌一下就好

添加域名到CloudFlare之后需要一段时间等解析生效,在这个期间,你可以放松一下,看看远方,保护视力~

解析生效后,回到CloudFlare后台,点击你的域名,进入域名管理

点击DNS来修改DNS设置

在DNS设置中,找到这个界面,填写内容可以根据个人喜好和实际情况发挥

详细设置步骤如图(P图累死朕了qwq)

保存好解析记录后,在浏览器中打开一个新标签页,进入 https://www.cloudflare.com/a/profile

进入后,点击 API Tokens,找到图中的页面,点击 View 查看你的API密钥

由于API是隐私内容,查看需要输入密码,输入你的CloudFlare密码和验证码后,点击 View

查看了API Key后,请按Ctrl+C复制下来,一会要用哟

记住,一定要妥善保管你的API Key!

第二步 在服务器上安装运行环境&下载Python DDNS脚本

准备环境:Python2或Python3(建议使用Python3,兼容性更好)

Linux一般自带Python2,不想折腾可以直接用,Python3请自己谷歌如何安装

用ssh连接你的服务器/vps

在服务器上安装Curl

Debian/Ubuntu:
apt-get install curl

CentOS:
yum -y install curl

在服务器上安装nano(hjh个人比较喜欢nano,如果你会用vim,或者你偏爱vim,你随意~)

Debian/Ubuntu:
apt-get install nano

CentOS:
yum -y install nano

安装完成后,在服务器上执行以下命令

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

这时,Curl就把DDNS脚本下载到 /usr/local/bin/ 并赋权了

第三步 修改脚本配置文件并试运行脚本

在服务器上运行以下命令

cd /usr/local/bin/

运行结果为:

[email protected]:~# cd /usr/local/bin/
[email protected]:/usr/local/bin#

修改脚本配置文件:

nano cf-ddns.conf

运行结果:

使用电脑键盘的“上下左右”键来移动光标

如果窗口太小,没有显示完整个文件,可以拖动放大整个窗口,nano会自适应你的缩放操作~

若一不小心填错了,或误删了符号不知道如何还原,可以按Ctrl+X,然后再按N来退出编辑不保存

根据你在 第一步 设置的解析记录来填写,只需要替换掉“替换我”部分即可,其他部分不需要更改

粘贴API Key时,不能使用Ctrl+V,直接按鼠标右键就可以粘贴了~

示例:

 

填好就像这样,别照着填哈!根据你在 第一步 的设置填!

确认没有填错/误删字符后,按Ctrl+O,再按回车保存更改!保存之后就可以按Ctrl+X退出编辑器了

退出编辑,返回到Shell之后,执行以下命令来试运行

python cf-ddns.py

若不出意外,运行结果是

[email protected]:/usr/local/bin# python cf-ddns.py
未发现Ipv6地址,将更新Ipv4地址
咦? "hjh666.xyz" 的zone id不见了耶~嘿嘿,正在向CloudFlare获取
"hjh666.xyz" 的zone id是 xxxxxxxxxxxxxxxxxxxxxxxxxx
咦? "ddns.hjh666.xyz" 的host id不见了耶~嘿嘿,正在向CloudFlare获取
"ddns.hjh666.xyz" 的host id是 xxxxxxxxxxxxxxxxxxxxxxxx
更新成功 (type: A, fqdn: ddns.hjh666.xyz, ip: 168.70.xxx.30)
更新成功啦~

如果显示这个,恭喜你,你成功运行了ddns脚本,你可以去CloudFlare后台看看,是不是解析地址已经变成你的服务器IP啦?

第四步 使用crontab定时运行脚本

既然是DDNS,那肯定不是手动更新啦~

在服务器上执行以下命令

crontab -e

如果你安装了nano,也安装了vim,系统有可能会让你选择编辑器,按照系统提示输入数字即可选择使用nano(同样,如果你真爱vim,俺不阻止)

如果你之前设置过默认使用vim编辑,按此步骤卸载vim(点击展开)

回归主题,打开crontab编辑后,用键盘下键把光标移动到最后一行,在末尾添加以下时钟设置(表示每两分钟更新一次,输出日志到/ddnslog/pyddns.log)

*/2 * * * * python /usr/local/bin/cf-ddns.py >> /ddnslog/pyddns.log

示例:

确认填写无误后按Ctrl+O,再按回车保存,按Ctrl+X退出编辑器

若填写正确,则会返回如下提示:

[email protected]:~# crontab -e
crontab: installing new crontab

表示填写正确,且已经开始定时运行~

如果有耐心,你可以等几分钟,然后运行以下命令查看运行日志:

cat /ddnslog/pyddns.log

若显示以下字样:

[email protected]:~# cat /ddnslog/pyddns.log
未发现Ipv6地址,将更新Ipv4地址
IP地址未更换,无需更新~
未发现Ipv6地址,将更新Ipv4地址
IP地址未更换,无需更新~
未发现Ipv6地址,将更新Ipv4地址
IP地址未更换,无需更新~
[email protected]:~#

这样就代表你已经大功告成了,鼓掌!~

第五步 实质使用DDNS

如果你使用DDNS只是用来翻墙。。。

在翻墙客户端内直接把IP替换成DDNS域名即可

如图:

直接把IP换成DDNS域名,不需要修改配置~

关于建站

因为域名已经动态解析到你的小鸡,直接用这个域名在小鸡上建站即可!

后续 如果我想换一个DDNS域名怎么办?

因为zone id和host id的特殊性,你必须重新下载并编辑cf-ddns.conf配置文件,编辑后执行脚本让脚本自行获取新的zone id和host id!

脚本运行出现问题?

可以联系hjh帮忙解决~

联系方式:https://t.me/hjh666

因为联系方式是Telegram,需要科学上网,第一次联系请自备,可以在Telegram上找hjh购买节点哟~

详情:Science-Online!

转载请注明:放眼看世界 » 【原创】【汉化】利用CloudFlare实现DDNS动态解析

喜欢 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址