接口状态:哪条通、哪条不通、什么时候测的
这一页只写一件事:2026-11-01 这天,从公网打过去,每条路回什么。不写「计划中」「即将上线」,也不把没实现的写成已实现。
★ 以上(下表全部读数)为 2026-11-01 的实测读数。接口状态会变,以本页日期为准。
本页不是实时状态面板——它是一个带日期的读数快照。你要判断今天通不通,请照下面「怎么自己核」一节的四步自己打一遍;那比信这一页更可靠。
本页不是实时状态面板——它是一个带日期的读数快照。你要判断今天通不通,请照下面「怎么自己核」一节的四步自己打一遍;那比信这一页更可靠。
一、逐条读数
| 方法 | 路径 | 实测返回 | 这条是干什么的/为什么是这个码 |
|---|---|---|---|
| GET | /healthz | 200 | 公开探针:只答「服务活着吗」。不要凭证、不含业务数据、不起子进程。 |
| GET | /readyz | 200 | 公开探针:就绪状态。回不是 200(例如 503)时,意思是「现在别打进来」——这是它该做的事,不是故障。 |
| GET | /meta | 200 | 公开探针:中台标识(Interchange、ASTRALINK Holdings、standard_body:false)。它本来就该是对外的。 |
| POST | /v1/devices | 401 | 设备注册。不带凭证被拦下:需要 Bearer 凭证。401 是「你没报身份」,不是「坏了」。 |
| POST | /v1/devices/{id}/heartbeat | 401 | 设备心跳。同上:不带凭证 401,需要 Bearer 凭证。 |
| POST | /v1/billing/events | 401 | 用量上报。同上:不带凭证 401,需要 Bearer 凭证。 |
| GET | /proof/verify | 404 | 证明包校验,公网有意不开放。理由见第二节,三条都是硬理由。 |
| 任意 | /nope(随便一个不存在的路径) | 404 | 兜底:没登记的路由一律 404。这条也在测——它证明「不登记就不会自动对外」。 |
| GET | /(接口主机的根路径) | 404 | 接口主机不提供首页。要读说明请留在本站(neutralorbit.org);要调接口请按上表的路径打。 |
二、为什么 /proof/verify 公网是 404
这不是「还没做完」,是「做完但不放出来」。三条理由,任意一条单看都要命,三条叠在一起是给公网开的一个口子:
- 它没有鉴权:谁都能打,不用带凭证。
- 它会起子进程跑校验器,单个请求最长可跑 120 秒:一个公网地址就能把机器的处理器占满。
- 它不在限速范围内:限速只挂在上面那三条写接口上,打它不会触发「请求太多」。
三条叠加=无鉴权 + 无速率上限 + 单请求起进程。要把它给合作方用,得先改成「带凭证 + 单独限速」,再单独放行一条;在那之前,公网就是 404。
三、公网只放行四条(写死,逐条列举)
放行不是「按前缀放开」,是逐条写死:
POST /v1/devices——设备注册POST /v1/devices/{id}/heartbeat——心跳({id}恰好一段、不带斜杠)POST /v1/billing/events——用量上报GET /healthz、/readyz、/meta——三条公开探针
其余一切(包括 /proof/verify,以及任何「服务里新加了、但放行清单里没登记」的路径)落到最后一条兜底:404。
这样做的代价是「加接口要改两处」,好处是新接口不会因为写了个前缀就顺手对外开放。上面 /nope 与 / 的 404,就是这条规矩的实测证据。
四、怎么自己核(四步,不用登录)
- 拿任一能发请求的工具(命令行、浏览器的地址栏、你写的小脚本都行)。
- 打
GET /healthz:返回 200,且正文里的状态是ok⇒ 服务是活的。 - 打
GET /readyz和GET /meta:应当也是 200。/meta里应当能看到 Interchange、ASTRALINK Holdings。 - 对三条写接口(
POST /v1/devices等)不带凭证打一次:应当是 401。
第 4 步是关键的反向判据:如果你不带凭证却拿到 200,说明我们的门坏了——请写信告诉我们(地址在 我要接入 那一页),这比你自己用下去更要紧。
五、凭证、限速与锁定(读数背后的规矩)
| 项 | 现在怎么做 | 读数来源 |
|---|---|---|
| 怎么带凭证 | 请求头 Authorization: Bearer <凭证>;也兼容 X-Api-Key 一个头 | 实测:不带 → 401 |
| 凭证长什么样 | MANUAL-KEY: + 32 位随机小写十六进制。老式的连号(KEY-2026-0001 那种)一律拒绝,猜三下就中的东西不能当钥匙 | 实测:拿真凭证另造 100 个猜串,100 次全 401 |
| 怎么发 | 手工台账:一行一把,签发不经过任何自助入口 | 所以现在没有「注册即拿凭证」这回事 |
| 连续被拒 | 同一把凭证连续 5 次被拒 ⇒ 锁 15 分钟;锁定期内即使凭证改回正确也拒绝 | 实测:5 次被拒 → 第 6 次(凭证已正确)仍是拒绝 |
| 请求太密 | 同一把凭证 60 秒内最多 60 次,超出即拒并告知还要等几秒 | 实测:60 次通过 + 第 61 次被拒 |
| 吊销 | 在台账里把那一行改成已吊销并重签 ⇒ 下一条请求就进不来,不用重启 | 实测:改一行,同一条请求由通过变 401 |
| 越权 | 凭证有效但没这一档权限 ⇒ 403(不是 401:身份没问题,重试也没用) | 实测:只给「用量上报」权限的凭证,调设备注册得 403 |
| 台账被改 | 台账每行带签章,改一个字符那一行当场作废(只作废那一行,不是整本) | 实测:改一格 ⇒ 那一行对应的请求 401 |
六、这一页没有写的东西(免得被读高)
- 没有实时面板:这里没有「当前在线数」「近一小时成功率」。要那些,得先有指标采集,那一步还没做。
- 没有服务水平承诺:本页不承诺可用率。承诺要写在合同里,本页只给读数。
- 没有「测试环境入口」:沙箱还没有,本页不写一个假的地址。详见 我要接入。
- 没有 TLS 之外的保证:公网这一段是加密的;但接口侧的鉴权仍是凭证明文放在请求头里,这一点写在这里,不藏。