AI 摘要

「以ZsanUptime为名,盛情推出一款监控网页状态并更新异常网页DNS的工具。其目的在于解决免费移动网络无法连接Cloudflare以及IP问题,如1033、502等错误。通过使用uptime-kuma的api,ZsanUptime可以自动更改DNS设置,并发送邮件通知。适用于Windows和Linux平台。部署步骤和环境配置具体请参考文章。」

设计目的:

苦于免费的移动网络对时而抽风无法连接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

Github-Card

建议使用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可以直接在下方评论区提交

如果该工具对你有帮助也希望可以在下发链接或者下发评论区上的猪猪罐打赏~ 

感谢请我吃辣条
感谢请我吃泡面
感谢请我喝奶茶