节点健康
链路热力矩阵
目标探测
测速总览
| 节点 | 地区 / 供应商 | 测速入口 | 部署方式 | 备注 |
|---|
最后一次上报时间
| 节点 | 状态 | 最后上报 | 延迟 | 任务数 |
|---|
部署说明
架构边界
服务端是 Cloudflare Worker,提供前端、任务下发、上报接收、Mesh 聚合和历史查询。D1 保存分钟级最新状态;近 7 天历史每 5 分钟采样,7~30 天每小时保留一个代表样本,超过 30 天自动清理。R2 每 15 分钟归档一次原始报告,KV 作为旧数据兼容兜底。
客户端只运行 agent.py。静态 NODES 只是种子节点;新客户端首次上报后会自动进入页面和后续互探任务,新增客户端不需要修改服务端。
部署服务端
部署新客户端
node_id 只允许字母、数字、下划线和短横线,最长 48 个字符。
客户端显示信息
更新已有客户端
重新运行部署脚本即可覆盖远端 /root/mesh_agent.py 并重启服务。只改客户端元数据时,也只需要带新的环境变量重跑部署脚本。
systemd 节点会写入 probe-mesh-agent.service;无 systemd 的节点会用 nohup 启动。
测速节点部署
- MY、JP、HK、TW 使用 Go Speedtest 2.1 单容器,HK2、HITW、CA 使用原生 Go 服务。
- NAT 节点必须绑定到实际映射端口段,再从公网复测;本机监听不代表外部可达。
- 测速服务已迁出 PHP;HTTP、WebSocket 与原生 TCP 共用 TCP 端口,QUIC / HTTP/3 使用同号 UDP 端口。
- HTTPS 使用受信任证书;测速记录持久保存,IP/ASN 通过离线库查询,浏览器 QUIC 测试检查实际 HTTP/3 协商。
中国测速快照
该测速保留三组:late_night 深夜、off_peak 平峰、evening_peak 晚高峰。脚本会对失败目标自动再试 1 次;仍失败时改用同运营商备选,所有备选都失败时不在页面展示。
运行 speedtest_cn.py 时会把结果写入对应时段,不同时间段互不覆盖。
Trace
trace_probe.py 每 3 小时独立执行一次 nexttrace,覆盖测速目标、链路矩阵和目标探测。页面只展示最新一份结果,并在对应区域通过按钮展开,不写历史表。
教育网测速快照
需要单独记录教育网出口时,在指定节点运行 speedtest_edu.py。脚本按 LibreSpeed 的真实流程先访问首页拿 cookie,再分别测试 IPv4 / IPv6;当前使用 USTC 和 ZJU 两组正式点位。
环境变量
- MASTER_URL:服务端地址,默认当前 Worker。
- REPORT_KEY:Worker 配置上报密钥时使用。
- NODE_DISPLAY_NAME、NODE_HOST_ALIAS、NODE_FLAG:页面显示信息。
- NODE_PROVIDER、NODE_UPSTREAM、NODE_REGION、NODE_REGION_LABEL、NODE_ASN:节点元数据。
- NODE_IPV4_TYPE、NODE_IPV6_TYPE:地址类型,例如 NAT、原生、WARP 出口、Tunnel/HE。
探测任务地址选择
- WARP 出口 不作为入站探测目标,只作为本机出站能力参考。
- NAT、NAT/EIP、NAT/LXC、原生 IPv4 可以作为常规 IPv4 探测目标。
- 原生/独享 IPv6 优先用于 IPv6-only 或原生 IPv6 来源节点。
- Tunnel/HE IPv6 作为兼容兜底,不优先替代可用 IPv4。
- probeHostsBySource 源节点例外优先级最高,用于修正特定绕路或地址族问题。
目标探测源
外部目标分为中国特供、全球 ISP、代表目标、云与公共基础设施四层。中国特供会定时拉取 https://api.steampowered.com/ISteamApps/GetSDRConfig/v1?appid=730 生成 Steam SDR 候选,并继续保留从 https://base.urimy.com/Targets 节选的稳定代表目标。
Worker 每天通过 Cron 更新 Steam SDR 候选;真实 ICMP 可达性由各 agent 上报体现,页面按有效样本、P95 和抖动区分当前可用程度。
新节点自动发现流程
- 新 agent 拉取 /api/tasks?node=<node_id>,未预注册也能拿到种子节点和外部目标任务。
- agent 上报 /api/report,包含 node、探测结果、facts 和客户端元数据。
- Worker 从 D1 最新报告中发现新 node,生成动态节点资料。
- 页面显示该节点,其他客户端下一轮任务会把它加入互探目标。