【更新】NodePass通用TCP/UDP隧道解决方案,新增master主控模式API上线

更新内容

  • 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}

重要注意事项

  1. 无持久化

    • 主控模式重启后实例配置不会被保留。请在前端应用程序中存储实例详情
    • 主控模式重启后,会根据前端应用程序发来的指令创建实例,并更新ID
  2. 实例格式

    • 服务器实例:server://隧道地址:端口/目标地址:端口
    • 客户端实例:client://隧道地址:端口/目标地址:端口
  3. 生命周期

    • 新创建的实例会自动启动
    • 使用"restart"操作可以快速停止并重启实例
  4. 配置继承

    • 通过API创建的所有实例都会自动继承主控模式的log级别和tls设置
    • 创建实例是只需要在url中指定运行模式、隧道地址和目标地址即可
  5. 流量监控

    • API为每个实例提供流量统计(TCPRX, TCPTX, UDPRX, UDPTX),可用于监控
    • 流量监控功能需要将主控模式的日志级别设置为log=debug才能启用流量统计
  6. 错误处理

    • 200/201:操作成功
    • 400:请求格式无效
    • 404:实例未找到

交互式文档

Swagger UI界面可在以下地址访问:

http(s)://:[/]/v1/docs

使用此界面可以直接在浏览器中探索和测试API端点。

安全说明

API没有内置身份验证。对于生产环境使用:

  • 启用TLS加密(tls=1tls=2
  • 使用带有身份验证的反向代理
  • 应用适当的网络访问控制
点赞
  1. Volt说道:

    搭了一个demo
    https://np.yobc.de:8443/api/v1/docs

    API更新了,新增了持久化,详情见项目仓库

  2. Pepsi说道:

    前排支持

  3. Snall说道:

    支持

回复 Pepsi 取消回复

电子邮件地址不会被公开。必填项已用 * 标注

×
订阅图标按钮