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