Code009

C

Cloudflare DDNS

原来用家里的电脑做了一个Gitlab的网站,但是无奈虽然电信提供公网IP,但是是动态的,每大概两天就会换一次。每次都要手动更新,十分麻烦。本来自己想写一个Bash脚本更新IP,但是发现已经有人写好了,使用效果好像不错。

脚本来自Benkulbertis

首先,在Cloudflare上增加一个随便IP的A记录,用于DNS解析,我将它命名为ddns。TTL设置为自动,然后选择不通过Cloudflare的CDN,也就是把后面的云标记成灰色。

然后进入Cloudflare的Profile,在最底下点击View获取Global API,注意不要将此密钥泄露给任何人。

在需要更新IP的计算机的命令行内输入一下代码,将脚本保存在/usr/local/bin/下:

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

然后打开脚本编辑Cloudflare的信息:

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

修改以下内容:

auth_email="" # Cloudflare的登录邮箱
auth_key="" # 刚刚查看的Global API
zone_name="flicker-soul.me" # 你的域名
record_name="ddns.flicker-soul.me" #你的解析二级域名地址

保存退出后使用bash /usr/local/bin/cf-ddns.sh执行脚本,等数秒钟后看到提示IP changed to: X.X.X.X后说明修改成功!

查看Cloudflare可以发现IP变化了:

然后打开crontab,添加以下内容,让脚本每十分钟运行一次:

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

可以一直运作下去了!

Add comment

There is a Google reCAPTCHA underneath. Access it with a ladder if you can't see it~

About

Ambitious Egotist's Blog
For life
For code
For physics

Handle With Passion ❤