L2TP切换接口 API 文档
接口概述
接口地址: /api/l2tp/switch
请求方法: POST
功能说明: 允许用户切换已分配端口的代理出口,支持设备原配置切换和指定地区两种模式
api接口地址 https://byjsgateway.vpsnb.net
认证参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| orderId | string | 是 | 用户名 |
| timestamp | string | 是 | 时间戳 |
| sign | string | 是 | 签名 (MD5(orderId + timestamp + api_key)) |
请求参数
基础参数(必填)
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| gateway_ip | string | 是 | 网关地址(支持IP地址或域名) |
| l2tp_usernames | array | 是 | L2TP用户名数组,支持批量操作 |
位置/网络参数(可选)
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| province | string | 否 | 省份 |
| city | string | 否 | 城市 |
| isp | string | 否 | 运营商 |
| packet_loss | integer | 否 | 丢包率 |
| rtt | integer | 否 | 延迟 |
packet_loss和rtt 越低,出口当不满足要求的时就会自动原地区切换,如果需求是出口ip尽量不变动,这两个参数请不要传。
操作模式
模式1:保持上一次配置出口切换
触发条件: 仅传入 gateway_ip 和 l2tp_usernames 参数
如果上一次配置或者开通的时候没有指定地区,则本次切换依然是随机,如果上一次配置指定了地区,则本地切换只在该地区。
模式2:指定地区切换
触发条件: 传入任意一个地区参数
请求示例
示例1:保持上一次配置出口切换(网关是IP地址)
{
"orderId": "test_user",
"timestamp": "1750173159",
"sign": "abc123def456",
"gateway_ip": "192.168.1.100",
"l2tp_usernames": ["user001", "user002"]
}示例2:保持上一次配置出口切换(网关是域名)
{
"orderId": "test_user",
"timestamp": "1750173159",
"sign": "abc123def456",
"gateway_ip": "gateway1.example.com",
"l2tp_usernames": ["user001", "user002"]
}示例3:指定地区切换
{
"orderId": "test_user",
"timestamp": "1750173159",
"sign": "abc123def456",
"gateway_ip": "192.168.1.100",
"l2tp_usernames": ["user001"],
"province": "广东",
"city": "深圳",
"isp": "电信",
"packet_loss": 10,
"rtt": 100
}响应格式
成功响应
{
"code": 0,
"msg": "所有L2TP账户切换成功: 共2个账户",
"data": {
"gateway": "gateway1.example.com",
"gateway_ip": "192.168.1.100",
"total_l2tp_accounts": 2,
"successful_l2tp_accounts": 2,
"failed_l2tp_accounts": 0,
"mode": "device_switch",
"results": [
{
"l2tp_username": "user001",
"success": true,
"message": "代理重新配置成功"
},
{
"l2tp_username": "user002",
"success": true,
"message": "代理重新配置成功"
}
]
}
}部分成功响应
{
"code": 206,
"msg": "部分L2TP账户切换成功: 成功1个,失败1个",
"data": {
"gateway_ip": "192.168.1.100",
"total_l2tp_accounts": 2,
"successful_l2tp_accounts": 1,
"failed_l2tp_accounts": 1,
"mode": "location_config",
"results": [
{
"l2tp_username": "user001",
"success": true,
"message": "L2TP配置更新成功"
},
{
"l2tp_username": "user002",
"success": false,
"message": "网关API请求失败: HTTP 500"
}
]
}
}错误响应
{
"code": 400,
"msg": "以下L2TP用户名无效: L2TP用户名 user001 不存在或未分配给当前用户; L2TP用户名 user002 已过期"
}响应字段说明
| 字段名 | 类型 | 说明 |
|---|---|---|
| code | integer | 状态码:0=成功,206=部分成功,400+=错误 |
| msg | string | 响应消息 |
| data.gateway_ip | string | 网关(域名或IP) |
| data.total_l2tp_accounts | integer | 总L2TP账户数 |
| data.successful_l2tp_accounts | integer | 成功账户数 |
| data.failed_l2tp_accounts | integer | 失败账户数 |
| data.mode | string | 操作模式:device_switch/location_config |
| data.results | array | 每个L2TP账户的详细结果 |
错误码说明
| 错误码 | 说明 |
|---|---|
| 400 | 参数错误(缺少必需参数、格式错误、L2TP用户名无效等) |
| 401 | 认证失败 |
| 404 | 网关不存在 |
| 206 | 部分成功(部分L2TP账户操作失败) |
| 500 | 服务器内部错误 |
使用场景
- 保持上一次配置出口切换: 用户需要更换使用代理的出口【如果上一次配置或者开通的时候没有指定地区,则本次切换依然是随机,如果上一次配置指定了地区,则本地切换只在该地区】
- 指定地区切换: 用户需要切换代理的地理位置或网络特性时
- 批量操作: 同时切换同一个网关下多个账户的配置
注意事项
- 支持批量操作,但建议单次请求不超过10个账户
作者:admin 创建时间:2025-06-24 23:48
最后编辑:admin 更新时间:2025-06-24 23:58
最后编辑:admin 更新时间:2025-06-24 23:58