不管你是自建代理 VPS 还是订阅了第三方机场,都遇到过这种头疼事:
“正在开会或者玩游戏,网络突然卡死!折腾半天才发现,原来是后台用的那个代理节点早在半小时前就被阻断或者宕机了!”
“手里有几十个自建节点,每次想知道哪个节点坏了,都要手动打开客户端一个个点‘延迟测试’,效率低下。”
在 2026 年,高手玩代理的核心原则是:永远不要用自己的肉眼去测试节点存活。
我们需要一套能够在后台 24 小时静默运行的自动化健康检查与告警机制。一旦某个节点发生延迟飙升、阻断或硬死,系统能在 5 秒钟内通过 Telegram、飞书或微信向你推送警告,并自动将流量切到备用节点!
本文用大白话带你搭建一套极简、免费且零成本的节点监控告警系统!
一、一句话搞懂:什么是代理健康检查?
我们先用一个形象的比喻看懂它的工作原理:
普通人看节点:等打不开网页了,才手忙脚乱地去点“测试延迟”。
自动化健康探针:相当于聘请了一个 24 小时巡逻的保安,每隔 1 分钟去敲一下每个节点的门(发一个 HTTP/TCP 心跳请求)。
一旦连续 3 次敲门没回应,保安立刻用手机发消息通知你:“香港 01 节点已宕机,已为你自动切到日本 02 节点!”健康检查包含两个核心环节:
- 心跳探测(Probing):定期向目标节点发送 TCP 握手或 HTTP
generate_204请求。 - 通知告警(Notification):发现异常时,触发 Webhook 推送到你的手机通知端。
二、三种零成本监控告警方案对比
根据你的使用场景,可以选择最适合的方案:
| 方案名称 | 部署门槛 | 适合人群 | 核心优势 |
|---|---|---|---|
| 方案 1:Mihomo / Sing-box 内核自带健康检查 | 零门槛 (填配置文件) | 普通个人用户 | 零代码,自动跳过坏节点,实现无感热备。 |
| 方案 2:Shell + Telegram 机器人脚本 | 极低 (复制粘贴) | VPS 自建党 / 运维 | 纯轻量,几行代码就能在手机上收到推文报警。 |
| 方案 3:Cloudflare Workers 免费云端探针 | 低 (免费 Serverless) | 多节点管理 / 团队 | 无需本地开机,全球 Anycast 节点代替你巡检。 |
三、实战一:Mihomo (Clash Meta) 内核自动剔除坏节点
最简单的防护,是在你的客户端配置中引入 url-test 或 fallback 自动故障转移机制:
proxy-groups:
# 自动选择延迟最低且存活的节点
- name: "⚡ 自动选优"
type: url-test
url: "http://www.gstatic.com/generate_204" # 健康检查地址
interval: 300 # 每 300 秒检测一次
tolerance: 50 # 延迟差小于 50ms 不频繁切换
proxies:
- "香港 01 节点"
- "日本 01 节点"
- "新加坡 01 节点"
# 备用自动容灾(主节点挂了才切备用)
- name: "🛡️ 故障转移"
type: fallback
url: "http://www.gstatic.com/generate_204"
interval: 180
proxies:
- "主力 01 节点"
- "备用 02 节点"四、实战二:使用 Telegram 机器人实现秒级手机推送告警
如果你手头有几台 VPS 节点,想在节点宕机时让手机收到 Telegram 推送通知,只需在你的 Linux 主机或软路由上添加以下 Shell 探针脚本:
1. 极简探针脚本 (check_node.sh)
#!/bin/bash
# 配置你的 Telegram Bot Token 和 Chat ID
TG_BOT_TOKEN="123456789:ABCdefGHIjklMNOpqrsTUVwxyZ"
TG_CHAT_ID="987654321"
# 需要监控的代理 IP 或域名与端口
NODE_NAME="美国洛杉矶 01 节点"
NODE_HOST="104.238.120.45"
NODE_PORT="443"
# 使用 nc 或 curl 检查端口连通性
nc -z -w 5 $NODE_HOST $NODE_PORT
if [ $? -ne 0 ]; then
# 端口不可达,触发 Telegram 报警消息
MESSAGE="⚠️ <b>节点宕机告警</b>%0A%0A<b>节点名:</b>${NODE_NAME}%0A<b>主机:</b>${NODE_HOST}:${NODE_PORT}%0A<b>状态:</b>TCP 握手超时!请及时检查。"
curl -s -X POST "https://api.telegram.org/bot${TG_BOT_TOKEN}/sendMessage?chat_id=${TG_CHAT_ID}&text=${MESSAGE}&parse_mode=HTML" > /dev/null
fi2. 设置定时任务 (Cron)
运行 crontab -e,添加以下命令使探针每 5 分钟自动巡检一次:
*/5 * * * * /bin/bash /root/check_node.sh五、常见报错与故障排查速查表
在配置探针和告警时,遇到问题请按下表自救:
| 现象 / 报错 | 大概率的原因 | 解决办法 |
|---|---|---|
| Telegram 接收不到告警推送 | 1. TG_BOT_TOKEN 或 CHAT_ID 填错;2. 运行脚本的主机无法直连 api.telegram.org。 | 1. 在浏览器里访问 https://api.telegram.org/bot<Token>/getUpdates 获取正确 ID;2. 给 curl 添加代理参数 -x http://127.0.0.1:7890。 |
| 探针频繁发送“假警报” | 检测间隔太短或网络偶尔发生正常抖动。 | 将心跳判定条件改为**“连续 3 次探测均失败”**再发送告警,避免偶发丢包引发骚扰。 |
| Mihomo 频繁自动切换节点 | tolerance 容忍差值设得太小(比如设成了 5ms)。 | 将 tolerance 设为 50 到 100,允许节点间有微小的正常延迟波动。 |
六、怎么验证你的告警系统配置成功?
- 手动触发网络中断:在测试 VPS 上临时运行
iptables -A INPUT -p tcp --dport 443 -j DROP封锁端口。 - 观察手机通知:在 5 分钟内,你的 Telegram 或飞书是否成功弹出了包含节点名字和 IP 的红字报警消息。
- 恢复端口:运行
iptables -F解锁端口,观察是否收到恢复正常的通知。
七、一句话总结
告别静默断网,探针帮你守门! 客户端开启
fallback自动故障转移,VPS 上挂个 Telegram 告警脚本,从此节点宕机秒知道、流量无感秒切换!
