Lucky 移动端 API 对接完整指南:快速打造随身远程管理 App
2026/9/20 7:02:48 网站建设 项目流程

Lucky 移动端 API 对接完整指南:快速打造随身远程管理 App

【免费下载链接】lucky软硬路由公网神器,ipv6/ipv4 端口转发,反向代理,DDNS,WOL,ipv4 stun内网穿透,cron,acme,rclone,ftp,webdav,filebrowser项目地址: https://gitcode.com/GitHub_Trending/luc/lucky

Lucky 是一款软硬路由公网神器,集 ipv4/ipv6 端口转发、反向代理、DDNS 域名同步、WOL 网络唤醒于一体。本文面向想给 Lucky 做一个移动端 App 的新手,带你从零跑通Lucky API对接:怎么登录拿 Token、端口转发/DDNS/唤醒这些常用接口怎么调、哪里最容易翻车。读完你手上就是一个能随时查状态、改规则、远程开机的完整方案,不用再被"管理后台只能在电脑上打开"限制住。

为什么值得自己搓一个移动端

先说场景:Lucky 跑在软路由或光猫上,管理后台默认监听16601端口,浏览器访问很方便。但出门在外时你可能就想要几件事——

  • 看一眼 DDNS 任务是不是还在正常同步(IP 换了域名没跟上,网站直接挂)
  • 确认某条端口转发规则还开着
  • 家里 PC 睡了,远程唤醒一下

这些操作在手机浏览器里点来点去很痛苦,原生 App 或者套壳 H5 体验会好很多。而 Lucky 的所有功能都有对应的 RESTful 接口,官方 Web 后台本身就是调同一套 API 的,所以"移动端开发"本质就是复用官方 Web 前端的请求逻辑,不用自己发明协议。

最小可用方案:登录 + 一个 Token

整个对接只有一道门槛:Token。除了/api/login,所有接口都要在请求头里带上Authorization,后端会逐个校验。

登录接口接受 JSON,注意字段是首字母大写Account/Password

// POST http://路由IP:16601/api/login const { token } = await post('http://192.168.31.1:16601/api/login', { Account: 'admin', Password: '你的管理密码' }) // 之后所有请求都带上它 const rules = await get('/api/portforwards', { headers: { Authorization: token }, params: { _: Date.now() } // 防缓存参数,前端一直这么干 })

拿到的 Token 是一个有效期 24 小时的 JWT,存本地即可,不用频繁重新登录。官方前端的请求封装可以直接抄思路:web/adminviews/src/request/ 里用 axios 统一设置了Content-Type: application/json、5 秒超时,并在响应ret === -1时自动跳回登录页。

分场景拆解:五类高频接口

状态与日志:App 首页数据源

首页仪表盘的数据基本就靠这两个接口轮询:GET /api/status拿系统运行状态,GET /api/logs?pre=时间戳增量拉日志(pre传上次拉取的时间戳即可)。再配上GET /api/info看版本信息,一个状态卡片就齐了。

端口转发:规则的增删改查

这是移动端最常用的模块,接口模式是典型的"列表用复数、操作走单数":

动作方法与路径
规则列表GET /api/portforwards
新增规则POST /api/portforward
修改规则PUT /api/portforward
删除规则DELETE /api/portforward?key=规则key
启用/停用GET /api/portforward/enable?key=&enable=
规则日志GET /api/portforward/logs?key=&page=&pageSize=

规则支持 tcp4/tcp6 端口范围、目标 IP、黑白名单与 256 端口参数,界面上的开关按钮对应的就是 enable 接口,移动端做一个 Toggle 直接复用即可。

DDNS:任务同步状态与 IP 历史

DDNS 模块接口同构:GET /api/ddnstasklist拉任务,POST /api/ddns添加,PUT/DELETE /api/ddns?key=改删,GET /api/ddns/enable切换开关。任务详情里能看到公网 IP、TTL、最后检测时间,移动端做成时间线展示最直观——

反向代理与 SSL 证书

反向代理同样是列表复数、操作单数:GET /api/reverseproxyrulesPOST/PUT/DELETE /api/reverseproxyrule,开关走GET /api/reverseproxyrule/enable?ruleKey=&proxyKey=&enable=,日志走GET /api/reverseproxyrule/logs。SSL 证书管理在/api/ssl上做全套增删改查,移动端如果做"一键申请证书"页面,直接对接它就行。

WOL 网络唤醒:手机端最能打的场景

WOL 是移动端体验提升最大的模块——躺在床上喊设备开机。接口只有五个,全都围绕"设备":

动作方法与路径
设备列表GET /api/wol/devices
添加设备POST /api/wol/device
修改设备PUT /api/wol/device
删除设备DELETE /api/wol/device?key=
唤醒设备GET /api/wol/device/wakeup?key=

唤醒就是一个 GET 请求,一行搞定:

await get(`/api/wol/device/wakeup?key=${deviceKey}&_=${Date.now()}`, { headers: { Authorization: token } })

踩坑清单:这些地方最容易翻车

🔑字段大小写:登录报"登录失败,登录请求解析出错",九成是字段写成了username/password。后端解析的是Account/Password,一个字母都不对。

⚠️Token 失效别死磕:接口返回ret: -1, msg: "登录失效"说明 Token 无效或已过期(24 小时)。另外注意——在后台改了管理员密码,旧 Token 立刻全部作废(登录时机的随机 key 会变),移动端收到ret=-1的正确姿势是清 Token、跳登录,而不是无限重试。

🛠️防登录锁:连续输错密码 99 次,登录功能会被禁用,只能重启 Lucky 程序。移动端做暴力重试策略前务必先读这条。

💡性能优化四件套:规则列表这类高频数据做本地缓存;首页对/api/status做心跳轮询而不是长连接;网络抖动时对唤醒、保存这类写操作做有限次重试;关键配置本地留一份,断网恢复后再同步。

延伸资源:源码就是最佳文档

  • 后端全部路由注册在一处:web/web.go,想看某个模块的完整接口表直接翻它
  • 前端每个接口的请求写法:web/adminviews/src/apis/,移动端照着改就行
  • 各模块配置结构定义:config/,请求体的字段名、类型一目了然
  • 界面截图参考:previews/,设计移动端页面时对着做
  • 想本地跑起来看接口:git clone https://gitcode.com/GitHub_Trending/luc/lucky

接口清单就这么多,登录换 Token 之后剩下的都是 CRUD 的排列组合。现在就去把 Token 跑通,你的 Lucky 移动端第一个页面半小时就能上线 🚀

【免费下载链接】lucky软硬路由公网神器,ipv6/ipv4 端口转发,反向代理,DDNS,WOL,ipv4 stun内网穿透,cron,acme,rclone,ftp,webdav,filebrowser项目地址: https://gitcode.com/GitHub_Trending/luc/lucky

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询