WIS Bridge 无线网桥 REST API 配置说明
基于 HTTP Basic 认证的无线网桥 REST API 接口指南
WIS 无线网桥 REST API 配置说明:覆盖认证方式、响应格式、查询接口、三段式配置修改流程、配置导出导入、设备维护、常见异常测试与字段说明,适用于自动化开局与批量运维场景。
1. 概述
REST API 是通过 HTTP 协议在预定义的一组面向资源的 URL 上访问的接口。WIS 无线网桥的 REST API 以 JSON 包装器形式实现,支持对设备资源的创建、读取、更新和删除(CRUD)操作,可满足自动化开局、批量配置、状态监控与远程运维等需求。
本文所有主流程示例均采用 HTTP Basic 认证,每条命令直接携带用户名和密码。默认设备地址为 192.168.1.2,账号密码为 root/admin。
2. 使用准备
以下命令均在 Windows cmd.exe 中执行。设备使用自签名 HTTPS 证书,curl 需加 -k 参数跳过证书校验;如出现中文乱码,可先执行 chcp 65001 切换控制台编码。
API 基础地址与设备管理页面的访问方式保持一致,设备默认使用 HTTPS 连接:
- HTTPS 登录管理页面时,使用
https://;/cgi-bin/api/v1 - HTTP 登录管理页面时,使用
http://。/cgi-bin/api/v1
curl 常用参数说明如下:
| 参数 | 说明 |
| -k | 跳过 HTTPS 证书校验,适用于设备自签名证书测试。 |
| -u root:admin | 使用 HTTP Basic 认证,root 为用户名,admin 为密码。 |
| -X PUT / -X POST | 指定写入、提交、重启、恢复出厂、升级等操作的请求方法。 |
| -H "Content-Type: application/json" | 请求体为 JSON 时使用。 |
| -d @文件名 | 从本地 JSON 文件读取请求体,适合复杂 JSON。 |
| -o 文件名 | 把接口返回保存到本地文件。 |
3. 认证方式
HTTP Basic 认证直接使用设备 Web 登录账号和密码,每次请求携带 -u root:admin,无需先登录获取 token,便于脚本化调用。
curl -k -u root:admin -X GET https://192.168.1.2/cgi-bin/api/v1/system/info
认证成功时返回 ok=true 并在 data 中携带设备信息;密码错误或未携带认证信息时返回认证失败(401)。
4. 响应格式与状态码
接口成功时返回 ok=true;失败时返回 ok=false 和 error 对象:
{ "ok": true, "data": { } }
{ "ok": false, "error": { "code": 401, "message": "authentication required" } }
| 状态码 | 含义 | 说明 |
| 200 | 成功 | 请求已成功处理。 |
| 400 | 参数错误 | 请求参数或 JSON 请求体格式不正确。 |
| 401 | 未认证 | 用户名密码错误,或请求未携带认证信息。 |
| 404 | 端点或配置不存在 | 请求路径不存在,或指定配置文件、配置段不存在。 |
| 405 | 方法不允许 | 当前端点不支持该请求方法。 |
| 500 | 设备内部错误 | 设备处理请求时发生内部错误。 |
5. 查询接口
5.1 查看设备信息
curl -k -u root:admin -X GET https://192.168.1.2/cgi-bin/api/v1/system/info
成功时返回 ok=true,包含主机名、型号、固件版本、序列号、MAC 地址、IP 地址等设备信息。返回示例:
{ "ok": true, "data": { "hostname": "Wireless-Bridge", "serial_number": "W0B32250200113", "manufacturer": "WIS", "model": "X619", "model_number": "IPQ5018/AP-MP03.5-C1", "hardware_version": "v0", "software_version": "develop_version", "board_name": "qcom,ipq5018-ap-mp03.5-c1", "system_type": "ARMv7 Processor rev 4 (v7l)", "kernel": "5.4.213", "firmware": "OpenWrt 23.05-SNAPSHOT r0-3c83419af", "firmware_version": "23.05-SNAPSHOT", "firmware_revision": "r0-3c83419af", "target": "ipq50xx/ipq50xx_32", "rootfs_type": "squashfs", "uptime_seconds": 3491, "local_time": 1788960711, "mac_addresses": { "ath1": "de:36:43:32:7c:57", "bond0": "92:ac:2c:74:7e:6c", "br-lan": "dc:36:43:32:7c:54", "eth0": "dc:36:43:32:7c:54", "gre0": "00:00:00:00", "ip6gre0": "00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00", "ip6tnl0": "00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00", "sit0": "00:00:00:00", "wifi0": "00:03:7f:12:31:31", "wifi1": "dc:36:43:32:7c:57" }, "ip_addresses": [ { "device": "br-lan", "address": "192.168.1.2/24" } ], "status": "online" } }
5.2 查看运行状态
curl -k -u root:admin -X GET https://192.168.1.2/cgi-bin/api/v1/system/status
成功时返回 ok=true,包含 uptime、CPU、内存、网络接口、无线状态和客户端信息。
5.3 查看配置文件列表
curl -k -u root:admin -X GET https://192.168.1.2/cgi-bin/api/v1/config
成功时返回 ok=true,列出设备当前支持读取的配置文件名称。
5.4 读取无线配置
curl -k -u root:admin -X GET https://192.168.1.2/cgi-bin/api/v1/config/wireless
成功时返回 ok=true,包含 wireless 配置文件下的全部配置段。返回示例:
{ "ok": true, "data": { "file": "wireless", "sections": [ { ".type": "wifi-device", ".name": "wifi0", ".anonymous": false, "type": "qcawificfg80211", "channel": "auto", "macaddr": "dc:36:43:32:7c:56", "hwmode": "11axg", "disabled": "1" }, { ".type": "wifi-iface", ".name": "cfg023579", ".anonymous": true, "device": "wifi0", "network": "lan", "mode": "ap", "ssid": "wireless-bridge", "encryption": "none" }, { ".type": "wifi-device", ".name": "wifi1", ".anonymous": false, "type": "qcawificfg80211", "channel": "45", "macaddr": "dc:36:43:32:7c:57", "hwmode": "11axa", "band": "3", "country": "00", "txpower": "26", "htmode": "HT160", "superos_antgain": "19" }, { ".type": "wifi-iface", ".name": "wifinet1", ".anonymous": false, "device": "wifi1", "network": "lan", "mode": "ap", "ssid": "wireless-bridge", "encryption": "ccmp", "key": "12345678", "en_6g_sec_comp": "0", "sae": "1", "wds": "1", "vlan_tag": "1", "ieee80211w": "1", "add_sha256": "1" } ] } }
5.5 读取指定配置段
curl -k -u root:admin -X GET https://192.168.1.2/cgi-bin/api/v1/config/wireless/wifi1
成功时返回 ok=true 及对应配置段。section 可使用名称或类型索引。
5.6 查看在线规范
curl -k -u root:admin -X GET https://192.168.1.2/cgi-bin/api/v1/openapi.json
成功时返回 OpenAPI JSON,可用于核对设备端当前暴露的全部接口。
6. 配置修改流程
配置修改采用三段式流程:先暂存修改 → 查看暂存内容 → 确认后应用;如不提交,可随时回退暂存修改。
6.1 准备无线配置请求文件
> put.json echo {"set":{"wifinet1":{"ssid":"wireless-bridge-X6-Test123","key":"12345678a12"},"wifi1":{"txpower":"1"}}}
作用:生成 put.json。复杂 JSON 建议先写入文件,再用 -d @put.json 提交,避免 cmd 引号转义出错。
type put.json | python -m json.tool
作用:格式化检查 put.json,能正常缩进输出即表示 JSON 格式正确。
6.2 暂存无线配置修改
curl -k -u root:admin -X PUT https://192.168.1.2/cgi-bin/api/v1/config/wireless -H "Content-Type: application/json" -d @put.json
成功时返回 ok=true 并提示 changes staged,此时配置已暂存、尚未生效。
6.3 查看暂存修改
curl -k -u root:admin -X GET https://192.168.1.2/cgi-bin/api/v1/config/pending
成功时返回 ok=true,显示当前待提交的配置修改。
6.4 应用暂存修改
curl -k -u root:admin -X POST https://192.168.1.2/cgi-bin/api/v1/config/apply -H "Content-Type: application/json" -d "{}"
成功时返回 ok=true,设备提交配置并按配置类型重载服务。注意:无线或网络配置变更可能导致短暂断连。
6.5 回退暂存修改
curl -k -u root:admin -X POST https://192.168.1.2/cgi-bin/api/v1/config/revert -H "Content-Type: application/json" -d "{}"
成功时返回 ok=true,未提交的暂存修改被丢弃;配置一旦应用则无法回退。
7. 配置导出与导入
7.1 导出配置
(1)导出配置到 JSON
curl -k -u root:admin -X GET https://192.168.1.2/cgi-bin/api/v1/system/config/export -o config-export.json
作用:把配置导出接口返回保存为 config-export.json,该文件包含 base64 编码的备份包内容。
(2)生成备份包 backup.tar.gz
python -c "import json,base64; d=json.load(open('config-export.json',encoding='utf-8'))['data']; open('backup.tar.gz','wb').write(base64.b64decode(d['content']))"
作用:从 config-export.json 的 data.content 解码,生成真正的配置备份包 backup.tar.gz。
(3)导出 UCI JSON
curl -k -u root:admin -X GET "https://192.168.1.2/cgi-bin/api/v1/system/config/export?format=json" -o config-export-uci.json
作用:导出可读的 UCI JSON 配置,便于查看配置内容;不等同于 sysupgrade 备份包。
7.2 导入配置
(1)生成导入请求文件
python -c "import base64,json; json.dump({'content':base64.b64encode(open('backup.tar.gz','rb').read()).decode()}, open('import.json','w',encoding='utf-8'))"
作用:把 backup.tar.gz 编码为接口可接收的 import.json。
(2)导入恢复配置
curl -k -u root:admin -X POST https://192.168.1.2/cgi-bin/api/v1/system/config/import -H "Content-Type: application/json" -d @import.json
成功时返回 ok=true 并提示配置已恢复,需重启设备使配置完全生效。
8. 设备维护
8.1 重启设备
curl -k -u root:admin -X POST https://192.168.1.2/cgi-bin/api/v1/system/reboot
作用:让设备重启。执行后设备会短时间无法访问,通常等待 2~5 分钟后再连接。
8.2 恢复出厂设置
curl -k -u root:admin -X POST https://192.168.1.2/cgi-bin/api/v1/system/factory-reset -H "Content-Type: application/json" -d "{\"confirm\":true}"
作用:让设备恢复出厂设置并重启。该操作会清空当前配置,执行前建议先导出备份。
9. 常见异常测试
以下为常见异常场景的测试命令与预期返回,可用于验证接口的鉴权与容错行为:
| 异常场景 | 测试命令 | 预期返回 |
| 错误密码 | curl -k -u root:错误密码 -X GET https://192.168.1.2/cgi-bin/api/v1/system/info | 认证失败:{ "ok": false, "error": { "code": 401, "message": "authentication required (login first)" } } |
| 不带认证 | curl -k -X GET https://192.168.1.2/cgi-bin/api/v1/system/info | 未认证错误:{ "ok": false, "error": { "code": 401, "message": "authentication required (login first)" } } |
| 不存在端点 | curl -k -u root:admin -X GET https://192.168.1.2/cgi-bin/api/v1/not-exist | 端点不存在:{ "ok": false, "error": { "code": 404, "message": "unknown endpoint: GET /v1/not-exist" } } |
| 不存在配置 | curl -k -u root:admin -X GET https://192.168.1.2/cgi-bin/api/v1/config/not_exist | 配置不存在:{ "ok": false, "error": { "code": 404, "message": "config file \"not_exist\" not found" } } |
| 方法不允许 | curl -k -u root:admin -X GET https://192.168.1.2/cgi-bin/api/v1/config/apply | 方法不允许:{ "ok": false, "error": { "code": 405, "message": "use POST" } } |
10. 字段说明
本节列出常用配置项和返回字段,包含字段名称、用途说明和可填写范围。标注为"只读"的字段仅用于查看设备状态,不能通过配置接口修改;可配置字段请按现场网络规划和设备支持能力填写。
10.1 系统信息(GET /system/info)
系统信息接口的返回字段全部为只读,可用于资产登记与状态巡检:
| 返回字段 | 输入范围 | 说明 |
| hostname | 只读,不支持输入 | 主机名 |
| serial_number | 只读,不支持输入 | 序列号 SN |
| manufacturer | 只读,不支持输入 | 厂商 |
| model | 只读,不支持输入 | 产品型号 |
| software_version | 只读,不支持输入 | 固件版本 |
| uptime_seconds | 只读,不支持输入 | 设备启动运行时长,单位秒 |
| local_time | 只读,不支持输入 | 设备当前时间,Unix 秒 |
| mac_addresses | 只读,不支持输入 | 设备MAC |
| ip_addresses | 只读,不支持输入 | 设备IP |
| status | 只读,不支持输入 | 在线状态 |
10.2 系统设置(system @system[0])
| 字段 | 类型 | 输入范围 | 说明 |
| hostname | string | 1-63 个字符,建议字母、数字、短横线 | 主机名 |
| zonename | string | 设备支持的时区名称,例如 UTC、Asia/Shanghai | 时区 |
| description | string | 0-255 个字符 | 设备描述 |
| log_size | int | 正整数,单位 KB,以设备实际支持为准 | 日志缓冲区大小 |
10.3 网络设置 WAN(network)
WAN 端口仅路由模式下进行配置:
| 字段 | 类型 | 输入范围 | 说明 |
| proto | string | dhcp / static / pppoe | 地址类型 |
| device | string | 设备已有网络设备名 | 绑定设备 |
| ipaddr | string | 合法 IPv4 地址,proto=static 时使用 | 静态 IP |
| netmask | string | 合法 IPv4 子网掩码 | 子网掩码 |
| gateway | string | 合法 IPv4 地址 | 网关 |
| dns | string/list | 一个或多个合法 DNS 地址 | DNS 服务器 |
10.4 网络 LAN(network lan)
| 字段 | 类型 | 输入范围 | 说明 |
| proto | string | static,或设备实际支持的类型 | 地址类型 |
| device | string | 设备已有网络设备名 | 桥接设备 |
| ipaddr | string | 合法 IPv4 地址 | LAN IP 地址 |
| netmask | string | 合法 IPv4 子网掩码 | 子网掩码 |
| gateway | string | 合法 IPv4 地址 | 网关(路由下不需要配置) |
10.5 DHCP 服务器(dhcp lan)
仅路由模式下配置 DHCP 服务器:
| 字段 | 类型 | 输入范围 | 说明 |
| interface | string | 设备已有接口名 | 绑定接口 |
| start | int | 1-254,需在 LAN 网段内合理设置 | 起始地址偏移 |
| limit | int | 1-254,不能超过网段可用地址数 | 可分配地址数量 |
| leasetime | string | 数字加单位 s/m/h,例如 12h | 租约时间 |
| ignore | int | 0/1;0=开启 DHCP,1=关闭 DHCP | DHCP 服务开关 |
| dhcpv4 | string | server / disabled 或设备实际支持值 | IPv4 DHCP 模式 |
| force | int | 0/1 | 强制在接口上服务 |
10.6 无线射频(wireless wifi1)
| 字段 | 类型 | 输入范围 | 说明 |
| type | string | 请勿修改 | 驱动类型 |
| hwmode | string | 11beg=2.4G,11bea=5G;以固件支持为准 | 802.11 模式 |
| channel | int | 0/auto 或设备支持的合法信道 | 信道 |
| htmode | string | HT20 / HT40 / HT80 / HT160 | 信道带宽 |
| txpower | int | dBm,受国家码和设备能力限制 | 发射功率 |
| country | int | 设备支持的国家码 | 国家码 |
10.7 无线接口(wireless wifinet1)
| 字段 | 类型 | 输入范围 | 说明 |
| device | string | wifi1 | 绑定射频 |
| mode | string | ap / sta | 工作模式 |
| ssid | string | 1-32 个字符 | 无线名称 |
| encryption | string | ccmp / psk2 / psk2+ccmp 或设备实际支持值 | 加密方式 |
| key | string | 常见 PSK 为 8-63 个字符;开放网络不需要 | 无线密钥 |
| sae | int | 0/1 | WPA3/SAE 开关 |
| wds | int | 1 | WDS 桥接开关,必须设置1 |
| en_6g_sec_comp | int | 0/1 或设备实际支持范围 | 配置6G信道配置0 |
10.8 端口转发(firewall redirect)
| 字段 | 类型 | 输入范围 | 说明 |
| name | string | 1-64 个字符 | 条目名称 |
| src | string | 设备已有防火墙区域,通常为 wan | 源区域 |
| dest | string | 设备已有防火墙区域,通常为 lan | 目标区域 |
| proto | string/list | tcp / udp / tcp udp | 协议 |
| src_dport | int | 1-65535 | WAN 侧端口 |
| dest_ip | string | 合法 IPv4 地址 | 内网终端 IP |
| dest_port | int | 1-65535 | 内网终端端口 |
| target | string | DNAT | 动作 |
11. 注意事项
- HTTP Basic 会在每次请求中携带用户名和密码,测试环境应使用 HTTPS;
- 配置修改只会先暂存,必须执行
apply后才会写入配置并生效; - 修改 LAN/WAN IP 后设备地址可能变化,需要使用新地址重新访问。