Top Menu

如何利用DigitalOcean的API自动切换Floating IP并更新CloudFlare记录

如何利用DigitalOcean的API自动切换Floating IP并更新CloudFlare记录

环境

  • PHP7
  • Debian
  • DigitalOcean
  • CloudFlare

流程

  1. Test TCP Status(TCP Status is FALSE)
  2. Unassign old Floating IP from Droplet
  3. Assign new Floating IP to Droplet
  4. Update new Floating IP to Cloudflare
  5. Delete old Unassigned Floating IP
  6. Test TCP Status Again(TCP Status is TRUE)

初始化

替换代码高亮行的DigitalOcean_API_KEY以及CloudFlare_API_KEY

替换内容参见官方文档:

DigitalOcean中Droplets的Name要和绑定的域名一致,示例中Droplets的Name为nyc.minirplus.com,Droplets绑定的域名也是nyc.minirplus.com。

使用方法

将代码保存为php文件 auto_swap_ip_digitalocean.php ,放入 /usr/local/sbin ,然后先在shell中进行手动测试

测试完毕后通过crontab进行定时调用

执行缓存文件保存在当前用户的根目录下的 data_auto_swap_ip_digitalocean_'.$server_name.'.json

Test TCP Status的错误次数在 $max_tcp_test_time 设置,默认为15次错误,如果定时任务设置为每分钟的话,15次检测错误会开始激活Swap IP操作。

代码

 

 

 

2 comments

  • Hello, guest
  • 老师你好. "替换代码高亮行的DigitalOcean_API_KEY以及CloudFlare_API_KEY"这句话啥意思呀?是这么替换吗?https://www.helloimg.com/image/Gk9Huc
    • author
      嗯,官方API请求里的认证字段payload ,cloudflare:https://api.cloudflare.com/#getting-started-requests,digitalocean: https://docs.digitalocean.com/reference/api/api-reference/#section/Authentication

Powered by WordPress. Designed by WooThemes