飞鱼分流 API

API 接口文档

面向脚本、运维平台和自动化系统,提供认证说明、数据对象、接口清单与调用示例。

接口前缀/soloip/api/v1
使用条件额外开通 API 接口授权

统一管理节点、分流规则与代理服务

所有接口路径均基于 /soloip/api/v1 。调用前请确认设备已激活飞鱼分流,并在管理界面配置 API Token。

1. 基本信息

所有接口的基础路径都是:

/soloip/api/v1

请求头:

Authorization: Bearer <API_TOKEN>
Content-Type: application/json

说明:

  • API_TOKEN 在飞鱼分流管理页面的 API 设置中查看或重置。
  • 业务接口只接受 JSON 请求体,除非接口说明另有注明。
  • 返回 200 只代表请求已成功送达,实际业务结果仍以响应体中的 msgdataerror 为准。
  • 如果访问了未开放给外部 API 的接口,后端会返回 403 API_ENDPOINT_NOT_ALLOWED

常见错误:

HTTP 状态error说明
401API Token 无效Token 缺失、格式错误或与设备保存不一致
403API_ACCESS_REQUIRED当前授权未开通 API 接口权限
403API_TRIAL_QUOTA_EXHAUSTEDAPI 体验额度已用完
403API_ENDPOINT_NOT_ALLOWED当前 Token 不允许访问该接口
400具体错误文本请求参数格式错误
500具体错误文本服务执行失败
返回章节索引

2. 通用对象与约定

2.1 Node 代理节点

{
  "id": 1,
  "name": "HK-01",
  "protocol": "socks5",
  "config_json": "{\"server\":\"1.2.3.4\",\"port\":1080,\"username\":\"u\",\"password\":\"p\"}",
  "group": "香港",
  "created_at": "2026-05-18T10:00:00Z"
}

字段说明:

字段类型说明
idnumber节点 ID
namestring节点名称
protocolstring协议类型,例如 socks5ssvmessvlesstrojan
config_jsonstring节点配置 JSON 字符串,内容按协议不同而不同
groupstring节点分组名
created_atstring创建时间

config_json 仅表示协议配置,不建议外部程序依赖其中的内部字段名;如需批量修改节点出口,请优先使用节点批量接口。

2.2 VPNLine L2TP/PPTP 线路

{
  "id": 1,
  "type": "l2tp",
  "name": "l2tp_1",
  "server": "vpn.example.com",
  "port": 1701,
  "username": "user",
  "password": "pass",
  "secret": "ipsec-secret",
  "interface": "auto",
  "comment": "线路A",
  "dns_profile": "auto",
  "dns_servers": [],
  "is_enabled": true,
  "is_online": true
}

字段说明:

字段类型说明
idnumber线路 ID
typestring线路类型,只能是 l2tppptp
namestring系统接口名,例如 l2tp_1pptp_1
serverstringVPN 服务器地址
portnumber服务器端口
usernamestring用户名
passwordstring密码
secretstringL2TP 的 IPsec 密钥,PPTP 固定为空
interfacestring承载出口,默认 auto
commentstring备注
dns_profilestring线路专用 DNS 模式:autodomesticoutboundreturncustom
dns_serversarraycustom 模式下使用的 DNS 服务器列表
is_enabledboolean是否启用
is_onlineboolean是否已获取到 IPv4 地址,可作为“是否连接成功”的判断依据

说明:

  • is_enabled 表示启用/停用开关。
  • is_online 表示系统接口当前是否拿到 IPv4 地址,通常可作为线路是否已连通的判断。
  • 新增和导入线路后,后端默认会保持线路启用;如需停用,请调用启停接口。
  • interface 建议传 auto,也可以指定本地 WAN 名称。
  • dns_profile 仅在线路专用 DNS 功能可用时生效;若传 custom,必须同时提供 dns_servers

2.3 Rule 分流规则

{
  "id": 1,
  "ip": "192.168.50.100",
  "mac": "AA:BB:CC:DD:EE:FF",
  "comment": "客厅电视",
  "is_enabled": true,
  "target_node": "HK-01",
  "upload_limit_kbps": 5120,
  "download_limit_kbps": 20480,
  "created_at": "2026-05-18T10:00:00Z",
  "updated_at": "2026-05-18T10:00:00Z"
}

字段说明:

字段类型说明
idnumber规则 ID
ipstring设备 IP 或 CIDR;单个 IP 在存储层规范为 /32,列表响应会去掉该后缀
macstring设备 MAC,仅用于备注和展示
commentstring备注
is_enabledboolean是否启用分流
target_nodestring目标节点、分组或出口线路
upload_limit_kbpsnumber上传限速,单位 Kbps;0 表示不限速
download_limit_kbpsnumber下载限速,单位 Kbps;0 表示不限速
created_atstring创建时间
updated_atstring更新时间

target_node 支持的稳定写法:

写法说明
节点名指向单个节点,例如 HK-01
Group_<name>指向分组,例如 Group_香港
Interface:<ifname>指向指定接口或线路,例如 Interface:wan1Interface:l2tp_1Interface:pptp_1

注意:

  • 如果要指定分组,请显式写成 Group_<分组名>
  • 如果要指定线路或接口,请显式写成 Interface:<接口名>
  • Interface: 仅用于分流规则,不用于代理服务。

2.4 ProxyService 代理服务

{
  "id": 1,
  "name": "wan1-http",
  "outbound_interface": "wan1",
  "port": 20001,
  "username": "user",
  "password": "pass",
  "is_enabled": true,
  "created_at": "2026-05-18T10:00:00Z"
}

字段说明:

字段类型说明
idnumber代理服务 ID
namestring服务名称,必须唯一
outbound_interfacestring出口接口名,例如 wan1pppoe_0l2tp_1pptp_1
portnumber入口监听端口
usernamestring认证用户名
passwordstring认证密码
is_enabledboolean是否启用
created_atstring创建时间

注意:

  • outbound_interface 使用裸接口名,不加 Interface: 前缀。
  • 入口端口不能与系统保留端口冲突。
返回章节索引

3. 系统查询

GET /system/status

查询运行状态、连接数、内存和授权状态。

curl -H "Authorization: Bearer soloip_xxx" \
  http://192.168.50.1/soloip/api/v1/system/status

响应示例:

{
  "status": "running",
  "uptime": "已运行: 2小时30分15秒",
  "version": "6.0.0",
  "hasAPIAccess": true,
  "connections": 42,
  "memory": 15728640,
  "adMessage": "飞鱼工作室"
}

说明:

  • status 可能是 runningstoppedrestoring
  • connectionsmemory 主要用于运行状态监控。
  • 响应还会包含若干授权兼容字段;外部程序通常只需关注 hasAPIAccessconnectionsmemorystatus

GET /system/traffic

查询当前连接数和内存占用。

{
  "up": 0,
  "down": 0,
  "connections": 42,
  "memory": 15728640
}

说明:

  • updown 为保留字段,当前通常返回 0
  • 外部程序主要关注 connectionsmemory

GET /system/interfaces

查询可用于节点出口线路选择的网络接口列表。

{
  "interfaces": ["wan1", "wan2", "pppoe_0", "l2tp_1", "pptp_1"]
}

说明:

  • 这里会返回系统接口,以及已经启用的 L2TP/PPTP 线路名。
  • 即使某条 VPN 线路还没有真正连通,只要已启用,也可以在这里看到它的名字。

GET /system/interfaces-with-ip

查询网络接口及当前 IPv4 地址,适合代理服务创建时选出口。

{
  "interfaces": [
    { "name": "wan1", "ip": "100.64.1.2" },
    { "name": "l2tp_1", "ip": "10.0.0.2" },
    { "name": "pptp_1", "ip": "" }
  ]
}

说明:

  • 返回内容与 /system/interfaces 对齐,只是附加了当前 IPv4 地址。
  • 如果接口暂时没有 IPv4,ip 可能为空字符串。
返回章节索引

4. 节点管理

接口总览

方法路径说明
GET/nodes获取节点列表
POST/nodes添加节点
PUT/nodes/{id}编辑节点
DELETE/nodes/{id}删除节点
DELETE/nodes/batch批量删除节点
PATCH/nodes/batch批量修改节点分组、出口和专用 DNS
POST/nodes/import批量导入节点
GET/nodes/delay检测单个节点延迟
GET/nodes/delay/all检测全部节点延迟

GET /nodes

{
  "data": [
    {
      "id": 1,
      "name": "HK-01",
      "protocol": "socks5",
      "config_json": "{\"server\":\"1.2.3.4\",\"port\":1080}",
      "group": "香港",
      "created_at": "2026-05-18T10:00:00Z"
    }
  ]
}

POST /nodes

{
  "name": "HK-01",
  "protocol": "socks5",
  "config_json": "{\"server\":\"1.2.3.4\",\"port\":1080,\"username\":\"u\",\"password\":\"p\"}",
  "group": "香港"
}

响应:

{ "msg": "node added", "id": 1 }

PUT /nodes/{id}

编辑节点。config_json 为协议对应的 JSON 字符串。

{
  "name": "HK-01",
  "protocol": "socks5",
  "config_json": "{\"server\":\"1.2.3.4\",\"port\":1080}",
  "group": "香港"
}

响应:

{ "msg": "node updated", "id": 1 }

DELETE /nodes/{id}

{ "msg": "node deleted", "id": 1 }

DELETE /nodes/batch

{
  "ids": [1, 2, 3]
}

响应:

{ "msg": "deleted 3 nodes", "deleted": 3 }

PATCH /nodes/batch

批量修改节点分组、出口和专用 DNS。

{
  "ids": [1, 2],
  "group": "香港",
  "interface_name": "wan1",
  "dialer_proxy": "",
  "node_dns_profile": "custom",
  "node_dns_servers": "1.1.1.1,8.8.8.8"
}

字段说明:

字段类型说明
idsnumber[]节点 ID 列表
groupstring/null新分组
interface_namestring/null指定节点出口网卡
dialer_proxystring/null指定前置拨号出口
node_dns_profilestring/null专用 DNS 模式
node_dns_serversstring/null自定义专用 DNS 服务器,支持逗号或换行分隔

说明:

  • interface_namedialer_proxy 二选一;都为空时会清空出口设置。
  • node_dns_profile 支持 autodomesticoutboundreturncustom
  • node_dns_profile=custom 时,node_dns_servers 不能为空。

响应:

{ "msg": "updated 2 nodes", "updated": 2 }

POST /nodes/import

批量导入节点。

{
  "type": "socks5",
  "text": "1.2.3.4,1080,user,pass,HK-01\n5.6.7.8,1080,user,pass,HK-02",
  "replace": false,
  "group": "香港",
  "autoNodeName": false,
  "autoNodeNameStartIndex": 1
}

导入格式:

type每行格式
socks5IP,Port,User,Pass[,Name]
ssIP,Port,Cipher,Password[,Name]
vlessvmessvless|uuid|server|port|...vmess|uuid|server|port|...
othersname: xx, type: vless, server: xx, port: 443, ...

说明:

  • replace=true 会先清空现有节点,再导入新节点。
  • autoNodeName=true 时,导入行中的节点名会被自动编号覆盖。

响应:

{ "msg": "imported 2 nodes, skipped 0", "imported": 2, "skipped": 0 }

GET /nodes/delay

查询单个节点延迟。

查询参数:

参数必填说明
name节点名称
url测试 URL,不填则使用默认测速地址
timeout超时时间,单位毫秒,默认 5000

响应:

{ "delay": 125 }

失败时:

{ "delay": -1, "error": "An error occurred in the delay test (all endpoints failed)" }

GET /nodes/delay/all

批量检测所有节点延迟。

查询参数:

参数必填说明
url测试 URL,不填则使用默认测速地址
timeout超时时间,单位毫秒,默认 8000

响应:

{
  "data": {
    "HK-01": 125,
    "HK-02": -1
  }
}

-1 表示检测失败或超时。

返回章节索引

5. L2TP / PPTP 线路管理

接口总览

方法路径说明
GET/vpn-lines获取 L2TP/PPTP 线路列表
POST/vpn-lines新增线路
PUT/vpn-lines/{type}/{name}编辑线路
PATCH/vpn-lines/status批量启用或停用线路
DELETE/vpn-lines批量删除线路
POST/vpn-lines/import批量导入线路

GET /vpn-lines

{
  "data": [
    {
      "id": 1,
      "type": "l2tp",
      "name": "l2tp_1",
      "server": "vpn.example.com",
      "port": 1701,
      "username": "user",
      "password": "pass",
      "secret": "ipsec-secret",
      "interface": "auto",
      "comment": "线路A",
      "dns_profile": "auto",
      "dns_servers": [],
      "is_enabled": true,
      "is_online": true
    }
  ]
}

说明:

  • is_enabled 是启用开关。
  • is_online 可以作为“是否连接成功”的判断依据。
  • 如果需要真正停用或启用线路,请使用 /vpn-lines/status

POST /vpn-lines

新增 L2TP 或 PPTP 线路。

{
  "type": "l2tp",
  "name": "l2tp_1",
  "server": "vpn.example.com",
  "port": 1701,
  "username": "user",
  "password": "pass",
  "secret": "ipsec-secret",
  "interface": "auto",
  "comment": "线路A",
  "dns_profile": "auto",
  "dns_servers": []
}

说明:

  • type 只能是 l2tppptp
  • name 必须以 l2tp_pptp_ 开头,且长度不能超过 15 个字符。
  • port 不传时,L2TP 默认 1701,PPTP 默认 1723
  • interface 不传时默认为 auto
  • secret 仅 L2TP 使用;PPTP 会被忽略。
  • 新增时后端会默认启用线路;如果想先建后停,请新增后再调用启停接口。

响应:

{ "msg": "L2TP/PPTP line added", "id": 1 }

PUT /vpn-lines/{type}/{name}

编辑已有线路。路径中的 {type}{name} 用于定位原线路;请求体可以包含新的 name 以实现改名。

{
  "type": "l2tp",
  "name": "l2tp_2",
  "server": "vpn.example.com",
  "port": 1701,
  "username": "user",
  "password": "pass",
  "secret": "ipsec-secret",
  "interface": "auto",
  "comment": "改名后的线路",
  "dns_profile": "custom",
  "dns_servers": ["1.1.1.1", "8.8.8.8"],
  "is_enabled": true
}

说明:

  • 类型不可在编辑时变更。
  • 修改名称时,建议请求体中的 type 与路径一致,name 写成新名称。
  • 若将 dns_profile 设为 custom,则 dns_servers 不能为空。

响应:

{ "msg": "L2TP/PPTP line updated" }

PATCH /vpn-lines/status

批量启用或停用线路。

{
  "items": [
    { "type": "l2tp", "name": "l2tp_1" },
    { "type": "pptp", "name": "pptp_1" }
  ],
  "is_enabled": false
}

响应:

{ "msg": "updated 2 L2TP/PPTP lines", "updated": 2 }

DELETE /vpn-lines

批量删除线路。

{
  "items": [
    { "type": "l2tp", "name": "l2tp_1" },
    { "type": "pptp", "name": "pptp_1" }
  ]
}

响应:

{ "msg": "deleted 2 L2TP/PPTP lines", "deleted": 2 }

POST /vpn-lines/import

批量导入线路。导入后会自动启用新行,并更新已存在的同类型同名线路。

{
  "type": "l2tp",
  "text": "vpn1.example.com,1701,user1,pass1,secret1,l2tp_1,线路A\nvpn2.example.com,user2,pass2,secret2,l2tp_2,线路B",
  "autoLineName": false,
  "autoLineNameStartIndex": 1
}

L2TP 每行格式:

server,port,user,pass,secret,name,comment
server,user,pass,secret,name,comment

PPTP 每行格式:

server,port,user,pass,name,comment
server,user,pass,name,comment

说明:

  • type 只能是 l2tppptp
  • autoLineName=true 时,导入行中的名称会按顺序自动改成 l2tp_1l2tp_2pptp_1pptp_2
  • autoLineNameStartIndex 是自动命名起始编号。
  • 线路导入支持常见分隔符,但建议统一使用逗号,避免备注中包含分隔字符时产生歧义。

响应:

{
  "msg": "imported 2, skipped 0",
  "imported": 2,
  "skipped": 0,
  "errors": []
}

如果部分行失败,errors 会返回前几条失败原因。

返回章节索引

6. 分流规则管理

接口总览

方法路径说明
GET/rules获取分流规则列表
POST/rules添加分流规则
PUT/rules/{id}编辑分流规则
PATCH/rules/{id}/status启用或停用单条规则
DELETE/rules/{id}删除单条规则
DELETE/rules/batch批量删除规则
PATCH/rules/batch批量修改分流目标或上传/下载限速
PATCH/rules/batch/status批量启用或停用规则
PATCH/rules/batch/limits批量修改规则限速
POST/rules/import批量导入规则

GET /rules

{
  "data": [
    {
      "id": 1,
      "ip": "192.168.50.100",
      "mac": "",
      "comment": "客厅电视",
      "is_enabled": true,
      "target_node": "HK-01",
      "upload_limit_kbps": 5120,
      "download_limit_kbps": 20480,
      "created_at": "2026-05-18T10:00:00Z",
      "updated_at": "2026-05-18T10:00:00Z"
    }
  ]
}

POST /rules

{
  "ip": "192.168.50.100",
  "mac": "AA:BB:CC:DD:EE:FF",
  "comment": "客厅电视",
  "is_enabled": true,
  "target_node": "Group_香港",
  "upload_limit_kbps": 5120,
  "download_limit_kbps": 20480
}

响应:

{ "msg": "rule added and firewall updated" }

PUT /rules/{id}

{
  "ip": "192.168.50.101",
  "mac": "AA:BB:CC:DD:EE:FF",
  "comment": "客厅电视",
  "is_enabled": true,
  "target_node": "Interface:l2tp_1",
  "upload_limit_kbps": 0,
  "download_limit_kbps": 10240
}

响应:

{ "msg": "rule updated", "id": 1 }

PATCH /rules/{id}/status

{
  "is_enabled": false
}

响应:

{
  "msg": "rule status updated",
  "id": 1,
  "ip": "192.168.50.100",
  "is_enabled": false
}

DELETE /rules/{id}

{
  "msg": "rule deleted and firewall cleaned",
  "id": 1,
  "ip": "192.168.50.100"
}

DELETE /rules/batch

{
  "ips": ["192.168.50.100", "192.168.50.101"]
}

响应:

{ "msg": "deleted 2 rules", "deleted": 2 }

PATCH /rules/batch/status

{
  "ips": ["192.168.50.100", "192.168.50.101"],
  "is_enabled": true
}

响应:

{
  "msg": "updated 2 rules",
  "updated": 2,
  "is_enabled": true
}

PATCH /rules/batch

批量修改选中规则的分流目标、上传限速或下载限速。至少将一个 update_* 字段设为 true;当 update_target=true 时必须提供非空 target_node

{
  "ips": ["192.168.50.100", "192.168.50.101"],
  "update_target": true,
  "target_node": "Group_香港",
  "update_upload": true,
  "upload_limit_kbps": 5120,
  "update_download": true,
  "download_limit_kbps": 20480
}

字段说明:

字段类型说明
ipsstring[]规则 IP 列表
update_targetboolean是否更新分流目标
target_nodestring节点名、Group_<name>DIRECTREJECTInterface:<ifname>
update_uploadboolean是否更新上传限速
upload_limit_kbpsnumber上传限速,0 表示不限速
update_downloadboolean是否更新下载限速
download_limit_kbpsnumber下载限速,0 表示不限速

响应:

{
  "msg": "updated 2 rules",
  "updated": 2,
  "target_node": "Group_香港",
  "update_target": true,
  "update_upload": true,
  "update_download": true,
  "upload_limit_kbps": 5120,
  "download_limit_kbps": 20480
}

PATCH /rules/batch/limits

批量修改规则限速。

{
  "ips": ["192.168.50.100", "192.168.50.101"],
  "update_upload": true,
  "upload_limit_kbps": 5120,
  "update_download": true,
  "download_limit_kbps": 20480
}

字段说明:

字段类型说明
ipsstring[]规则 IP 列表
update_uploadboolean是否更新上传限速
upload_limit_kbpsnumber上传限速,0 表示不限速
update_downloadboolean是否更新下载限速
download_limit_kbpsnumber下载限速,0 表示不限速

约束:

  • 至少一个 update_uploadupdate_downloadtrue
  • 限速值必须大于或等于 0

响应:

{
  "msg": "updated 2 rule limits",
  "updated": 2,
  "upload_limit_kbps": 5120,
  "download_limit_kbps": 20480,
  "update_upload": true,
  "update_download": true
}

POST /rules/import

{
  "text": "192.168.50.100,Group_香港,客厅电视\n192.168.50.101,DIRECT,办公电脑\n192.168.50.102,Interface:l2tp_1,指定线路",
  "replace": false
}

格式建议:

IP,目标节点,备注

目标值建议写法:

  • 节点名,例如 HK-01
  • 分组,必须写成 Group_香港
  • 直连,写 DIRECT
  • 拒绝,写 REJECT
  • 指定线路,写 Interface:l2tp_1

响应:

{ "msg": "imported 3 rules, skipped 0", "imported": 3, "skipped": 0 }

replace=true 时会先清空原有规则,再导入新规则。

返回章节索引

7. 白名单管理

接口总览

方法路径说明
GET/whitelist获取白名单配置
PUT/whitelist保存白名单配置

GET /whitelist

{
  "domains": "baidu.com,taobao.com",
  "ips": "1.1.1.1,2.2.2.2",
  "node": "DIRECT"
}

PUT /whitelist

{
  "domains": "baidu.com,taobao.com",
  "ips": "1.1.1.1,2.2.2.2",
  "node": "DIRECT"
}

响应:

{ "msg": "whitelist updated" }

字段说明:

字段类型说明
domainsstring域名白名单,支持逗号或换行分隔
ipsstringIP 白名单,支持逗号或换行分隔
nodestring白名单流向,建议使用 DIRECT、节点名或 Group_<name>

说明:

  • 保存后会自动热重载配置并清理现有连接。
  • 如果选择分组,请写成 Group_<name>
  • 白名单不需要写 Interface:
返回章节索引

8. 代理服务管理

接口总览

方法路径说明
GET/proxy-services/quota查询代理服务配额
GET/proxy-services获取代理服务列表
POST/proxy-services创建代理服务
PUT/proxy-services/{id}编辑代理服务
PATCH/proxy-services/{id}/status启用或停用代理服务
DELETE/proxy-services/{id}删除代理服务
DELETE/proxy-services/batch批量删除代理服务
PATCH/proxy-services/batch/status批量启用或停用代理服务
POST/proxy-services/import批量导入代理服务

GET /proxy-services/quota

{
  "quota": 10,
  "used": 1
}

说明:

  • quota 是当前可用代理服务总数。
  • used 是已创建的代理服务数量。

GET /proxy-services

{
  "data": [
    {
      "id": 1,
      "name": "wan1-http",
      "outbound_interface": "wan1",
      "port": 20001,
      "username": "user",
      "password": "pass",
      "is_enabled": true,
      "created_at": "2026-05-18T10:00:00Z"
    }
  ]
}

POST /proxy-services

{
  "name": "wan1-http",
  "outbound_interface": "wan1",
  "port": 20001,
  "username": "user",
  "password": "pass",
  "is_enabled": true
}

响应:

{ "msg": "proxy service added", "id": 1 }

PUT /proxy-services/{id}

{
  "name": "wan1-http",
  "outbound_interface": "wan1",
  "port": 20001,
  "username": "user",
  "password": "new-pass",
  "is_enabled": true
}

响应:

{ "msg": "proxy service updated", "id": 1 }

PATCH /proxy-services/{id}/status

{
  "is_enabled": false
}

响应:

{
  "msg": "proxy service status updated",
  "id": 1,
  "is_enabled": false
}

DELETE /proxy-services/{id}

{ "msg": "proxy service deleted", "id": 1 }

DELETE /proxy-services/batch

{
  "ids": [1, 2, 3]
}

响应:

{ "msg": "deleted 3 proxy services", "deleted": 3 }

PATCH /proxy-services/batch/status

{
  "ids": [1, 2, 3],
  "is_enabled": true
}

响应:

{ "msg": "updated 3 proxy services", "updated": 3 }

POST /proxy-services/import

{
  "text": "wan1-http,wan1,20001,user,pass\nwan2-http,wan2,20002,user,pass",
  "replace": false
}

支持的行格式:

字段数格式
5name,outbound_interface,port,username,password
4outbound_interface,port,username,password
3outbound_interface,port,username
2outbound_interface,port

说明:

  • outbound_interface 使用裸接口名,不加 Interface:
  • replace=true 时会先清空现有代理服务。

响应:

{ "msg": "imported 2, skipped 0", "imported": 2, "skipped": 0 }
返回章节索引

9. 推荐调用流程

9.1 查询状态和可用接口

  1. GET /system/status
  2. GET /system/interfaces
  3. 如需带 IP 信息,再调用 GET /system/interfaces-with-ip

9.2 添加节点并建立分流

  1. POST /nodes
  2. GET /nodes/delay?name=<节点名>
  3. POST /rulestarget_node 填节点名、Group_<name>DIRECTREJECTInterface:<ifname>

9.3 创建或管理 L2TP / PPTP 线路

  1. POST /vpn-lines
  2. GET /vpn-lines 查看 is_enabledis_online
  3. PATCH /vpn-lines/status 启停线路
  4. 需要改名或改参数时,调用 PUT /vpn-lines/{type}/{name}

9.4 绑定代理服务出口

  1. GET /proxy-services/quota
  2. GET /system/interfaces-with-ip
  3. POST /proxy-services

9.5 批量导入

  1. POST /nodes/import
  2. POST /vpn-lines/import
  3. POST /rules/import
  4. POST /proxy-services/import
返回章节索引

10. 兼容性说明

  • 本文档中展示的路径省略了统一前缀 /soloip/api/v1
  • 规则里的 Group_Interface: 是稳定写法;请按本文档写完整前缀。
  • 代理服务里的 outbound_interface 不要加 Interface:
  • L2TP/PPTP 线路的 is_online 可以用于判断连接成功,但不等同于详细拨号日志。
  • 所有新增、编辑、批量修改接口都以 JSON 请求体为准。
  • 文档示例中的时间字段均为 ISO 8601 格式。
返回章节索引