1.x
https://nacos.io/zh-cn/docs/1.X/open-api/
2.x
https://nacos-group.github.io/zh-cn/docs/guide/user/open-api/
3.x
https://nacos-group.github.io/docs/next/manual/user/open-api/
获取nacos服务端的版本的做法
没有哪一个 HTTP 接口在 Nacos 1.x / 2.x / 3.x 所有版本里都 100% 稳定可用 。官方没有承诺"全版本通用版本接口"。实际做法是:多端点探测 + 兜底解析。
各版本常见端点(不是全版本通用)
| 端点 | 大致可用范围 | 说明 |
|---|---|---|
/nacos/v1/ns/operator/version |
早期 1.x | 老接口,2.x 很多版本已不可用 |
/nacos/v1/console/server/version |
2.0.x 起常见 | 返回 {"version":"2.2.3"},但新版本可能要登录/鉴权 |
/nacos/v1/console/server/state |
2.0.x 部分版本 | 返回 version + mode |
/nacos/v3/console/server/state |
3.0+ | 官方 Console API,公开无需身份 |
/nacos/actuator/info |
2.x(需开启 actuator) | Spring Boot 信息,不一定开 |
| 控制台首页 HTML / JS | 1.x~3.x | 解析页面或静态资源里的版本字符串 |
所以:没有一个"写一次、跑在所有 Nacos 上"的版本接口。
工程里最稳的写法:顺序探测
BASE=http://127.0.0.1:8848/nacos
# 1) 3.x
curl -s "$BASE/v3/console/server/state" | grep -o '"version":"[^"]*"'
# 2) 2.x 常见
curl -s "$BASE/v1/console/server/version"
curl -s "$BASE/v1/console/server/state" | grep -o '"version":"[^"]*"'
# 3) 1.x 老接口
curl -s "$BASE/v1/ns/operator/version"
# 4) Spring Boot actuator(如果开了)
curl -s "$BASE/actuator/info" | grep -o '"version":"[^"]*"'
# 5) 兜底:首页 HTML
curl -s "$BASE/" | grep -o 'Nacos [0-9][0-9.]*' | head -n1
- 先试新版本接口
- 再试 2.x 控制台接口
- 再试 1.x operator 接口