最后更新时间: 2025-10-04 17:41:32
WINDOWS使用教程
使用流程
- 访问用户中心 -> 软件下载,找到最新版本的Windows软件,点击右侧下载并按照提示进行一键安装
- 访问用户中心 -> 创建隧道,点击您喜欢的节点后按照提示进行填写并创建隧道
- 打开NXFRP软件,并登陆您的账号,找到隧道列表按钮,选择并启动对应的隧道
最后更新时间: 2025-10-04 17:36:01
LINUX使用教程
使用流程
- 访问用户中心 -> 软件下载,找到最新版本的Windows软件,点击右侧下载并按照提示进行一键安装
- 访问用户中心 -> 创建隧道,点击您喜欢的节点后按照提示进行填写并创建隧道
- 访问用户中心 -> 个人首页,点击右下方的复制token按钮,复制您的token
- 打开NXFRP软件,输入刚刚复制的token,并按照提示开启您的隧道
最后更新时间: 2025-10-04 17:43:21
FRPS部署
FRPS的部署和传统FRPS几乎一样,我们仅移除了一个管理员账号的配置项
WINDOWSFRPS部署
- 下载Widnwos版FRPS
- 解压FRPS
- 创建一个FRPS的配置文件,FRPS的配置文件为frps.toml
- 配置toml文件,配置文件内容如下:
bindPort = 7000 # FRPS监听的端口
webServer.addr = "0.0.0.0" # 无需修改
webServer.port = 7500 # FRPS的web管理端口
webServer.password = "123456" # FRPS的web管理密码
api_url = "http://127.0.0.1:10003" # NXFRPS的api接口,对应您的官网
vhostHTTPPort = 80 # FRPS监听的HTTP端口(按需配置)
vhostHTTPSPort = 443 # FRPS监听的HTTPS端口(按需配置)
toml5· 启动FRPS frps.exe -c frps.toml
LINUXFRPS部署
- 下载Linux版FRPS
- 解压FRPS
- 创建一个FRPS的配置文件,FRPS的配置文件为frps.toml
- 配置toml文件,配置文件内容如下:
bindPort = 7000 # FRPS监听的端口
webServer.addr = "0.0.0.0" # 无需修改
webServer.port = 7500 # FRPS的web管理端口
webServer.password = "123456" # FRPS的web管理密码
api_url = "http://127.0.0.1:10003" # NXFRPS的api接口,对应您的官网
vhostHTTPPort = 80 # FRPS监听的HTTP端口(按需配置)
vhostHTTPSPort = 443 # FRPS监听的HTTPS端口(按需配置)
toml5· 启动FRPS frps_linux -c frps.toml
自动化部署工具
下面是一个自动化部署工具,由NXFRP用户自行开发,如有需要请自行尝试, 🔗 点击前往
最后更新时间: 2025-10-21 22:01:46
网站部署
- 下载 🔗 NXFRP源码
- 上传源码至您的服务器并解压
- 设置伪静态
location / {
try_files $uri $uri/ /index.php?$query_string;
}
nignx4· 设置定时任务 当前版本只有2个
每5分钟访问一次:
api/timing/table?key=你的密钥,[节点状态检测]
api/timing/traffic?key=你的密钥,[节点信息检测]
shell- 设置CLASS,进入class/EmailSender.php
private $smtpHost = '服务器';
private $smtpPort = 端口;
private $username = '账号';
private $password = '授权码'; // 授权码
php最后更新时间: 2025-10-22 00:13:47
修改文档
最后更新时间: 2025-10-05 16:36:44
配置实名认证
该功能开通需要拥有阿里云企业认证账号,下面为详细操作演示
1·管理员后台 -> 网站设置 -> 实名认证
找到上述内容后,进入阿里云官网申请实人认证服务
2·阿里云开通实人认证服务
开通该服务后,进入其控制台
3·创建实人认证服务
按照如图步骤,获取阿里云场景ID,图中演示ID为:1000015419
4·阿里云控制台 -> 账号 AccessKey
按照图如步骤,获取阿里云AccessKey和SecretKey,最后回到FRP管理后台填入获取的内容最后更新时间: 2025-10-21 22:25:20
邮件发送
本文档仅适用于1.5以上的版本,您可以阅读文档获取详细API使用方法。
接口列表
| 接口地址 | 请求方式 | 身份验证 | 功能说明 |
|---|---|---|---|
| /api/v2/msic/email | POST | 是 | 发送邮件 |
| /api/v2/user/sign | POST | 是 | 用户签到 |
| /api/v2/user/edit_pass | POST | 是 | 修改用户密码 |
| /api/v2/user/traffic | POST | 是 | 用户本周流量数据 |
| /api/v2/proxies/traffic_list | POST | 是 | 获取节点信息 |
最后更新时间: 2025-12-07 21:02:02
用户签到
用户签到 API,允许已登录用户或通过 Token 验证的用户进行每日签到,签到成功后可获得随机流量奖励。
接口列表
| 接口地址 | 请求方式 | 身份验证 | 功能说明 |
|---|---|---|---|
| /api/v2/user/sign | POST | 是 | 用户签到 |
身份验证
- 用户 Token 验证 - 用户通过提供自己的 API token 进行验证
- 登录会话验证 - 已登录用户可通过当前会话直接调用
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| token | string | 否* | 用户 API token(两种验证方式之一) |
响应格式
{
"success": true/false,
"message": "响应消息",
"code": HTTP状态码,
"data": null
}
状态码说明
| 状态码 | 说明 |
|---|---|
| 200 | 签到成功 |
| 400 | 请求参数错误/今日已签到 |
| 401 | 未授权访问/密码错误 |
| 403 | 用户被封禁 |
| 404 | 用户不存在 |
| 500 | 签到失败 |
安全机制
- 每日限制:每个用户每天只能签到一次
- 身份验证:必须通过两种验证方式之一才能调用
- 状态检查:签到前会检查用户账户状态
使用示例
1. 使用用户 Token 调用
curl -X POST \
http://yourdomain.com/app/api/v2/user/sign.php \
-d 'token=USER_API_TOKEN'
bash
2. 已登录用户通过会话调用
curl -X POST \
http://yourdomain.com/app/api/v2/user/sign.php \
-b 'PHPSESSID=your_session_id'
bash
注意事项
- 该 API 仅支持 POST 请求方式
- 每个用户每天只能签到一次
- 签到成功后会获得随机流量奖励,奖励范围由系统设置决定
- 签到时间会记录在用户信息中
最后更新时间: 2025-12-07 18:21:03
修改密码
修改密码 API,允许已登录用户或通过 Token 验证的用户修改自己的登录密码。
接口列表
| 接口地址 | 请求方式 | 身份验证 | 功能说明 |
|---|---|---|---|
| /api/v2/user/edit_pass | POST | 是 | 修改用户密码 |
身份验证
- 用户 Token 验证 - 用户通过提供自己的 API token 进行验证
- 登录会话验证 - 已登录用户可通过当前会话直接调用
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| token | string | 否* | 用户 API token(两种验证方式之一) |
| old_password | string | 是 | 用户当前密码 |
| new_password | string | 是 | 用户新密码 |
| confirm_password | string | 是 | 确认新密码 |
响应格式
{
"success": true/false,
"message": "响应消息",
"code": HTTP状态码,
"data": null
}
状态码说明
| 状态码 | 说明 |
|---|---|
| 200 | 密码修改成功 |
| 400 | 请求参数错误/密码验证失败 |
| 401 | 未授权访问 |
| 403 | 用户被封禁 |
| 404 | 用户不存在 |
| 500 | 密码修改失败 |
安全机制
- 身份验证:必须通过两种验证方式之一才能调用
- 密码验证:必须提供正确的旧密码才能修改
- 一致性检查:新密码和确认密码必须一致
- 重复性检查:新密码不能与旧密码相同
使用示例
1. 使用用户 Token 调用
curl -X POST \
http://yourdomain.com/app/api/v2/user/edit_pass.php \
-d 'token=USER_API_TOKEN' \
-d 'old_password=old_password' \
-d 'new_password=new_password' \
-d 'confirm_password=new_password'
bash
2. 已登录用户通过会话调用
curl -X POST \
http://yourdomain.com/app/api/v2/user/edit_pass.php \
-d 'old_password=old_password' \
-d 'new_password=new_password' \
-d 'confirm_password=new_password' \
-b 'PHPSESSID=your_session_id'
bash
注意事项
- 该 API 仅支持 POST 请求方式
- 所有参数均为必填项
- 新密码和确认密码必须完全一致
- 新密码不能与旧密码相同
- 必须提供正确的旧密码才能修改成功
最后更新时间: 2025-12-07 18:21:03
邮件发送
获取用户本周流量数据 API,允许已登录用户或通过 Token 验证的用户获取自己本周的流量统计数据,包括上行和下行流量。
接口列表
| 接口地址 | 请求方式 | 身份验证 | 功能说明 |
|---|---|---|---|
| /api/v2/user/traffic | POST | 是 | 用户本周流量数据 |
身份验证
- 用户 Token 验证 - 用户通过提供自己的 API token 进行验证
- 登录会话验证 - 已登录用户可通过当前会话直接调用
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| token | string | 否* | 用户 API token(两种验证方式之一) |
响应格式
{
"success": true/false,
"message": "响应消息",
"code": HTTP状态码,
"data": {
"uplink": [0, 0, 0, 0, 0, 0, 0],
"downlink": [0, 0, 0, 0, 0, 0, 0],
"categories": ["周日", "周一", "周二", "周三", "周四", "周五", "周六"]
}
}
状态码说明
| 状态码 | 说明 |
|---|---|
| 200 | 获取流量数据成功 |
| 400 | 请求方式错误 |
| 401 | 未授权访问 |
| 403 | 用户被封禁 |
| 404 | 用户不存在 |
数据说明
- `uplink`: 上行流量数组,按周日到周六排列,单位为KB
- `downlink`: 下行流量数组,按周日到周六排列,单位为KB
- `categories`: 星期数组,对应每一天的中文名称
安全机制
- 身份验证:必须通过两种验证方式之一才能调用
- 数据隔离:用户只能获取自己的流量数据
使用示例
1. 使用用户 Token 调用
curl -X POST \
http://yourdomain.com/app/api/v2/user/traffic.php \
-d 'token=USER_API_TOKEN'
bash2. 已登录用户通过会话调用
curl -X POST \
http://yourdomain.com/app/api/v2/user/traffic.php \
-b 'PHPSESSID=your_session_id'
bash注意事项
- 该 API 仅支持 POST 请求方式
- 如果用户还没有流量记录,系统会初始化一条记录并返回零值数据
- 只返回当前周的流量数据
- 流量数据单位为KB(千字节)
最后更新时间: 2025-12-07 17:47:58
获取用户信息
获取用户信息 API,允许已登录用户或通过 Token 验证的用户获取自己的基本信息,包括流量、速率和隧道数量等。
接口列表
| 接口地址 | 请求方式 | 身份验证 | 功能说明 |
|---|---|---|---|
| /api/v2/user/info | POST | 是 | 获取用户信息 |
身份验证
- 用户 Token 验证 - 用户通过提供自己的 API token 进行验证
- 登录会话验证 - 已登录用户可通过当前会话直接调用
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| token | string | 否* | 用户 API token(两种验证方式之一) |
响应格式
{
"success": true/false,
"message": "响应消息",
"code": HTTP状态码,
"data": {
"tunnel_traffic": "隧道流量",
"tunnel_rate": "隧道速率",
"tunnel_count": "隧道数量",
"token": "用户Token"
}
}
状态码说明
| 状态码 | 说明 |
|---|---|
| 200 | 获取用户信息成功 |
| 400 | 请求方式错误 |
| 401 | 未授权访问 |
| 403 | 用户被封禁 |
| 404 | 用户不存在/用户组不存在 |
数据说明
- `tunnel_traffic`: 用户可用隧道流量(格式化显示)
- `tunnel_rate`: 用户隧道速率限制(格式化显示)
- `tunnel_count`: 用户可创建隧道总数
- `token`: 用户API Token
安全机制
- 身份验证:必须通过两种验证方式之一才能调用
- 数据隔离:用户只能获取自己的信息
使用示例
1. 使用用户 Token 调用
curl -X POST \
http://yourdomain.com/app/api/v2/user/info.php \
-d 'token=USER_API_TOKEN'bash
2. 已登录用户通过会话调用
curl -X POST \
http://yourdomain.com/app/api/v2/user/info.php \
-b 'PHPSESSID=your_session_id'bash
注意事项
- 该 API 仅支持 POST 请求方式
- 隧道流量会根据用户组和额外购买情况进行计算
- 隧道速率会根据用户组默认速率和额外购买速率进行计算
- 隧道数量包含用户组默认数量和额外购买数量
最后更新时间: 2025-12-11 17:23:53
更新用户信息
更新用户信息 API,用于更新用户组信息、检查并关闭过期隧道、更新用户流量信息等后台任务。
接口列表
| 接口地址 | 请求方式 | 身份验证 | 功能说明 |
|---|---|---|---|
| /api/v2/user/update | POST | 是 | 更新用户信息 |
身份验证
- 用户 Token 验证 - 用户通过提供自己的 API token 进行验证
- 登录会话验证 - 已登录用户可通过当前会话直接调用
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| token | string | 否* | 用户 API token(两种验证方式之一) |
响应格式
{
"success": true/false,
"message": "响应消息",
"code": HTTP状态码,
"data": {
"closedTunnels": [
{
"id": "隧道ID"
}
],
"trafficExhausted": true/false
}
}
状态码说明
| 状态码 | 说明 |
|---|---|
| 200 | 更新用户信息成功 |
| 400 | 请求方式错误 |
| 401 | 未授权访问 |
| 403 | 用户被封禁 |
| 404 | 用户不存在 |
| 500 | 更新用户信息失败 |
数据说明
- `closedTunnels`: 被关闭的隧道列表
- `trafficExhausted`: 流量是否用尽
功能说明
- 更新用户组信息:检查用户购买的套餐是否过期,自动切换到下一个可用套餐或恢复默认组
- 检查并关闭过期隧道:检查用户启用的隧道速率限制是否过期,过期则自动关闭
- 更新用户流量信息:根据用户组和使用情况更新用户可用流量
安全机制
- 身份验证:必须通过两种验证方式之一才能调用
使用示例
1. 使用用户 Token 调用
curl -X POST \
http://yourdomain.com/app/api/v2/user/update.php \
-d 'token=USER_API_TOKEN'bash
2. 已登录用户通过会话调用
curl -X POST \
http://yourdomain.com/app/api/v2/user/update.php \
-b 'PHPSESSID=your_session_id'bash
注意事项
- 该 API 仅支持 POST 请求方式
- 通常由系统定时任务调用,也可由用户主动调用
- 会自动处理用户组切换、过期隧道关闭和流量更新等任务
最后更新时间: 2025-12-11 17:24:07
获取节点信息
获取节点信息 API,允许已登录用户或通过 Token 验证的用户获取系统中所有 frp 节点的信息,包括节点状态、负载情况和流量统计等。
接口列表
| 接口地址 | 请求方式 | 身份验证 | 功能说明 |
|---|---|---|---|
| /api/v2/node/traffic_list | POST | 是 | 获取节点信息 |
身份验证
- 用户 Token 验证 - 用户通过提供自己的 API token 进行验证
- 登录会话验证 - 已登录用户可通过当前会话直接调用
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| token | string | 否* | 用户 API token(两种验证方式之一) |
响应格式
{
"success": true/false,
"message": "响应消息",
"code": HTTP状态码,
"data": {
"nodes": [
{
"id": "节点ID",
"title": "节点标题",
"content": "节点描述",
"node_ip": "节点IP",
"default_port": "默认端口",
"admin_port": "管理端口",
"port_range": "端口范围",
"admin_key": "管理密钥",
"current_tunnel": "当前隧道数",
"max_poolcount": "最大连接池数",
"proxyTypeCount": "代理类型数",
"todayuplinktraffic": "今日上行流量",
"todaydownlinktraffic": "今日下行流量",
"version": "版本号",
"current_visitors": "当前访客数",
"status": "节点状态",
"created_at": "创建时间",
"updated_at": "更新时间",
"load_percent": "负载百分比",
"uplinktrafficformatted": "上行流量(格式化)",
"downlinktrafficformatted": "下行流量(格式化)",
"onlinedurationformatted": "在线时长(格式化)"
}
],
"stats": {
"total_uplink": "总上行流量",
"total_downlink": "总下行流量",
"total_users": "总用户数",
"total_tunnels": "总隧道数",
"online_nodes": "在线节点数",
"last_update": "最后更新时间",
"totaluplinkformatted": "总上行流量(格式化)",
"totaldownlinkformatted": "总下行流量(格式化)"
}
}
}
状态码说明
| 状态码 | 说明 |
|---|---|
| 200 | 获取节点信息成功 |
| 400 | 请求方式错误 |
| 401 | 未授权访问 |
| 403 | 用户被封禁 |
| 404 | 用户不存在 |
数据说明
- `nodes`: 节点列表数组,包含每个节点的详细信息:
- `load_percent`: 节点负载百分比
- `uplink_traffic_formatted`: 格式化的上行流量数据
- `downlink_traffic_formatted`: 格式化的下行流量数据
- `online_duration_formatted`: 格式化的在线时长
- `stats`: 统计信息对象,包含整体汇总数据:
- `total_uplink`: 总上行流量
- `total_downlink`: 总下行流量
- `total_users`: 总用户数
- `total_tunnels`: 总隧道数
- `online_nodes`: 在线节点数
- `last_update`: 最后更新时间
安全机制
- 身份验证:必须通过两种验证方式之一才能调用
- 数据隔离:用户只能获取公开的节点信息,不会暴露敏感数据
使用示例
1. 使用用户 Token 调用
curl -X POST \
http://yourdomain.com/app/api/v2/node/traffic_list.php \
-d 'token=USER_API_TOKEN'bash
2. 已登录用户通过会话调用
curl -X POST \
http://yourdomain.com/app/api/v2/node/traffic_list.php \
-b 'PHPSESSID=your_session_id'bash
注意事项
- 该 API 仅支持 POST 请求方式
- 返回的数据包含节点实时状态和统计信息
- 负载百分比基于节点最大连接数和当前连接数计算得出
最后更新时间: 2025-12-11 17:25:41
添加/更新节点
添加或更新FRP节点 API,此API用于向系统中添加新的FRP节点或更新现有节点信息。只有使用系统TIME_KEY验证的请求才能调用此接口。
接口列表
| 接口地址 | 请求方式 | 身份验证 | 功能说明 |
|---|---|---|---|
| /api/v2/node/add | POST | 是 | 添加或更新节点 |
身份验证
- 系统 TIME_KEY 验证 - 仅系统定时任务或管理员可使用预设的 TIME_KEY 进行验证
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| token | string | 是 | 系统 TIME_KEY |
| title | string | 是 | 节点标题 |
| content | string | 是 | 节点描述 |
| node_ip | string | 是 | 节点IP地址 |
| bindport/defaultport | string | 是 | 默认端口 |
| admin_port | string | 是 | 管理端口 |
| port_range | string | 是 | 端口范围 |
| password/admin_key | string | 是 | 管理密码 |
| current_tunnel | integer | 是 | 当前隧道数 |
| maxPoolCount | integer | 是 | 最大连接池数 |
| proxyTypeCount | integer | 是 | 代理类型数 |
| todayuplinktraffic | integer | 是 | 今日上行流量 |
| todaydownlinktraffic | integer | 是 | 今日下行流量 |
| version | string | 是 | 节点版本 |
| current_visitors | integer | 是 | 当前访客数 |
| status | integer | 是 | 节点状态 |
响应格式
{
"success": true/false,
"message": "响应消息",
"code": HTTP状态码,
"data": null
}
状态码说明
| 状态码 | 说明 |
|---|---|
| 200 | 节点添加/更新成功 |
| 400 | 请求参数错误/无法连接到节点 |
| 401 | 未授权访问 |
| 500 | 节点添加/更新失败 |
安全机制
- 身份验证:必须使用系统TIME_KEY进行验证
- 参数校验:对所有必需参数进行严格校验
- 节点连通性验证:在添加节点前会验证节点是否可访问
使用示例
使用 TIME_KEY 调用
curl -X POST \
http://yourdomain.com/app/api/v2/node/add.php \
-d 'token=SYSTEM_TIME_KEY' \
-d 'title=节点1' \
-d 'content=这是一个测试节点' \
-d 'node_ip=192.168.1.100' \
-d 'default_port=7000' \
-d 'admin_port=7500' \
-d 'port_range=10000-20000' \
-d 'admin_key=password123' \
-d 'current_tunnel=5' \
-d 'maxPoolCount=100' \
-d 'proxyTypeCount=3' \
-d 'today_uplink_traffic=1024000' \
-d 'today_downlink_traffic=2048000' \
-d 'version=0.38.0' \
-d 'current_visitors=10' \
-d 'status=1'bash
注意事项
- 该 API 仅支持 POST 请求方式
- 所有参数均为必填项
- 如果节点IP已存在,则会更新节点信息而非新增
- 在添加节点前会验证节点管理接口是否可访问
最后更新时间: 2025-12-08 12:53:43
获取节点列表
获取节点列表 API,允许已登录用户或通过 Token 验证的用户获取系统中所有 FRP 节点的列表信息,包括节点状态、权限组等信息。
接口列表
| 接口地址 | 请求方式 | 身份验证 | 功能说明 |
|---|---|---|---|
| /api/v2/node/list | POST | 是 | 获取节点列表 |
身份验证
- 用户 Token 验证 - 用户通过提供自己的 API token 进行验证
- 登录会话验证 - 已登录用户可通过当前会话直接调用
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| token | string | 否* | 用户 API token(两种验证方式之一) |
响应格式
{
"success": true/false,
"message": "响应消息",
"code": HTTP状态码,
"data": [
{
"id": "节点ID",
"title": "节点标题",
"content": "节点描述",
"port_range": "端口范围",
"protocols": ["协议列表"],
"protocols_str": "协议字符串",
"permission_groups": [
{
"group_id": "组ID",
"text": "组名称",
"tunnel_count": "隧道数",
"tunnel_rate": "隧道速率",
"monthly_traffic": "月流量"
}
],
"fullload": true/false,
"permission": true/false,
"status": "状态(normal/fullload/offline/banned)",
"realnamerequired": true/false,
"is_verified": true/false
}
]
}
状态码说明
| 状态码 | 说明 |
|---|---|
| 200 | 获取节点列表成功 |
| 400 | 请求方式错误 |
| 401 | 未授权访问 |
| 403 | 用户被封禁 |
| 404 | 用户不存在 |
数据说明
- `id`: 节点唯一标识符
- `title`: 节点标题
- `content`: 节点描述信息
- `port_range`: 节点可用端口范围
- `protocols`: 节点支持的协议列表
- `protocols_str`: 节点支持的协议字符串(以"/"分隔)
- `permission_groups`: 节点允许访问的用户组列表
- `fullload`: 节点是否满载
- `permission`: 当前用户是否有权限访问该节点
- `status`: 节点状态(normal-正常/fullload-满载/offline-离线/banned-封禁)
- `real_name_required`: 是否需要实名认证
- `is_verified`: 用户是否已完成实名认证
安全机制
- 身份验证:必须通过两种验证方式之一才能调用
- 权限控制:用户只能看到自己有权限访问的节点信息
- 实名认证检查:根据系统设置检查用户实名认证状态
使用示例
1. 使用用户 Token 调用
curl -X POST \
http://yourdomain.com/app/api/v2/node/list.php \
-d 'token=USER_API_TOKEN'bash
2. 已登录用户通过会话调用
curl -X POST \
http://yourdomain.com/app/api/v2/node/list.php \
-b 'PHPSESSID=your_session_id'bash
注意事项
- 该 API 仅支持 POST 请求方式
- 用户只能看到分配给自己用户组的节点
- 节点状态会根据实际运行情况进行动态更新
- 如果系统开启实名认证,会检查用户认证状态
最后更新时间: 2025-12-08 12:53:54
添加隧道
添加隧道 API,允许已登录用户或通过 Token 验证的用户在指定节点上创建新的FRP隧道。
接口列表
| 接口地址 | 请求方式 | 身份验证 | 功能说明 |
|---|---|---|---|
| /api/v2/proxies/add | POST | 是 | 添加隧道 |
身份验证
- 用户 Token 验证 - 用户通过提供自己的 API token 进行验证
- 登录会话验证 - 已登录用户可通过当前会话直接调用
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| token | string | 否* | 用户 API token(两种验证方式之一) |
| nodeId | string | 是 | 节点ID |
| tunnelName | string | 是 | 隧道名称 |
| protocol | string | 是 | 协议类型(http/https/tcp/udp) |
| localAddress | string | 是 | 本地地址 |
| localPort | integer | 是 | 本地端口 |
| tunnelRate | string | 是 | 隧道速率 |
| bindDomain | string | 是* | 绑定域名(http/https协议时必填) |
| remotePort | integer | 是* | 远程端口(tcp/udp协议时必填) |
响应格式
{
"success": true/false,
"message": "响应消息",
"code": HTTP状态码,
"data": null
}
状态码说明
| 状态码 | 说明 |
|---|---|
| 200 | 添加隧道成功 |
| 400 | 请求参数错误 |
| 401 | 未授权访问 |
| 403 | 用户被封禁 |
| 404 | 用户不存在 |
| 500 | 添加隧道失败 |
安全机制
- 身份验证:必须通过两种验证方式之一才能调用
- 参数验证:对所有必需参数进行严格校验
- 唯一性检查:检查隧道名称是否重复
- 端口冲突检测:检查远程端口是否已被占用
- 数量限制检查:调用计数接口验证是否还能创建隧道
- ICP备案验证:如启用,检查域名是否已备案
使用示例
1. 使用用户 Token 创建TCP隧道
curl -X POST \
http://yourdomain.com/app/api/v2/proxies/add.php \
-d 'token=USER_API_TOKEN' \
-d 'nodeId=1' \
-d 'tunnelName=test-tcp' \
-d 'protocol=tcp' \
-d 'localAddress=127.0.0.1' \
-d 'localPort=8080' \
-d 'tunnelRate=100' \
-d 'remotePort=12345'bash
2. 使用用户 Token 创建HTTP隧道
curl -X POST \
http://yourdomain.com/app/api/v2/proxies/add.php \
-d 'token=USER_API_TOKEN' \
-d 'nodeId=1' \
-d 'tunnelName=test-http' \
-d 'protocol=http' \
-d 'localAddress=127.0.0.1' \
-d 'localPort=80' \
-d 'tunnelRate=100' \
-d 'bindDomain=example.com'bash
3. 已登录用户通过会话创建隧道
curl -X POST \
http://yourdomain.com/app/api/v2/proxies/add.php \
-d 'nodeId=1' \
-d 'tunnelName=test-tunnel' \
-d 'protocol=tcp' \
-d 'localAddress=127.0.0.1' \
-d 'localPort=8080' \
-d 'tunnelRate=100' \
-d 'remotePort=12345' \
-b 'PHPSESSID=your_session_id'bash
注意事项
- 该 API 仅支持 POST 请求方式
- HTTP/HTTPS协议需要提供绑定域名(bindDomain)
- TCP/UDP协议需要提供远程端口(remotePort)
- 隧道速率(tunnelRate)将以Kbps为单位输入,自动换算为KB/s存储
- 如果系统启用了ICP备案验证,HTTP/HTTPS协议的域名必须先备案
- 同一节点下远程端口不能重复
- 用户创建的隧道数量不能超过其用户组限制
最后更新时间: 2025-12-08 12:54:05
获取隧道计数
获取隧道计数 API,允许已登录用户或通过 Token 验证的用户获取自己可创建和启动的隧道数量信息。
接口列表
| 接口地址 | 请求方式 | 身份验证 | 功能说明 |
|---|---|---|---|
| /api/v2/proxies/count | POST | 是 | 获取隧道计数信息 |
身份验证
- 用户 Token 验证 - 用户通过提供自己的 API token 进行验证
- 登录会话验证 - 已登录用户可通过当前会话直接调用
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| token | string | 否* | 用户 API token(两种验证方式之一) |
响应格式
{
"success": true/false,
"message": "响应消息",
"code": HTTP状态码,
"data": {
"initiate": true/false,
"create": true/false
}
}
状态码说明
| 状态码 | 说明 |
|---|---|
| 200 | 获取成功 |
| 400 | 请求方式错误 |
| 401 | 未授权访问 |
| 403 | 用户被封禁 |
| 404 | 用户或用户组不存在 |
数据说明
- `initiate`: 用户是否还能启动更多隧道
- `create`: 用户是否还能创建更多隧道
计算规则
- 总可用隧道数 = 用户组限制隧道数 + 活跃的额外购买隧道数
- 活跃的额外购买隧道数是指结束时间为空或在未来时间的隧道增加数量
- 已创建隧道数 = 数据库中该用户的所有隧道记录数
- 已启动隧道数 = 数据库中该用户的状态为启动的隧道记录数
- 可创建隧道 = 已创建隧道数 < 总可用隧道数
- 可启动隧道 = 已启动隧道数 < 总可用隧道数
安全机制
- 身份验证:必须通过两种验证方式之一才能调用
- 数据隔离:用户只能获取自己的隧道计数信息
使用示例
1. 使用用户 Token 调用
curl -X POST \
http://yourdomain.com/app/api/v2/proxies/count.php \
-d 'token=USER_API_TOKEN'bash
2. 已登录用户通过会话调用
curl -X POST \
http://yourdomain.com/app/api/v2/proxies/count.php \
-b 'PHPSESSID=your_session_id'bash
注意事项
- 该 API 仅支持 POST 请求方式
- 返回结果中的布尔值表示用户是否还能执行相应操作
- 隧道计数基于用户所在用户组的限制以及额外购买的隧道数量
- 系统会考虑用户已经创建和启动的隧道数量来计算剩余可用数量
最后更新时间: 2025-12-08 12:54:14
删除隧道
删除隧道 API,允许已登录用户或通过 Token 验证的用户删除自己创建的FRP隧道。
接口列表
| 接口地址 | 请求方式 | 身份验证 | 功能说明 |
|---|---|---|---|
| /api/v2/proxies/delete | POST | 是 | 删除隧道 |
身份验证
- 用户 Token 验证 - 用户通过提供自己的 API token 进行验证
- 登录会话验证 - 已登录用户可通过当前会话直接调用
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| token | string | 否* | 用户 API token(两种验证方式之一) |
| id | integer | 是 | 隧道ID |
响应格式
{
"success": true/false,
"message": "响应消息",
"code": HTTP状态码,
"data": null
}
状态码说明
| 状态码 | 说明 |
|---|---|
| 200 | 删除隧道成功 |
| 400 | 请求参数错误 |
| 401 | 未授权访问 |
| 403 | 用户被封禁 |
| 404 | 用户不存在 |
| 500 | 删除隧道失败 |
安全机制
- 身份验证:必须通过两种验证方式之一才能调用
- 权限控制:用户只能删除自己创建的隧道
使用示例
1. 使用用户 Token 调用
curl -X POST \
http://yourdomain.com/app/api/v2/proxies/delete.php \
-d 'token=USER_API_TOKEN' \
-d 'id=1'bash
2. 已登录用户通过会话调用
curl -X POST \
http://yourdomain.com/app/api/v2/proxies/delete.php \
-d 'id=1' \
-b 'PHPSESSID=your_session_id'bash
注意事项
- 该 API 仅支持 POST 请求方式
- 用户只能删除自己创建的隧道
- 隧道ID为必填参数
最后更新时间: 2025-12-11 17:23:06
获取隧道列表
获取隧道列表 API,允许已登录用户或通过 Token 验证的用户获取自己创建的所有FRP隧道列表。
接口列表
| 接口地址 | 请求方式 | 身份验证 | 功能说明 |
|---|---|---|---|
| /api/v2/proxies/list | POST | 是 | 获取隧道列表 |
身份验证
- 用户 Token 验证 - 用户通过提供自己的 API token 进行验证
- 登录会话验证 - 已登录用户可通过当前会话直接调用
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| token | string | 否* | 用户 API token(两种验证方式之一) |
响应格式
{
"success": true/false,
"message": "响应消息",
"code": HTTP状态码,
"data": [
{
"id": "隧道ID",
"name": "隧道名称",
"target": "本地地址:本地端口",
"type": "协议类型",
"remote": "远程端口或域名",
"speed_limit": "速率限制",
"enabled": true/false,
"status_text": "状态文本",
"connection_address": "连接地址",
"domain_tip": "域名提示"
}
]
}
状态码说明
| 状态码 | 说明 |
|---|---|
| 200 | 获取隧道列表成功 |
| 400 | 请求方式错误 |
| 401 | 未授权访问 |
| 403 | 用户被封禁 |
| 404 | 用户不存在 |
数据说明
- `id`: 隧道唯一标识符
- `name`: 隧道名称
- `target`: 本地地址和端口
- `type`: 协议类型(TCP/UDP/HTTP/HTTPS)
- `remote`: 远程端口或绑定域名
- `speed_limit`: 隧道速率限制
- `enabled`: 隧道是否启用
- `status_text`: 隧道状态文本
- `connection_address`: 连接地址(仅TCP/UDP)
- `domain_tip`: 域名提示信息(仅HTTP/HTTPS)
安全机制
- 身份验证:必须通过两种验证方式之一才能调用
- 数据隔离:用户只能获取自己创建的隧道列表
使用示例
1. 使用用户 Token 调用
curl -X POST \
http://yourdomain.com/app/api/v2/proxies/list.php \
-d 'token=USER_API_TOKEN'bash
2. 已登录用户通过会话调用
curl -X POST \
http://yourdomain.com/app/api/v2/proxies/list.php \
-b 'PHPSESSID=your_session_id'bash
注意事项
- 该 API 仅支持 POST 请求方式
- 用户只能获取自己创建的隧道列表
- 返回数据包含隧道的完整信息,可用于前端展示
最后更新时间: 2025-12-11 17:23:16
启用/禁用隧道
启用/禁用隧道 API,允许已登录用户或通过 Token 验证的用户启用或禁用自己创建的FRP隧道。
接口列表
| 接口地址 | 请求方式 | 身份验证 | 功能说明 |
|---|---|---|---|
| /api/v2/proxies/toggle | POST | 是 | 启用/禁用隧道 |
身份验证
- 用户 Token 验证 - 用户通过提供自己的 API token 进行验证
- 登录会话验证 - 已登录用户可通过当前会话直接调用
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| token | string | 否* | 用户 API token(两种验证方式之一) |
| id | integer | 是 | 隧道ID |
| enabled | boolean | 是 | 是否启用(true/false或1/0) |
| speed_limit | string | 否* | 隧道速率限制(启用时必填) |
响应格式
{
"success": true/false,
"message": "响应消息",
"code": HTTP状态码,
"data": null
}
状态码说明
| 状态码 | 说明 |
|---|---|
| 200 | 操作成功 |
| 400 | 请求参数错误 |
| 401 | 未授权访问 |
| 403 | 用户被封禁 |
| 404 | 用户不存在 |
| 500 | 操作失败 |
安全机制
- 身份验证:必须通过两种验证方式之一才能调用
- 权限控制:用户只能操作自己创建的隧道
- 速率验证:启用隧道时需验证速率套餐有效性
- 数量限制:启用隧道时需验证是否超出隧道数量限制
使用示例
1. 使用用户 Token 启用隧道
curl -X POST \
http://yourdomain.com/app/api/v2/proxies/toggle.php \
-d 'token=USER_API_TOKEN' \
-d 'id=1' \
-d 'enabled=1' \
-d 'speed_limit=10.00 Mbps'bash
2. 使用用户 Token 禁用隧道
curl -X POST \
http://yourdomain.com/app/api/v2/proxies/toggle.php \
-d 'token=USER_API_TOKEN' \
-d 'id=1' \
-d 'enabled=0'bash
3. 已登录用户通过会话启用隧道
curl -X POST \
http://yourdomain.com/app/api/v2/proxies/toggle.php \
-d 'id=1' \
-d 'enabled=true' \
-d 'speed_limit=10.00 Mbps' \
-b 'PHPSESSID=your_session_id'bash
注意事项
- 该 API 仅支持 POST 请求方式
- 启用隧道时必须提供速率限制参数
- 禁用隧道时不需要提供速率限制参数
- 系统会验证速率套餐的有效性
- 系统会检查用户是否超出隧道数量限制
最后更新时间: 2025-12-11 17:23:42
获取隧道速率列表
获取隧道速率列表 API,允许已登录用户或通过 Token 验证的用户获取自己可用的隧道速率列表,包括默认速率和购买的额外速率。
接口列表
| 接口地址 | 请求方式 | 身份验证 | 功能说明 |
|---|---|---|---|
| /api/v2/proxies/tunnel_rate | POST | 是 | 获取隧道速率列表 |
身份验证
- 用户 Token 验证 - 用户通过提供自己的 API token 进行验证
- 登录会话验证 - 已登录用户可通过当前会话直接调用
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| token | string | 否* | 用户 API token(两种验证方式之一) |
响应格式
{
"success": true/false,
"message": "响应消息",
"code": HTTP状态码,
"data": {
"速率值": "有效期"
}
}
状态码说明
| 状态码 | 说明 |
|---|---|
| 200 | 获取隧道速率列表成功 |
| 400 | 请求方式错误 |
| 401 | 未授权访问 |
| 403 | 用户被封禁 |
| 404 | 用户不存在 |
数据说明
- 返回数据是一个键值对集合,键为速率值(如"10.00 Mbps"),值为有效期(如"永久"或具体日期时间)
- 默认用户组速率的有效期显示为"永久"
- 购买的额外速率会显示具体的有效期
安全机制
- 身份验证:必须通过两种验证方式之一才能调用
- 数据隔离:用户只能获取自己可用的速率列表
使用示例
1. 使用用户 Token 调用
curl -X POST \
http://yourdomain.com/app/api/v2/proxies/tunnel_rate.php \
-d 'token=USER_API_TOKEN'bash
2. 已登录用户通过会话调用
curl -X POST \
http://yourdomain.com/app/api/v2/proxies/tunnel_rate.php \
-b 'PHPSESSID=your_session_id'bash
注意事项
- 该 API 仅支持 POST 请求方式
- 速率值是以Mbps为单位显示的格式化字符串
- 有效期为"永久"表示该速率长期有效
- 具体日期时间格式为"YYYY-MM-DD HH:MM:SS"
最后更新时间: 2025-12-11 17:24:29
邮件发送
通用邮件发送 API,支持向指定邮箱发送自定义格式的邮件内容。该 API 支持多种身份验证方式,确保安全性和灵活性。
接口列表
| 接口地址 | 请求方式 | 身份验证 | 功能说明 |
|---|---|---|---|
| /api/v2/msic/email | POST | 是 | 发送邮件 |
身份验证
- 用户 Token 验证 - 普通用户通过提供自己的 API token 进行验证
- 系统 TIME_KEY 验证 - 系统定时任务使用预设的 TIME_KEY 进行验证
- 登录会话验证 - 已登录用户可通过当前会话直接调用
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| token | string | 否* | 用户 API token 或系统 TIME_KEY(三种验证方式之一) |
| recipient_email | string | 是 | 收件人邮箱地址 |
| email_subject | string | 是 | 邮件主题 |
| email_body | string | 是 | 邮件内容(支持 HTML 格式) |
响应格式
{
"success": true/false,
"message": "响应消息",
"code": HTTP状态码,
"data": null
}
状态码说明
| 状态码 | 说明 |
|---|---|
| 200 | 邮件发送成功 |
| 400 | 请求参数错误 |
| 401 | 未授权访问 |
| 403 | 用户被封禁 |
| 404 | 用户不存在 |
| 429 | 发送频率过高 |
| 500 | 邮件发送失败 |
安全机制
- 频率限制:同一邮箱每分钟最多接收一封邮件
- 身份验证:必须通过三种验证方式之一才能调用
- 参数校验:对邮箱格式、必填参数等进行严格校验
使用示例
1. 使用用户 Token 调用
curl -X POST \
http://yourdomain.com/app/api/v2/msic/email.php \
-d 'token=USER_API_TOKEN' \
-d 'recipient_email=user@example.com' \
-d 'email_subject=测试邮件' \
-d 'email_body=<h1>邮件内容</h1><p>这是一封测试邮件</p>'
bash
2. 使用 TIME_KEY 调用(系统定时任务)
curl -X POST \
http://yourdomain.com/app/api/v2/msic/email.php \
-d 'token=SYSTEM_TIME_KEY' \
-d 'recipient_email=admin@example.com' \
-d 'email_subject=系统通知' \
-d 'email_body=<h1>系统通知</h1><p>这是一条系统通知</p>'
bash
3. 已登录用户通过会话调用
curl -X POST \
http://yourdomain.com/app/api/v2/msic/email.php \
-d 'recipient_email=user@example.com' \
-d 'email_subject=测试邮件' \
-d 'email_body=<h1>邮件内容</h1><p>这是一封测试邮件</p>' \
-b 'PHPSESSID=your_session_id'
bash
注意事项
- 该 API 仅支持 POST 请求方式
- 邮箱地址会进行格式验证
- 所有参数均为必填项
- 同一邮箱每分钟最多发送一封邮件,防止滥用
- 邮件内容支持 HTML 格式,可根据需要自定义邮件模板
最后更新时间: 2025-12-07 14:18:23