DNS故障转移脚本:自动检测故障、自动修改DNS解析,支持 cloudflare、dnspod、华为云
侧边栏壁纸
  • 累计撰写 5 篇文章
  • 累计收到 0 条评论

DNS故障转移脚本:自动检测故障、自动修改DNS解析,支持 cloudflare、dnspod、华为云

ZERO零号机
2023-05-09 / 0 评论 / 599 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2023年05月11日,已超过776天没有更新,若内容或图片失效,请留言反馈。

大部分的 DNS 厂商对于 故障转移 之类的服务都收取费用,优点是简单,效率高,无需第三方参与,但收费。而此脚本可简单实现 DNS 的故障转移,有个闲置的机器即可实现。

  • 原作者脚本支持 cloudflare 和 华为云 dns,支持 telegram 通知。本人稍微修改了下,也增加了 dnspod(国际) 的支持。
  • 本文是在部署过程中的一些心得及一些小修改,感谢原作者的脚本

准备工作

  • 用 root 登录 ssh,并新建一个目录,如 dns
  • 切换到 dns 目录,下载源码
mkdir -p /root/dns && cd /root/dns
git clone https://github.com/BlueSkyXN/DNS-AUTO-Switch .
chmod +x /root/dns

后台运行 go 程序

  • 运行 go 文件,用于后端的 ping api
  • 自行安装supervisord或者用宝塔的supervisord进程管理,或screen或nohup。
  • 可以进行 nginx 反代,实现 ping api 跟脚本分离,本文以本地运行为例
  • 本文以宝塔的supervisord进程管理为例
  1. 添加进程

添加进程

  1. 运行后的日志,出现此日志代表成功运行,如未出现请检查配置

运行后日志


修改配置文件

运行文件测试

  • 先在 root 目录建立 .ip_域名文件.txt 例如:.ip_www.lyls.xyz.txt
  • 在 dns 目录运行脚本
  • 修改配置文件主 ip 为不可用 ip,运行脚本进行测试。测试完成后更改主 ip 为可用 ip
 # cloudflare 运行 cf.sh 。dnspod 运行 dnspod.sh,这里以 cloudflare 为示例
 
 ./cf.sh

2023-05-09 20:34:19 开始读取配置
2023-05-09 20:34:19 API读取成功
未发现服务故障。无需更新 DNS 记录. 

用定时任务调度脚本

 # 运行定时任务
 crontab -e

 # 填写定时设置,本文示例是每分钟运行一次并记录日志到文件。如是dnspod 修改 cf.sh 为 dnspod.sh
 */1 * * * * sh /root/dns/cf.sh >> /root/dns/log.txt 2>&1
 

F.A.Q

  • 修改配置文件自定义tcp检测端口
 # 22换成你想要的端口
CHECK=$(curl -s "$PING_API/$ORG_IP/22")
基于https://github.com/BlueSkyXN/DNS-AUTO-Switch修改调整测试
作者原文:https://www.blueskyxn.com/202102/4210.html
感谢原作者的付出!
0

评论 (0)

取消