API
隧道 API
基础路径:/api/v1/tunnels
基础路径:/api/v1/tunnels
认证:API 认证 中的 PAT 或登录 Cookie。
接口一览
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /api/v1/tunnels | 当前用户隧道列表 |
| POST | /api/v1/tunnels | 创建 |
| GET | /api/v1/tunnels/:id | 详情 |
| PUT | /api/v1/tunnels/:id | 更新 |
| DELETE | /api/v1/tunnels/:id | 删除 |
| POST | /api/v1/tunnels/:id/enable | 启用 |
| POST | /api/v1/tunnels/:id/disable | 禁用 |
| POST | /api/v1/tunnels/:id/clone | 克隆(body 可选 nodeId) |
| POST | /api/v1/tunnels/batch | 批量操作 |
| POST | /api/v1/tunnels/:id/launch-link | Launch Link |
| GET | /api/v1/tunnels/:id/diagnose | 诊断 |
| GET | /api/v1/tunnels/:id/traffic | 流量统计 |
| GET | /api/v1/tunnels/check-remote-port | 检查远程端口 |
| GET | /api/v1/tunnels/suggest-remote-port | 建议远程端口 |
:id 为隧道数字 ID。完整 Schema 见 /swagger-ui.html。
创建隧道
POST /api/v1/tunnels
Content-Type: application/json
Authorization: Bearer zsfrp_pat_xxx
{
"name": "mc-java-8001",
"nodeId": 1,
"type": "tcp",
"localAddr": "127.0.0.1:25565",
"remotePort": 23456,
"proxyProtocolVersion": null
}| 字段 | 说明 |
|---|---|
name | 隧道名称 |
nodeId | 节点 ID |
type | tcp / udp / http / https 等 |
localAddr | IP:端口 |
remotePort | 可选,省略则由系统分配 |
proxyProtocolVersion | null / v1 / v2 |
更新隧道
PUT /api/v1/tunnels/42可更新 name、type、localAddr、remotePort、nodeId、proxyProtocolVersion。修改后本机需 重启 frpc。
端口校验
检查:
GET /api/v1/tunnels/check-remote-port?nodeId=1&port=23456&excludeTunnelId=42建议:
GET /api/v1/tunnels/suggest-remote-port?nodeId=1见 远程端口冲突。
Launch Link
POST /api/v1/tunnels/42/launch-link返回唤起桌面客户端的 URL,有时效,勿公开分享。
批量操作
POST /api/v1/tunnels/batch
Content-Type: application/json
{
"ids": [1, 2, 3],
"action": "enable"
}action 如 enable、disable、delete 等(以实际 API 为准)。
诊断
GET /api/v1/tunnels/42/diagnose返回可读检查项,便于脚本或运维面板展示。
流量统计
GET /api/v1/tunnels/42/traffic?granularity=hour
GET /api/v1/tunnels/42/traffic?granularity=daygranularity:hour 或 day。
克隆
POST /api/v1/tunnels/42/clone
Content-Type: application/json
{ "nodeId": 2 }省略 nodeId 则在同节点克隆并分配新端口。