如果你有一台动态IP的服务器,IP地址会经常变动!这时候就可以通过DDNS来获取动态IP,一般服务器商家会设置好DDNS,但是一部分商家需要客户自己设置,那我们就可以通过本篇文章来达到这个目的,比如我想要设置ddns.zhujiget.com这个域名来获取动态IP地址,参照下面文章即可。

CloudFlare配置解析
首先准备个可用的域名,然后到CloudFlare配置域名解析,需要先到域名注册商家添加CloudFlare的NS接管,然后如下图,增加一条A记录,我这里用ddns.zhujiget.com,TTL设置自动,只使用解析,后面的CDN不要开启,点击下变成灰色图标;

添加好域名解析后,前往https://dash.cloudflare.com/profile/api-tokens获取全局API,把API里面的一长串字符复制保存下来;

Python脚本配置
1、通过SSH工具连接上VPS服务器后,输入以下命令获取脚本,代码较长可复制粘贴,以免出错; 一般系统都会带有curl,但如果出错,就需要先安装curl。
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
2、修改配置文件,命令行输入:vi /usr/local/bin/cf-ddns.conf
{ "domains": [ { "hosts": [ { "id": "", "ipv4": "", "ipv6": "", "name": "ddns", #以ddns.zhujiget.com为例,此处填入ddns "types": ["A"] } ], "id": "", "name": "zhujiget.com" #以ddns.zhujiget.com为例,此处填入zhujiget.com } ], "user": { "api_key": "CLOUDFLARE_API_KEY_HERE", #填入API "email": "CLOUDFLARE_EMAIL_HERE" #填入CloudFlare邮箱 } }
3、保存并退出,输入:python /usr/local/bin/cf-ddns.py运行脚本,如果提示内容有update successful,表明运行成功。
4、配置crontab定时运行,命令行输入:crontab -e ,弹出vi编辑界面,这里设置每10分钟运行一次cf-ddns.py脚本;
*/10 * * * * /usr/local/bin/cf-ddns.py >/dev/null 2>&1
5、保存并退出。输入:service crond status,可以看到contab的运行状态。如果contab服务没有打开,建议参考http://man.linuxde.net/crontab教程,它涵盖了crontab服务状态的启动,重启,查看,简单配置等内容。
6、接着可以自己在客户端用域名代替IP地址测试下。
如以上脚本不可用,可以尝试换以下其它脚本使用,不过本人没测试过。
https://gist.github.com/bensonfx/487a7fece19916f3e66a31ce782e76d2
- 站长微信
- 请备注来意,伸手党勿扰
-
- 本站QQ群
- 进群咨询,请注意态度友好
-
2020年8月17日 上午9:08 1F
博主~为什么一定要关掉cdn啊~
2020年8月17日 上午9:12 B1
@ XenWayne 开启CDN获取的是CF的IP,你的目的难道不是获取动态服务器的IP?