
更新内容
- v1.1.0版本新增了master模式,通过rest API的方式实现了示例(server或client)的单独或批量管理。
- 完善了大量文档内容,以便更加方便、全面了解NodePass项目。
- 更多信息请前往仓库:https://github.com/yosebyte/nodepass
NodePass API 文档
概述
NodePass 通过主控模式(Master Mode)提供了RESTful API,允许您创建、管理和监控服务器和客户端实例。本文档涵盖了API的基本用法和重要注意事项。
启动主控模式
要使用API,您需要以主控模式启动NodePass:
# 基本HTTP API
nodepass master://0.0.0.0:9090
# 启用流量监控(需要debug日志级别)
nodepass master://0.0.0.0:9090?log=debug
# 使用自定义API路径
nodepass master://0.0.0.0:9090/admin
# 使用自签名证书
nodepass "master://0.0.0.0:9090?log=debug&tls=1"
# 使用自定义证书
nodepass "master://0.0.0.0:9090?log=debug&tls=2&crt=/path/to/cert.pem&key=/path/to/key.pem"
基础URL
master://:/?
其中:
:是主控API运行的地址是可选的(默认为/api)包含日志级别和证书相关设置
主要端点
| 端点 | 方法 | 描述 |
|---|---|---|
/instances |
GET | 列出所有实例 |
/instances |
POST | 创建新实例 |
/instances/{id} |
GET | 获取特定实例的详细信息 |
/instances/{id} |
PUT | 更新或控制特定实例 |
/instances/{id} |
DELETE | 删除特定实例 |
/openapi.json |
GET | 获取OpenAPI规范 |
/docs |
GET | 访问Swagger UI文档 |
注意:所有端点都位于
//v1/之后
常用示例
创建实例
# 创建服务器实例
curl -X POST http://localhost:9090/api/v1/instances \
-H "Content-Type: application/json" \
-d '{"url":"server://0.0.0.0:10101/0.0.0.0:8080"}'
# 创建客户端实例
curl -X POST http://localhost:9090/api/v1/instances \
-H "Content-Type: application/json" \
-d '{"url":"client://localhost:10101/127.0.0.1:8081"}'
管理实例
# 列出所有实例
curl http://localhost:9090/api/v1/instances
# 获取特定实例的详细信息
curl http://localhost:9090/api/v1/instances/{id}
# 控制实例(启动、停止、重启)
curl -X PUT http://localhost:9090/api/v1/instances/{id} \
-H "Content-Type: application/json" \
-d '{"action":"restart"}'
# 删除实例
curl -X DELETE http://localhost:9090/api/v1/instances/{id}
重要注意事项
-
无持久化:
- 主控模式重启后实例配置不会被保留。请在前端应用程序中存储实例详情
- 主控模式重启后,会根据前端应用程序发来的指令创建实例,并更新ID
-
实例格式:
- 服务器实例:
server://隧道地址:端口/目标地址:端口 - 客户端实例:
client://隧道地址:端口/目标地址:端口
- 服务器实例:
-
生命周期:
- 新创建的实例会自动启动
- 使用"restart"操作可以快速停止并重启实例
-
配置继承:
- 通过API创建的所有实例都会自动继承主控模式的log级别和tls设置
- 创建实例是只需要在url中指定运行模式、隧道地址和目标地址即可
-
流量监控:
- API为每个实例提供流量统计(TCPRX, TCPTX, UDPRX, UDPTX),可用于监控
- 流量监控功能需要将主控模式的日志级别设置为
log=debug才能启用流量统计
-
错误处理:
- 200/201:操作成功
- 400:请求格式无效
- 404:实例未找到
交互式文档
Swagger UI界面可在以下地址访问:
http(s)://:[/]/v1/docs

使用此界面可以直接在浏览器中探索和测试API端点。
安全说明
API没有内置身份验证。对于生产环境使用:
- 启用TLS加密(
tls=1或tls=2) - 使用带有身份验证的反向代理
- 应用适当的网络访问控制

搭了一个demo
https://np.yobc.de:8443/api/v1/docs
API更新了,新增了持久化,详情见项目仓库
前排支持
支持