设计目的:
苦于免费的移动网络对时而抽风无法连接cloudflare以及一些IP,出现如cloudflare 1033,502等错误如:
Error 1033
Argo Tunnel error
What happened?
You've requested a page on a website (kuma.zsanjin.de) that is on the Cloudflare network. The host (kuma.zsanjin.de) is configured as an Argo Tunnel, and Cloudflare is currently unable to resolve it.
What can I do?
If you are a visitor of this website:
Please try again in a few minutes.
If you are the owner of this website:
Ensure that cloudflared is running and can reach the network. You may wish to enable load balancing for your tunnel.
导致大批服务瘫痪,本工具便应运而生,本工具名为ZsanUptime,通过使用开源工具uptime-kuma的api,能够识别网页状态并通过EditCFDNS([本站原创工具]EditCFDNS–批量更新修改托管在Cloudflare的DNS设置)的功能自动更改dns,并发邮件通知。就是读取预设的dns设置,然后通过cloudflare的api,快速地更新dns设置,并发邮件通知。对于小企业或者个人来说是比较简单直接实现分布式部署的方法。
下载地址:
https://wwz.lanzout.com/b02u2446je
密码:sanjin
使用前提:
在cloudflare上托管域名、多个网页服务通道如frp、cdn、cloudflared等各种内网穿透工具或者其他托管服务。
你已经知道EditCFDNS的使用(最好还懂得快速预设dns配置文本工具SetDNS的使用)。
相关链接:
[本站原创工具]EditCFDNS–批量更新修改托管在Cloudflare的DNS设置
[本站原创工具]SetDNS–配套EditCFDNS的工具–快速配置dns文本
适用平台:
windows、linux
使用方法:
1、部署uptime-kuma
项目支持中文,地址:https://github.com/louislam/uptime-kuma
建议使用docker一键搭建,如果你使用的是windows,建议使用wsl2来使用docker,参考:试试 WSL2?它是一款免费、极速的服务器解决方案,再也不用租高价低配的服务器啦!
如果你已经安装了docker,可用以下命令一键搭建,然后在3001端口访问,也可尝试用frp或者cloudflared tunnel进行内网穿透(本站均有教程),http://localhost:3001
docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1
部署后,将需要被监控的网页设置好,uptime-kuma还提供了邮件通知异常网页,配置比较容易上手,不做过多讨论
获取uptime-kuma的api密钥:
点击设置,选择api密钥,创建一个即可
2、配置环境变量
本工具应和EditCFDNS([本站原创工具]EditCFDNS–批量更新修改托管在Cloudflare的DNS设置)放在同一个目录,并兼容同一个“.env”文件,如果你已经编辑好EditCFDNS的环境变量值,则根据需要调整以下环境变量参数即可,注意:
uptime_api-key的值为上一步获取的api密钥。
uptime_url为你部署的uptime-kuma的链接地址,网页路径为/metrics,如https://up.zsanjin.de/metrics 、https://111.111.111.222/metrics等
uptime_monitored-websites为你在uptime-kuma所监控的网页,用半角逗号“,”隔开
uptime_api-key=uk1_xxx #必须
uptime_url=http://1.1.1.1/metrics #必须
uptime_monitored-websites=www.zsanjin.de,pay.zsanjin.de,oneapi.zsanjin.de,http://r.zsanjin.de,https://n.zsanjin.de,v.zsanjin.de,k.zsanjin.de #必须,可以不加http(s)协议,建议不加http(s)协议,但网址必须与uptimekuma监控的网址一致
HTTP_PROXY=127.0.0.1:10809 #与EditCFDNS共用,不用代理就删除或注释本条,使用了代理就必填正确信息,否则无法连接
HTTPS_PROXY=127.0.0.1:10809 #与EditCFDNS共用,不用代理就删除或注释本条,使用了代理就必填正确信息,否则无法连接
SOCKS_PROXY=127.0.0.1:10808 #与EditCFDNS共用,不用代理就删除或注释本条,使用了代理就必填正确信息,否则无法连接
uptime_check_interval=60 #可选,每隔60秒获取一次网页状态
uptime_LOG_LEVEL=INFO #可选,日志等级
uptime_MONITORED_STATUS_EXCEPTIONS=DOWN #可选,当网页状态为down时更换dns,可以设置为如:=PENDING,DOWN 代表网页PENDING,DOWN时更换dns,一共有:=MAINTENANCE,PENDING,DOWN,UP
uptime_DEFAULT_TTL_BUFFER=600 #可选,600秒,更换dns后的缓冲生效时间,在此期间即使网页状态异常也不会更改dns
uptime_LOG_RETAIN_DAYS=10 #可选,日志保留天数
3、运行程序
本程序的日志在uptimelog文件夹下,定期请求uptime-kuma的api获取网页状态,并计数检测的次数,发现异常则调用EditCFDNS执行dns更新命令,如果设置了uptime_DEFAULT_TTL_BUFFER=600,则代表在10分钟内即使网页故障也不会反复执行dns更新命令,这是给ttl生效给出缓冲时间。如果你在uptime-kuma以及EditCFDNS设置了邮箱,那么你将会收到网页异常通知,随后收到dns更新的通知,如果顺利的话很快就会收到网页恢复正常的通知。
windows直接双击运行即可
linux需要给可执行权限,以及开机启动方法如下
chmod +x editcfdns #给可执行权限
./zsanuptime #直接运行
设置开机启动,假设当前目录在/root/sanjinup文件夹下
sudo nano /etc/systemd/system/zsanuptime.service #创建一个.service文件
如果你的文件目录不在/root/sanjinup下,请修改下面内容再进行粘贴
[Unit]
Description=ZsanUptime Service
After=network.target
[Service]
Type=simple
ExecStart=/root/sanjinup/zsanuptime
WorkingDirectory=/root/sanjinup
EnvironmentFile=/root/sanjinup/.env
Restart=always
User=root
[Install]
WantedBy=multi-user.target
然后重载systemd守护进程
sudo systemctl daemon-reload
常用命令
# 启动服务
sudo systemctl start zsanuptime.service
# 检查服务状态
sudo systemctl status zsanuptime.service
# 设置服务开机自启
sudo systemctl enable zsanuptime.service
总结这一套分布式部署自动更新DNS工具的使用:
这套工具指的是ZsanUptime、EditCFDNS、SetDNS。
- 首先用SetDNS设置好网页的DNS信息生成了txt
- 然后在.env文件中配置好EditCFDNS所需要的账户信息即可
- 再是部署好Uptime-kuma,配置好监控的网址,获取api以及Uptime-kuma部署的地址
- 最后在.env文件中填入需要被监控的网址,运行ZsanUptime即可监控网页状态,并在异常时更新DNS🎉🎉🎉🎉🎉
如果碰到bug可以直接在下方评论区提交
Comments 2 条评论
这是一条私密评论
@1641558482 这个是普通的开源主题,还好吧,开梯子体验会好点