mistgate 文档
中文

在管理后台:运行状况

运行状况

了解面板如何像真实客户端一样检查每个协议配置、节点诊断会检查和修复什么,以及告警如何打开、关闭和静默。

本页内容

Mistgate 从两方面监视集群。面板会像客户端应用一样连接每个节点上的每个协议配置(客户端视角检测);每个节点上的 Agent 会检查自身主机(节点诊断)。告警根据两类检测结果和节点状态生成。所有内容都在运行状况页面的告警、检测和诊断标签页中;节点页面也有自己的诊断标签页,并在概览标签页中显示该节点的检测结果。

客户端视角检测#

检测如何工作#

面板会为节点上的每个协议配置使用内置客户端建立隧道,并通过隧道请求两个页面:

请求 能证明什么
https://www.gstatic.com/generate_204 隧道能够传输流量。此页面必须返回 204。之后面板会通过同一连接再请求一次;各项耗时的含义见下文。
https://www.cloudflare.com/cdn-cgi/trace 流量的出口位置:出口 IP 和所在国家。

主机名由节点解析,而不是由面板解析,因此节点上的 DNS 解析器故障会导致检测失败。

检测结果分为以下几种:

  • 正常:两个页面都返回响应。
  • 部分失败:隧道正常,但两个页面中有一个没有响应。数字会以警告颜色显示。部分失败结果本身不会触发告警。
  • 失败:隧道未建立,或两个页面都没有响应。

使用的客户端取决于协议:

  • Hysteria2。面板内部运行官方 Hysteria2 客户端。它会连接节点地址和协议配置的端口(不使用端口跳跃范围,因此无法检测被封锁的跳跃范围)。客户端使用协议配置的混淆方式(Salamander 或 Gecko),并遵循真实客户端的证书规则:自签名证书会固定为节点报告的指纹;其他证书会按协议配置的域名(SNI)检查。
  • AmneziaWG。面板进程在用户态网络栈中运行 amneziawg-go:不创建网络接口、不需要 root,也不会向面板服务器的路由表添加内容。它使用真实设备收到的相同配置。每轮检测都会创建一个新设备,因此每轮也会检查握手。节点不会响应未知 peer 或混淆方式错误的数据包,因此握手缺失和 UDP 端口被封锁看起来相同:两者都会报告超时。
  • VLESS。每次尝试都会运行一个短时辅助进程 xray-core,并使用与订阅链接相同的解析后客户端参数。REALITY 会检查服务器身份;TLS 会根据协议配置的服务器名称验证证书链。设置 CDN 覆盖的协议配置会连接 CDN 主机和端口,并将该主机用于 SNI 和 HTTP Host;未设置 CDN 时,则连接节点地址和入站端口。CDN 证书的 TLS 验证始终启用,因此面板不会收到 CDN 后面的自签名源站证书。检测范围包括通过 TCP Vision 或 XHTTP 运行的 REALITY,以及通过 XHTTP 或 WebSocket 运行的 TLS。CDN 路径失败时会显示为带有 CDN 主机名的 via_cdn 检测失败;CDN 入站不计入节点的「所有检测均失败」严重告警。集群会将入站保持为待处理状态,直到已连接的节点报告所需能力:REALITY 为 vless/1 或 vless-self/1,TLS 为 vless-tls/1。入站处于待处理状态时不会运行客户端视角检测。

没有测试客户端的协议会显示为未检测。

每个节点的每个协议配置都会使用一个隐藏的系统账户:它不属于任何用户或设备,也不会出现在用户列表、订阅、配额或 MCP 工具中。VLESS 会为此账户使用普通且稳定的 UUID 凭据。Hysteria2 协议配置会将其限速为 2 Mbit/s。AmneziaWG 协议配置会为其分配协议配置客户端网段中的一个地址。

注意

检测从面板服务器发起。绿色检测结果只能证明面板所在网络中的客户端可以通过节点。它无法发现只发生在用户网络中的封锁。

计划#

内容 值
节点上每个协议配置的间隔 5 分钟。每个协议配置在间隔内都有固定偏移量,并会增加最多 10 秒的随机抖动,因此各轮检测会分散运行。管理后台中没有此项设置。
一轮检测 尝试一次;如果失败,则在 15 秒后重试一次。一轮检测的结果以最后一次尝试为准。
时间限制 握手 8 秒,每个页面 10 秒,每次完整尝试 25 秒。
协议配置持续失败时 每 60 秒检测一轮,以便快速确认故障并检测恢复。
同时运行的检测轮数 4。
新协议配置 30 秒内开始首次检测。
立即检测 立即为整个集群启动一轮检测(运行状况 → 检测),或为单个节点启动一轮检测(立即检测此节点)。每个协议配置每 30 秒最多检测一轮;如果在此之前再次点击,会显示「刚刚检测过」。

查看检测矩阵#

运行状况 → 检测是以节点为行、协议配置为列的表格。单元格会显示以毫秒计的响应时间或一种状态:

单元格 含义
123 ms 最近一轮检测通过。数字是响应时间,取近 1 小时的中位数。
数字下方带时钟的 2.6 秒 连接耗时 2 秒或以上,取近 1 小时的中位数。隧道正常,因此颜色不变。
✕ 失败 协议配置检测失败。
✕ 未启动 节点无法启动协议配置。
已关闭 你在此节点上关闭了协议配置。
无连接 节点离线。
未检测 面板没有此协议的测试客户端。
启动中 协议配置正在启动。
更新中 节点正在更新 Agent。
… 暂无结果:几分钟内会开始首次检测。
— 此协议配置尚未部署到此节点。

只有「失败」计为检测失败。其他状态都属于跳过的检测轮次:不会存储,也不会影响连续失败次数。

点击单元格可查看最近 24 小时的数据,每半小时一个柱形,高度为冷启动耗时(检测失败时显示为红色)、出口 IP 和连续失败次数。连续两轮检测失败后会打开告警。

检测轮次失败时,单元格会说明原因:

代码 管理后台显示内容
timeout 没有握手:UDP 流量可能未到达
auth 节点拒绝了面板检测账户
tls 证书或域名不匹配
refused 连接被拒绝:端口上没有监听程序
exit_unreachable 隧道正常,但节点无法通过出口连接互联网
http_status 测试站点返回错误

数字的含义#

这三个数字都是在面板服务器上测得的,而不是在用户的设备上。

数字 含义
响应 单元格中的数字。收到第一个响应后,面板立即通过同一连接再请求一次 generate_204:这是隧道已建立时一次请求的耗时,也就是用户实际感受到的速度。单元格显示近 1 小时的中位数;还没有中位数时显示最近一轮的值,再没有则显示冷启动耗时。
连接 从一轮检测开始到隧道承载第一个连接为止:Hysteria2 或 AmneziaWG 的握手,或 VLESS 的 TCP 加 REALITY 或 TLS。取近 1 小时的中位数。达到 2 秒或以上时,单元格会多出一行带时钟的数字。
冷启动 从一轮检测开始到收到第一个响应的第一个字节:握手、经隧道与测试站点新建的 TLS 连接,以及请求本身。24 小时柱形图显示的就是这个数字。旧版面板在单元格中显示的也是它。

将鼠标悬停在单元格上,或用 Tab 键移到单元格,可查看近 1 小时的响应和连接中位数、最近一轮的时间、响应和连接,以及最近 24 小时内通过和失败的轮次。在节点页面上,客户端视角检测中的各行显示相同的内容。

面板服务器丢失 UDP 时#

有些服务商会成批丢弃入站 UDP。这时,从面板服务器发起的 Hysteria2 或 AmneziaWG 检测要等待握手重试:QUIC 约 2.5 秒,WireGuard 约 5 秒。如果这些协议配置的连接需要数秒,而同一节点上的 VLESS 连接很快,问题出在面板所在的网络,而不在节点。

此时面板会在矩阵上方说明这一点,列出相关节点和慢速 UDP 轮次的占比。按近 1 小时计算,满足以下条件时显示此提示:

  • 某节点至少 20% 的 Hysteria2 和 AmneziaWG 轮次(且至少 3 轮)连接耗时 2 秒或以上;
  • VLESS 轮次中这样的不到 5%;
  • 如果完全没有 VLESS 协议配置,至少两个节点满足第一条。

用户不受影响:他们直接连接节点。检测仍会通过,也不会因此触发告警。如果提示反复出现,请询问面板服务器的服务商是否过滤入站 UDP 或设有速率限制,或者把面板迁到另一台服务器。

绿色代表什么#

绿色单元格表示,在最近几分钟内,来自面板所在网络的客户端已与此节点上的协议配置完成握手,并通过节点出口访问了两个知名站点。这不能证明端口跳跃范围正常、用户网络允许流量通过,或每个应用都能处理此协议配置。

国家视角检测#

能否从某个国家境内(默认俄罗斯)访问节点,由 Globalping、封锁名单和 TSPU 探测检测,在管理后台中有单独的部分可达性:见可达性。在这里,运行状况 → 检测以最后一列「从俄罗斯访问」显示结论,节点页面上则显示为一行。

节点诊断#

每个节点 Agent 都会运行 17 项主机检查。这些检查只读取内容:/proc 和 /sys 下的文件、少量配置文件,以及只读命令(systemctl list-*、nft list、timedatectl show、dmesg、journalctl -k)。任何更改都必须通过另一个单独确认的步骤执行(见下文「修复」)。

运行时间#

  • Agent 连接约 30 秒后运行一次,之后每 10 分钟运行一次(最多增加一分钟随机抖动)。
  • 在「运行状况 → 诊断」或节点的诊断标签页中选择重新检查,会立即请求节点检查,并等待最多 30 秒以获取报告。
  • 每项检查最多 10 秒,整轮检查最多 30 秒。检查卡住,或无法在当前主机上运行(例如处于容器中、没有 systemd 或不是 root),会显示为已跳过并说明原因,不会报告为正常。
  • 超过 25 分钟的报告视为过期:管理后台会将其灰显并显示报告的时间。离线节点仍会显示最近一次报告,但节点重新连接前无法执行修复。
  • 早于节点诊断功能的 Agent 会显示为「Agent 版本过旧,无法运行诊断」。请在更新页面更新它。

每个项目有四种状态:正常、需要关注(警告)、有问题(失败)和已跳过。

检查项目#

检查 检查内容 需要关注 有问题 修复
磁盘空间(disk_space) 使用 df 的方式统计 / 和 Agent 状态目录所在卷的已用空间及 inode。 已用空间达到 80%,或可用空间少于 1 GB 已用空间达到 92%、可用空间少于 300 MB,或 inode 已用 95% 当日志至少为 300 MB 时清理日志
系统日志大小(journald_size) 磁盘上的 systemd 日志大小。基线设置会将其限制为 200 MB。 超过 300 MB(限制未生效) 超过 1 GB 清理日志
挂起的进程(dstate_tasks) 三次采样中处于不可中断休眠状态的进程(每次间隔 2 秒)、内核日志中的 QXL/TTM 错误,以及 CPU 空闲 10 分钟时负载仍达到 CPU 数量。 存在挂起进程 连续两轮检测到挂起进程、QXL/TTM 挂起,或出现空闲负载模式 无:从服务商控制面板重启服务器
时钟(time_sync) 与面板时钟的偏差以及 NTP 是否同步。 偏差超过 2 秒,或 NTP 未同步 偏差超过 30 秒 无:启用 NTP(timedatectl set-ntp true)
服务器 DNS 解析(resolver) 检查主机自己的 DNS 解析器能否解析 www.cloudflare.com、www.gstatic.com 和 www.google.com;对于国家为俄罗斯的节点,还会检查 gosuslugi.ru。每个域名检测 3 秒,并重试一次。 有一个域名解析失败,或响应中位时间超过 500 ms 两个或更多域名解析失败,或俄罗斯节点上的 gosuslugi.ru 解析失败 只有在同一轮检测中推荐的 DNS 解析器均有响应时,才修复 DNS 解析器
IPv6(ipv6) 检查全局 IPv6 地址,并通过端口 443 连接两个公共解析器,测试 IPv6 出站连接。 有 IPv6 地址但无法建立出站连接(收到 AAAA 记录的客户端会卡住) 无 无
其他 VPN 的残留(foreign_vpn) 检查 x-ui、Xray、remnanode、hysteria-server 和 wg-quick@ 的 systemd 单元,VPN 镜像的 Docker 容器,不属于 Mistgate 的 wg* 和 awg* 接口,以及正在运行的 xray、x-ui 和 sing-box 进程。 发现上述任一项 其中一项占用了协议配置端口 无:是否移除由你决定
非 Mistgate 防火墙规则(foreign_nft) 检查不属于 Mistgate 的 nftables 表。此检查无法看到旧式 iptables 规则。 外部表包含 nat hook 外部规则重定向、改写或丢弃协议配置端口或端口跳跃范围的流量 无
端口占用(port_conflicts) 检查协议配置端口、端口跳跃范围,以及 Hysteria2 协议配置的 HTTPS 伪装站点和 ACME 的 TCP 端口上的监听套接字。 端口跳跃范围内有外部监听程序、TCP 端口被外部进程占用,或协议配置之前无法绑定端口但当前已空闲 外部进程占用了协议配置端口 仅重启未能绑定端口的协议配置
网络基线设置(net_baseline) 检查 fq 默认 qdisc、BBR 拥塞控制、UDP 缓冲区最大值(net.core.rmem_max 和 net.core.wmem_max,至少 16 MiB)、Mistgate 的 sysctl 文件和 journald drop-in。新的 UDP 中继套接字从 net.core.rmem_default 和 net.core.wmem_default 继承的缓冲区至少为 1 MiB;net.ipv4.udp_mem 仍会限制 UDP 总内存。conntrack 表至少有 65,536 个条目和 16,384 个 bucket,同时保留更高的现有值。 设置与基线不符,或 conntrack 表使用率达到 80% 无 设置不符时恢复基线设置
证书(cert_expiry) 检查每个 TLS 协议配置实际提供的证书及其是否匹配域名,还会检查 Agent 自身连接面板的证书。 协议配置证书剩余不到 14 天;Agent 证书剩余不到 5 天 证书剩余不到 3 天、已过期或域名不匹配;Agent 证书剩余不到 1 天 仅重启使用自签名证书的协议配置
内存(memory_pressure) 检查可用内存、swap、内存压力(PSI)以及过去 24 小时内核日志中的 OOM 终止记录。 可用内存少于 12%、压力下 swap 使用率超过 50%,或发生 OOM 终止 可用内存少于 5%、压力严重,或 OOM killer 终止了 Agent 或 VPN 引擎 无
CPU softirq(cpu_softirq) 检查 10 分钟内 softirq 平均占比和 CPU 总使用率。采集到 30 个样本前会跳过。 softirq 达到 50% softirq 达到 90%,或 CPU 达到 97% 无
内核头文件(kernel_headers) 检查 AmneziaWG 内核模块所需的头文件、dkms、make 和 gcc。没有 AmneziaWG 协议配置时会跳过;仅当 AmneziaWG 运行在用户态时作为信息显示。 请求使用内核模式,但工具缺失且模块未运行 无 无:参见 AmneziaWG
AmneziaWG 后端(awg_backend) 检查 AmneziaWG 使用的后端:内核模块或用户态。没有 AmneziaWG 协议配置时会跳过。 主机防火墙丢弃转发流量(Docker 中常见) 没有可用后端:缺少 /dev/net/tun、服务文件过旧,或内核模式下缺少模块 报告 unit_outdated 且 Agent 提供修复时刷新服务单元
WARP 出口(warp_path) 检查节点的 WARP 隧道及路由。节点没有 WARP 账户且没有协议配置经 WARP 出口时会跳过。 协议配置经 WARP 出口时,WARP 处于暂停状态;或隧道已建立,但最近一次检测失败 协议配置经 WARP 出口,但节点没有账户;主机与 WARP 的路由表、规则优先级或接口名称冲突;没有 WireGuard 后端;或 WARP 离线 隧道离线或最近一次检测失败时,检查 WARP;如果离线则重连
单元版本(unit_generation) 检查运行 Agent 的 systemd 单元是否与当前构建版本一致。Agent 手动启动时会跳过。 单元版本早于当前构建 无 刷新服务单元;Agent 会重启,连接可能中断几秒

没有 IPv6 但运行 WARP 的节点没有问题:WARP 使用 IPv4 端点;管理后台会将 IPv6 项显示为正常。

警告或问题会打开告警(见下文「告警类型」)。证书检查是个例外:它会打开「证书即将到期」告警,而不是诊断告警。

修复#

一共有 6 项修复。它们已编译进 Agent:面板只发送修复 ID,Agent 会检查参数(必须是节点正在运行的协议配置)。修复不会安装软件包或删除数据。

按钮 执行内容 提供来源
清理日志 journalctl --vacuum-size=200M --vacuum-time=7d 系统日志大小、磁盘空间
恢复基线设置 重新写入 Mistgate 的 sysctl 文件(/etc/sysctl.d/90-mistgate.conf:设置 fq、BBR 和至少 16 MiB 的 UDP 缓冲区最大值)、journald drop-in(/etc/systemd/journald.conf.d/90-mistgate.conf:将日志限制为 200 MB)以及 SSH 防护(限制每个地址的新 SSH 连接速率)。 网络基线设置
重启协议配置 重启节点上的一个协议配置,或所有启动失败的协议配置。连接会中断几秒,然后自行恢复。 端口占用、证书(自签名)
修复 DNS 解析器 将主机 DNS 解析器指向节点的此节点的 DNS 服务器(节点设置);如果使用的是服务器自身的 DNS 解析器,则改为所在国家的节点默认设置:俄罗斯节点使用 Yandex DNS(77.88.8.8、77.88.8.1),其他节点使用 1.1.1.1 和 8.8.8.8。如果使用 systemd-resolved,则写入 drop-in(/etc/systemd/resolved.conf.d/90-mistgate.conf);否则重写 /etc/resolv.conf,并将原文件保存为 /etc/resolv.conf.mistgate.bak。 服务器 DNS 解析
检查 WARP / 离线时重连 立即重新运行 WARP 检查。只有隧道已离线或此次检查达到失败阈值时,才会使用同一账户重新创建已配置的隧道及其路由;否则不会更改任何内容。重连期间,经 WARP 的协议配置可能短暂无法传输流量。如果在点击应用前隧道已恢复,则不会执行任何更改。 WARP 出口
刷新服务单元 使用固定的临时 systemd 单元运行已安装的二进制,以写入编译好的单元模板、重新加载 systemd 并重启 Agent。节点身份和状态保持不变;连接可能中断几秒。 单元版本;报告 unit_outdated 的 AmneziaWG 后端

修复分为两步:

  1. 点击诊断项目或其告警上的修复按钮。面板会请求节点说明将执行什么操作(「正在询问节点它会怎么做…」);节点会返回一份不会更改任何内容的试运行计划。
  2. 对话框会显示计划,例如修复前后的日志大小,或要重启的协议配置以及会中断的连接数。选择应用会严格执行该计划。

计划有效期为 10 分钟,只能使用一次,并且绑定到节点、修复及其参数。每个节点一次只能运行一项修复。两个步骤都会记入审计日志。修复成功后,节点会重新运行受影响的检查;已被修复解决的告警会以「已修复」状态关闭。刷新服务单元时,应用结果会在重启前发送到面板;Agent 重新连接后会再次报告。应用修复需要所有者权限。

修复失败时,对话框会说明原因:

错误 含义
unknown_fix 此节点的 Agent 不认识该修复
bad_params 节点拒绝了这些参数
not_applicable 问题已消失,或主机无法执行该修复
unsupported_host 此类主机不支持该修复
busy 节点正在执行其他修复

没有修复操作的检查会打开手动处理区块,并显示要在节点上运行的命令:启用时间同步、查找端口占用进程、读取防火墙规则,或提示从服务商控制面板重启服务器。

此节点属正常#

有些警告是可以接受的实际情况:例如 Docker 自己的 nftables 表,或主机没有可用 IPv6。诊断项目或其告警上的对此节点属正常会阻止此项目触发告警,也不会将其计入角标。项目会显示为已标记为正常,并说明由谁在何时接受。

  • 只能接受警告(需要关注),不能接受问题;证书警告也不能接受。
  • 接受操作针对节点报告的具体情况(其 detail code)。节点针对该项报告了不同情况或检查转为问题时,接受状态会自行结束。无法发送 detail code 的旧 Agent 无法接受其警告。
  • 重新计入会撤销接受操作。
  • 已接受警告对应的告警会以「已标记为正常」状态关闭。

告警#

告警如何打开和关闭#

告警取决于当前状态。每 10 秒,以及每轮检测和每份诊断报告完成后,面板都会重新判断当前成立的条件:成立但尚无告警的条件会打开告警;条件不再成立时,对应告警会解决。每种类型、节点和对象(协议配置或诊断检查)最多有一个未解决告警。告警不依赖记忆中的事件,因此面板重启后仍会保留。

面板无法判断某个条件时,告警会保持原状,而不是关闭:离线节点的其他告警会保留(只有「节点无法连接」告警会重新判断);过期的诊断报告会保留诊断告警;节点离线前的检测结果会保留检测告警。

告警关闭后的一小时内再次触发时,会以原来的 ID 和开始时间重新打开。面板启动后的前 90 秒内不会打开「节点无法连接」告警,因为 Agent 仍在重新连接。

条件成立期间,告警保持打开,并计入角标。静默会让它在最长 7 天内不计入角标,静默结束后再次计入。条件消失后告警关闭,无论是否静默;条件在一小时内再次出现则重新打开;告警在历史记录中保留 90 天。 活动 计入角标 已静默 最多 7 天 已关闭 保留 90 天 条件成立 条件消失 一小时内再次出现 静默 静默结束 条件消失

告警类型#

管理后台标题 类型 严重性 触发条件
节点无法连接 node_down 严重 Agent 已 10 分钟没有连接。更短的中断会记录为事件,不会触发告警。
主机闪断 host_blip 提示 仅作历史记录:连接中断后 10 分钟内恢复,且未重启。此告警不会处于活动状态。
在线但无流量 no_traffic 严重 Agent 已连接且协议配置正在运行,但节点上所有已检测协议配置都连续两轮失败。节点状态会变为「无流量」。
「<profile>」客户端视角检测失败 check_failed 警告;当它是节点上该协议唯一的协议配置时为严重 在线节点上,部分(但不是全部)协议配置连续两轮检测失败。
协议配置端口 UDP 丢包 port_lossy 警告 最近一次检测发现已启用入站的当前端口丢包。重新检测正常,或入站更改端口、被停用、移除或节点退役后,告警会关闭。
节点在该国无法访问 country_blocked 警告 国家视角检测连续两轮得到 blocked 或 tcp_blocked(来自 Globalping、TSPU 探测或两者)。连续两轮 ok 后关闭;unknown 的轮次不改变状态。可像其他告警一样静音。
面板无法连接多个节点 check_failed(集群范围) 警告 最近一轮中,至少 80% 的已检测协议配置失败;这些节点来自至少 3 个不同的服务商。问题可能在面板自身的连接:节点级检测告警会暂停,直到一轮检测通过。来自至少 2 个服务商的节点若出现新的失败(连续失败次数为 1–3),也会触发一条集群级警告;不会触发节点级告警,现有告警保持不变;连续失败达到 4 次(约 20 分钟)后,再按节点判断。
诊断项目标题 doctor_warn / doctor_fail 警告 / 严重 诊断检查报告需要关注 / 有问题。没有 AmneziaWG 协议配置的节点上,内核头文件警告属于提示。
节点状态与面板不一致 state_drift 警告 自动完整重发后,节点应用的配置仍与面板不同。
证书即将到期 cert_expiry 警告;剩余不到 3 天、已过期或域名不匹配时为严重 来自节点诊断的证书检查。没有诊断功能的 Agent 会由面板自行检查协议配置证书(剩余不到 14 天时触发)。
节点更新已停止 update_failed 警告 节点拒绝更新、更新后未通过检查,或面板重启后无法确认更新步骤结果,导致滚动更新暂停。继续、取消或替换滚动更新后告警会关闭。参见更新。
用户在访问到期后仍在尝试连接 access_ended 警告 订阅已过期或流量配额已用完的用户在过去 6 小时内获取了订阅。
用户可能有连接问题 user_connection 提示 AmneziaWG 设备从未连接或密钥已过期;或活跃用户最近没有流量,却仍在反复获取订阅。
有应用因设备数上限被拒绝 device_limit 警告 过去 24 小时内,有人确实因设备数上限被拒绝:在限制或严格模式下是新的应用,或者是无法创建的密钥。每个用户一条告警。24 小时内没有新的拒绝后,告警会关闭。在仅计数模式下不会拒绝任何人:事件「已达到设备上限」只是历史记录,不会产生告警。Telegram 只在告警打开时通知一次,关闭时不发消息。参见订阅。
用户尝试使用 BT 下载 torrent 警告 用户在过去 24 小时内至少有一条被拦截的 torrent_attempt 事件,且包含 evidence。每人只有一条告警,统计所有节点。24 小时内没有新的尝试后告警会关闭。告警打开时 Telegram 会通知一次(关闭时不通知),因此每人每天最多通知一次。节点无法归属到用户的尝试不会触发告警;不包含 evidence 的旧 Agent 事件也不会触发告警。参见BT 下载拦截。
部分用户的连接中断 users_impacted 警告 一小时中的 20 分钟过后,该小时的峰值不超过过去 7 天该小时中位数的四分之一,且基线用户数至少为 3。

这些告警根据面板已存储的用户、设备和每小时峰值数据生成。关于用户的告警(access_ended、user_connection、device_limit、torrent)会显示在运行状况页面的用户标签页和用户页面的连接区块中,不会列入节点告警,也不会计入告警角标;users_impacted 针对节点,因此保留在节点告警中。

流量告警原因会指出可能的原因:

诊断 条件
UDP 端口被封锁 一个协议配置超时,但节点上的另一个协议配置在其他端口有响应;或者整台节点在一个端口上超时:服务商似乎封锁了该 UDP 端口。
所有 UDP 均被封锁 每个协议配置都超时,端口为 443 或至少 2 个端口:服务商似乎封锁了所有入站 UDP。
WARP 出口不可用 经 WARP 出口的协议配置失败,但节点上同一协议的直连协议配置正常。
auth、tls、refused、exit unreachable、测试站点返回错误 检测错误代码,以普通文字说明。
混合原因 每个协议配置都失败,但失败原因各不相同。

API 中还存在两种类型,但面板不会将它们作为告警触发:用户用完配额(用户状态会显示此情况),以及看起来被共享的订阅(记录为事件:「一个订阅链接每天在 N 个网络中使用」)。

严重性和角标#

告警分为严重、警告或提示。页眉和概览中的角标会统计未静默且非提示级别的活动告警。活动列表中会先显示严重告警,然后按时间显示最新告警。

告警结束方式#

历史记录 · 7 天列表会显示每条告警的关闭原因:

管理后台显示 解决方式 条件
已自行消除 cleared 条件不再成立。
已修复 fix_applied 诊断修复提供的告警在修复后 5 分钟内关闭。
节点已退役 node_retired 节点已退役。
节点已自行恢复 node_returned 无法连接的节点已重新连接。
已被更严重的告警取代 superseded 更严重的告警表示同一问题:「在线但无流量」会取代每个协议配置的告警;诊断问题会取代同一检查的警告;诊断中的 WARP 问题会取代 WARP 协议配置的失败;集群范围告警会取代节点级检测告警。
已标记为正常 accepted 所有者接受了此节点的诊断警告。

关闭的告警会保留 90 天。API 会返回最多 30 天历史记录,最多 200 条告警。历史记录较长时,列表下方会分页(每页 20、50 或 100 行);页码保存在地址中。

告警卡片上的按钮#

根据告警内容,卡片会提供:

  • 诊断修复(仅当诊断仍提供此修复且节点已连接时);
  • 重启协议配置(单个或所有启动失败的协议配置),并显示会中断的连接数;
  • 打开节点协议配置,以更改端口或域名;
  • 节点的 WARP 卡片;
  • 打开节点;
  • 诊断警告对应的对此节点属正常;
  • 静默。

静默#

静默的可选时长为:1 小时、到早上(08:00)、1 天或 7 天。最长静默时间为 7 天;取消静默会提前结束静默。

  • 静默告警仍会显示在列表中,并标记为「已静默至……」。系统仍会评估告警,条件消失时也会自动关闭。
  • 静默告警不会计入角标。
  • 严重性升高时,静默会结束,告警重新计入角标。
  • 静默操作会写入审计日志。
注意

可以在管理后台(页眉角标、概览、运行状况页面)、通过 API 和 MCP 查看告警。面板也可以在告警打开和解决时将其发送到 Telegram:参见 Telegram 告警。已静默的告警也不会通过 Telegram 发送。

节点页面上的事件#

节点的事件标签页和概览中的事件列表会保留时间线,帮助回答「昨晚发生了什么」:

事件 记录时间
已停止响应(从……起) 节点 10 分钟没有响应。
连接中断……后自行恢复 节点中断 1 到 10 分钟后恢复连接。
服务器已重启(连接中断……) 节点以不同的启动时间重新连接。
在……后重新上线 节点在「已停止响应」后恢复连接。
流量中断:Y 个协议配置中有 X 个检测失败 「在线但无流量」告警已打开。
流量恢复(……) 告警以「已自行消除」或「已修复」状态关闭,并显示持续时间。
「<profile>」客户端视角检测失败 对应协议配置的检测告警已打开。
「<profile>」检测已恢复(……) 告警以「已自行消除」或「已修复」状态关闭。
可能存在 BitTorrent 尝试:…… 节点的 BT 下载拦截功能拦截了客户端发起且识别为 BitTorrent 的流量。单独一次 uTP SYN 不会记录:同一用户和协议配置在 10 分钟内向 3 个目标端口发送至少 5 次此类数据包才会记录;其他匹配会立即记录。事件下方会说明协议、节点匹配到的内容以及目标端口。只有客户端隧道地址明确属于一个账户时才会显示用户名称,否则显示「未知用户」。不会存储客户端地址或目标地址,只会存储端口。参见BT 下载拦截。
已更新至…… / 更新失败 / 更新已回滚 一项滚动更新步骤已结束。

部分 Agent 警告尚无对应描述,会显示代码,并在下方显示错误文本:

代码 记录时间
torrent_guard_degraded 已启用 BT 下载拦截,但节点无法设置检查 AmneziaWG 流量的数据包队列(例如构建版本不包含此功能)。因此不会检查 AmneziaWG 流量;Hysteria2 会在其引擎内部检查,不受影响。
host_firewall_sync_failed Agent 无法同步服务器 UDP 端口的 UFW 规则、你设置的 UFW 规则拒绝了其中一个端口,或运行中的 firewalld 没有开放这些端口。事件会列出服务器防火墙必须允许的 UDP 端口和端口跳跃范围。问题恢复后会记录 host_firewall_sync_recovered。参见故障排查中的「服务商封锁 UDP」。

提示级事件保留 90 天;警告和错误保留 400 天。每日摘要生成后,原始检测轮次会保留 25 小时;每日摘要保留 90 天。

权限#

操作 所有者 协作者 只读
查看告警、检测结果和诊断报告 是 是 是
静默告警、立即检测、重新检查 是 是 否
标记为对此节点属正常、重新计入 是 是 否
应用诊断修复 是 否 否

操作员权限级别的 API 令牌可以静默告警、启动检测并运行诊断。通过令牌执行诊断修复只支持 MCP 计划,并且需要所有者审批(参见 MCP)。

在 GitHub 上编辑此页