中文 | English
RouteLink 是一款管理 OpenWrt 路由器的手机 App,支持 iOS 和 Android,界面有中文和英文。产品介绍网站:https://tsix2019.github.io/RouteLink/
- iOS 26 风格:iOS 上用系统原生的液态玻璃(Tab 栏、导航栏、底部面板);Android 上也按 iOS 26 的样式绘制:悬浮玻璃 Tab 栏、大标题导航栏、圆角分组列表。
- 自动发现:扫描手机所在的局域网,找出 OpenWrt 设备,旁路由也能找到;也可以扫描指定网段或手动输入地址。
- 多路由器:添加多台路由器,在页面左上角一键切换。
- 按设备统计流量:配合路由器插件,看每台设备的实时速率,以及任意时间段、按天、按月的用量;插件可以在 App 里一键安装。
- 改配置更安全:所有改动都走 OpenWrt 自带的"应用 + 确认"机制,App 联系不上路由器时,路由器会在 90 秒后自动撤销改动;会断网的操作都有分级的风险提示。
- SSH 终端:在 App 里直接用路由器的命令行;第一次连接时确认主机指纹,之后指纹变了会拦下来;可以一键把 App 的密钥装到路由器上。
- AI 助手:用你自己的 API Key(Claude、OpenAI、DeepSeek、通义千问,或本地的 Ollama)问路由器的情况;需要改设置时先请你确认。
- 桌面小组件和掉线通知:桌面上看当前路由器的状态、速率和在线设备数(Android 另有网速、在线设备、系统资源、外网、快捷操作 5 种,点 ↻ 立即刷新);路由器连不上、恢复、有新设备接入时发通知。
- 演示模式:没有路由器也能先试用,内置一台模拟的 OpenWrt 路由器。
- 隐私:不收集任何数据,App 只和你添加的路由器通信,只在你检查更新、打开自动检查更新或安装插件时访问 GitHub;AI 助手只在你自己启用后,才联系你选的服务商。
App 的五个里程碑(M1~M5)和路由器插件的第一期(P1)已完成,后续功能见下面的功能清单。
所有截图都来自演示模式。iOS 截图由 CI 在 iOS 26 模拟器上自动截取,Android 截图在 Android 模拟器上截取。
浅色
| iOS | Android | |
|---|---|---|
| 概览 | ![]() |
![]() |
| 设备详情 | ![]() |
![]() |
| 无线 | ![]() |
![]() |
深色
| iOS | Android | |
|---|---|---|
| 设备 | ![]() |
![]() |
| 网络 | ![]() |
![]() |
| 更多 | ![]() |
![]() |
流量统计(需要路由器插件)
| iOS | Android | |
|---|---|---|
| 流量总览 | ![]() |
![]() |
| 设备流量 | ![]() |
![]() |
| WAN 口历史 | ![]() |
![]() |
网络与系统工具
| iOS | Android | |
|---|---|---|
| 防火墙 | ![]() |
![]() |
| 实时连接 | ![]() |
![]() |
| 软件包 | ![]() |
![]() |
更多路由器功能
| iOS | Android | |
|---|---|---|
| 家长控制 | ![]() |
![]() |
| Wi-Fi 定时开关 | ![]() |
![]() |
| WireGuard | ![]() |
![]() |
| 广告过滤 | ![]() |
![]() |
| 固件升级 | ![]() |
![]() |
终端、AI 助手和小组件
| iOS | Android | |
|---|---|---|
| SSH 终端 | ![]() |
![]() |
| AI 助手 | ![]() |
![]() |
| 通知与小组件 | ![]() |
![]() |
其余截图在 docs/screenshots/zh。
✅ 已完成 🚧 计划中(括号里是阶段:M2~M4 是 App 本身的里程碑,P2~P4 是路由器插件和配套功能的分期)
概览
- ✅ 系统信息:型号、固件、内核、主机名、运行时间
- ✅ 资源:负载、内存、存储、温度(路由器支持时)
- ✅ 外网状态:协议、IP、网关、DNS、在线时长
- ✅ 实时流量曲线、在线设备数
- ✅ 重启路由器(带进度和恢复检测)
- ✅ 今日流量卡片:今天的上下行和用得最多的设备(需要插件)
- ✅ Wi-Fi 二维码分享(概览和每个 Wi-Fi 的页面)
- ✅ 问 AI:一键打开 AI 助手
设备
- ✅ 设备列表:合并 DHCP 租约、邻居表和无线终端;在线/离线、有线/无线筛选;搜索;信号强度;厂商识别
- ✅ 改名(写到路由器上;符合主机名规则的名字在 LuCI 和局域网 DNS 里也能看到)
- ✅ 绑定静态 IP、拉黑(禁止上网)、踢下线
- ✅ 网络唤醒(路由器装了 etherwake 时由路由器发送;否则 Android 手机直接发送)
- ✅ 单台设备的流量:曲线、总量、峰值、上下线记录(需要插件)
- ✅ 家长控制:按时段禁止某台设备上网(跨午夜的时段也可以),时段开始时连它正在进行的连接一起断开
- ✅ 查蹭网:扫描整个网络组,标出没信任过的设备,可以一键拉黑或加入信任;信任列表存在插件里(没装插件时存在手机上)
- ✅ 网络组里的设备显示连在哪台 AP、哪个频段;踢下线会发到它所在的 AP
无线
- ✅ 射频设置:开关、信道、频宽、发射功率、国家码
- ✅ Wi-Fi 设置:名称、密码、加密方式、隐藏、启用。手机正连着这个 Wi-Fi 时,会提示并引导重新连接
- ✅ 扫描周边 Wi-Fi
- ✅ 访客网络:一键创建(只能上网、访客之间隔离)、开关、二维码分享、删除;只在负责上网的路由器上提供
- ✅ MAC 过滤:只允许或禁止列表里的设备,不会把正在用的手机挡在外面
- ✅ Wi-Fi 定时开关:到点关闭、到点打开,可以只管某个射频;不改无线配置
- ✅ 网络组:把 AP 挂到主路由下面,当成一个网络管理;切换面板和无线 Tab 按路由器分组;同名 Wi-Fi 的名称、加密方式和密码一次改完
- ✅ 信号监测:每台无线设备的信号、信噪比、协商速率和重传率,实时曲线、历史曲线(需要插件)和漫游记录,给出改善建议
- ✅ 信道扫描与优化:周边 Wi-Fi 的信道占用图和信道表,推荐干扰最小的信道(组里的多台 AP 依次错开),一键切换
- ✅ Wi-Fi 安全检查:加密方式评级、密码强度、WPS、管理帧保护、客户端隔离等检查,一键修复并同步到同名 Wi-Fi
网络
- ✅ 接口列表和详情、重连接口
- ✅ 流量统计(需要插件):任意时间段(可以只看每天的某几个小时)的总量和曲线、设备排行(互联网或局域网)、实时速率、导出 CSV
- ✅ WAN 口历史(需要插件):按日、按月的用量,按每月重置日计算本期已用
- ✅ WAN 设置(DHCP、静态、PPPoE、DNS、MTU)和 LAN 设置(地址、DHCP 地址池;改地址时 App 在新地址确认,连不上会自动改回)
- ✅ 路由表和静态路由、实时连接(路由器反查域名)、防火墙(端口转发、通信规则、区域)、WireGuard 状态
- ✅ 一键诊断:从手机 Wi-Fi、AP 上联、WAN、上游、DNS 到外网逐段检查,再看近期稳定性和 Wi-Fi 安全,每段给出结论和建议,可以分享
- ✅ 诊断工具:ping、traceroute、nslookup,可以选在组里哪台路由器上执行、IPv4 或 IPv6,显示摘要和原始输出
- ✅ 断网和延迟记录(需要插件):路由器持续探测上一跳和外网目标,延迟和丢包曲线、可用率、断网列表和原因(重新拨号、WAN 断开、上游不通),导出 CSV
- ✅ 测速:手机测速、路由器测速(需要插件),两者对比找出瓶颈在 Wi-Fi 还是宽带;保存历史,可以填签约带宽对照
- ✅ VLAN:"端口 × VLAN"矩阵,支持新式 DSA 网桥和旧式 swconfig 交换机;高风险操作,改错了路由器会自动回滚
- ✅ VPN:WireGuard 新建隧道和对端、导出配置文件和二维码;OpenVPN 导入
.ovpn、启停 - ✅ DDNS、SQM 限速、广告过滤(adblock-fast 或 adblock)
更多
- ✅ 服务管理:启动、停止、重启、开机自启
- ✅ 系统日志、内核日志(筛选、分享)
- ✅ 网络唤醒常用设备列表
- ✅ 管理路由器(排序、编辑、删除、证书)、语言、外观、刷新间隔、降低透明度、演示模式
- ✅ 路由器插件:一键安装、检查更新、重启、清空数据、卸载
- ✅ 检查 App 更新:Android 在 App 里下载、校验并安装新版本,iOS 打开发布页;可以打开每天自动检查(默认关闭)
- ✅ 进程(结束、重新加载)、软件包(搜索、安装、卸载)、计划任务、LED、系统(时区、同步手机时间、修改管理密码)
- ✅ 备份与恢复、固件升级(官方 OpenWrt 和 ImmortalWrt 可以在线升级,也可以用本地文件)、恢复出厂。这几项都是高风险操作:先提示备份,勾选并输入路由器名称才能继续,执行时全屏提示不要断电
- ✅ SSH 终端:密码或密钥登录、主机指纹确认和固定、快捷键栏(Esc、Tab、Ctrl、方向键)、调整字号、手指滑动翻看输出、横屏;一键把 App 的公钥装到路由器
- ✅ AI 助手:Claude、OpenAI、DeepSeek、通义千问、Ollama 或任意 OpenAI 兼容的服务,用你自己的 API Key;查状态、设备、日志,改设置(踢掉或拉黑设备、改 Wi-Fi、加端口转发、重启服务或路由器)前在对话里请你确认;可以选择发送哪些数据、是否打码;每台路由器保存多段对话,可以搜索、重命名、删除
- ✅ 桌面小组件(iOS、Android):当前路由器的在线状态、速率、在线设备数,点按打开 App
- Android 共 6 种:路由器状态、网速、在线设备、系统资源、外网、快捷操作。点小组件上的 ↻ 在后台读一次路由器(需要保存了密码),系统大约每半小时也会自动更新一次。在「更多 → 桌面小组件」里预览和添加
- 从 App 里添加时没反应:小米、vivo、OPPO、华为、荣耀等手机默认不允许 App 往桌面添加东西,要在 RouteLink 的应用权限里打开「桌面快捷方式」,App 会提示并带你去设置页;也可以长按桌面空白处,从「小组件」里手动添加
- ✅ 后台通知:路由器连不上、恢复、有新设备接入(按路由器开关,需要保存密码)
- ✅ 限速(需要插件):按设备限制下载和上传,可以只在某几天的某个时段生效;开着软件加速也有效
- ✅ 流量配额(需要插件):按天、周、月给设备设上限(每月可以指定重置日),用到 80% 提醒,用完断网或限速,可以临时放行
- ✅ 访问去向和 DNS 记录(需要插件,默认关闭):设备的流量去了哪些地址和域名,DNS 查询记录可以搜索;开启前有隐私说明
- ✅ 路由器推送(需要插件):新设备接入、关注设备上下线、配额提醒、断网和恢复,由路由器直接推送到 Webhook、Bark、Server 酱、PushPlus、Telegram、企业微信、钉钉、飞书;手机不用开着 App
- ✅ Android 实时监控:在通知栏实时显示路由器的速率和在线设备,路由器连不上时提醒;Android 16 起显示为状态栏胶囊,可以选监控时长
- Android:从 Releases 下载
RouteLink-<版本>.apk安装。需要 Android 8.0 或更新版本、ARM 处理器(市面上的手机和平板都是)。 - iOS:需要 iOS 17 或更新版本(液态玻璃效果需要 iOS 26)。没有上架 App Store。Releases 里提供未签名的
RouteLink-unsigned.ipa,可以用 AltStore、SideStore、Sideloadly 用自己的 Apple ID 签名安装;支持 TrollStore 的 iOS 版本也可以用 TrollStore 安装。- IPA 里带一个桌面小组件扩展,签名时要算两个 App ID(免费 Apple ID 每 7 天最多注册 10 个)。App 和小组件通过 App Group
group.io.github.tsix2019.routelink共享数据,签名时要换成你账号下的 App Group(AltStore、SideStore 会自动处理)。如果小组件一直没有数据,多半是签名时丢了 App Group,App 本身不受影响。
- IPA 里带一个桌面小组件扩展,签名时要算两个 App ID(免费 Apple ID 每 7 天最多注册 10 个)。App 和小组件通过 App Group
-
OpenWrt 21.02 或更新版本,装有 LuCI 网页管理界面。CI 在 OpenWrt 23.05、24.10、25.12 上实测;ImmortalWrt 等衍生版尽量兼容。
-
默认需要的软件包都随 LuCI 一起安装:
rpcd、uhttpd-mod-ubus、rpcd-mod-luci、rpcd-mod-iwinfo、rpcd-mod-file。 -
可选软件包:
功能 软件包 由路由器发送网络唤醒包 luci-app-wol(带etherwake)。OpenWrt 25.12.5 上 LuCI 的唤醒接口有问题,Android 会自动改由手机发送HTTPS 访问 较新的固件默认已带;旧版本安装 luci-sslWireGuard(状态、新建隧道和对端) luci-proto-wireguardOpenVPN openvpn-openssl、luci-app-openvpnDDNS ddns-scripts、luci-app-ddns;部分服务商要另装脚本,比如ddns-scripts-cloudflareSQM 限速 sqm-scripts、luci-app-sqm广告过滤 adblock-fast和luci-app-adblock-fast,或者adblock和luci-app-adblock -
HTTPS 自签名证书:第一次连接时,App 会显示证书指纹请你确认,确认后只信任这一张证书。之后证书如果变了,App 会拦下连接并提示(可能是重置了路由器,也可能有人冒充)。
-
HTTP:可以用,但密码会以明文在局域网里传输,App 会标注"未加密"。建议在路由器上开启 HTTPS。
-
登录账号默认是
root,也可以用其他 rpcd 账号;没有权限或缺少软件包时,相应功能会给出提示。
RouteLink 插件装在路由器上,持续记录 App 没打开时也需要的数据,并替 App 执行要一直在线的规则。App 和 LuCI 页面(服务 → RouteLink)都能查看和设置:
-
每台设备的上传和下载
-
无线设备的信号、协商速率和信道繁忙度(主路由和 AP 上都可以装;只做 AP 的路由器只运行无线这一项)
-
延迟、丢包和断网记录,路由器测速
-
限速、流量配额、访问去向和 DNS 记录、事件推送
-
怎么统计:按设备 MAC 汇总连接跟踪的计数,IPv4、IPv6 都算;开着软件加速(flow offloading)也准确,在 Docker 实验环境里和终端网卡的字节数逐字节一致。
-
保存多久:流量按分钟保存 48 小时,按小时保存 90 天,按天保存 2 年;信号按分钟 7 天、按小时 30 天;延迟按分钟 7 天、按小时 90 天,断网记录 1 年。数据在路由器的
/etc/routelink,存在闪存上时默认每小时写一次(其他存储每 10 分钟),占用上限 32 MB,升级固件时会保留。 -
占用:在 x86 上(Docker 实测)52 台设备、5000 个连接时,平时占单核 0.04%,内存 1.7 MB。
-
支持:OpenWrt 23.05、24.10、25.12,以及基于 25.12 但仍用 opkg 的固件(如 Kwrt);架构 x86_64、aarch64(cortex-a53、cortex-a72、generic)、arm(cortex-a7、cortex-a9、cortex-a15)、mipsel_24kc、mips_24kc。
安装
-
App 一键安装:更多 → 路由器插件 → 安装插件。需要 root 账号,并且路由器能连上 OpenWrt 官方软件源(补装依赖)。国内访问 GitHub 慢时,可以在同一页填写下载镜像。
-
手动安装:从 Releases 下载对应版本和架构的安装包(
manifest.json里有清单),传到路由器上安装。架构可以用. /etc/openwrt_release; echo $DISTRIB_ARCH查看。# OpenWrt 23.05 / 24.10,以及仍用 opkg 的 25.12 固件(如 Kwrt,用 25.12 的 .ipk 包) opkg update opkg install routelinkd_*.ipk luci-app-routelink_*.ipk luci-i18n-routelink-zh-cn_*.ipk # OpenWrt 25.12:先信任 RouteLink 的签名公钥 wget -O /etc/apk/keys/routelink.pem https://tsix2019.github.io/RouteLink/agent/keys/routelink-apk.pem apk update apk add routelinkd-*.apk luci-app-routelink-*.apk luci-i18n-routelink-zh-cn-*.apk
-
添加软件源(以后可以在 LuCI 的软件包页面升级)。把
24.10、x86_64换成你的版本和架构:# OpenWrt 23.05 / 24.10,以及仍用 opkg 的 25.12 固件(地址里写 25.12) wget -O /etc/opkg/keys/a276fe73982c5f59 https://tsix2019.github.io/RouteLink/agent/keys/a276fe73982c5f59 echo 'src/gz routelink https://tsix2019.github.io/RouteLink/agent/24.10/x86_64' >> /etc/opkg/customfeeds.conf opkg update && opkg install routelinkd luci-app-routelink luci-i18n-routelink-zh-cn # OpenWrt 25.12 wget -O /etc/apk/keys/routelink.pem https://tsix2019.github.io/RouteLink/agent/keys/routelink-apk.pem echo 'https://tsix2019.github.io/RouteLink/agent/25.12/x86_64/packages.adb' >> /etc/apk/repositories.d/customfeeds.list apk update && apk add routelinkd luci-app-routelink luci-i18n-routelink-zh-cn
注意
- nlbwmon:它会把插件读取的连接计数清零,两者同时运行时统计会偏少。App 和 LuCI 页面都会提示,并提供"停用 nlbwmon"按钮。
- 硬件加速:开了硬件加速(或 Turbo ACC/SFE)以后,走加速通道的流量统计不到,插件会提示"统计可能偏少"。软件加速没有影响。
- 时间:路由器时间同步之前,数据只保存在内存里;按天、按月的统计以路由器的时区为准。
- 限速和配额:用 tc 在 LAN 口按设备整形,用 nftables 断网(插件自己的表,不改防火墙配置),断网时已有的连接一起切断。开着软件加速也有效,CI 在 23.05、24.10、25.12 上实测误差在 10% 以内;硬件加速的流量不受限。
- DNS 记录:默认关闭。开启后插件只读取路由器发给局域网设备的 DNS 应答,记录保存在路由器上(默认 7 天)。
- 推送:由路由器直接发给你设置的推送服务,消息里有设备名和事件;钉钉、飞书可以加签。
- 隐私:数据只保存在你的路由器上;App 只在你点检查更新或安装插件时访问 GitHub。
LuCI 页面(服务 → RouteLink)分为概览、流量、延迟、限速与配额、访问记录、推送、设置 7 页。可以在产品网站上直接点开看看(网页绘制,演示数据)。
- 路由器密码只存在系统钥匙串(iOS Keychain / Android Keystore),不写日志。也可以选择不保存密码,每次打开 App 时输入。
- 自动发现的探测请求不带任何账号信息。
- App 生成的 SSH 私钥存在钥匙串里,不会离开手机;装到路由器上的只是公钥。
- AI 助手默认不启用。只有你填了自己的 API Key、看过说明并同意后,才会把你的问题和回答需要的路由器数据(状态、设备列表、无线和防火墙设置、系统日志)发给你选的服务商。MAC 地址和公网 IP 默认打码,每类数据都可以单独关闭,密码和密钥永远不会发送。对话只存在手机上。
- 不收集任何统计数据,没有广告,App 不联系任何自有服务器。测速会连接测速服务器(默认 Cloudflare),一键诊断会访问常见的联网检测地址;检查更新、打开自动检查更新或安装插件时会访问 GitHub。
- 仓库里的测试数据只来自演示模式和一次性的虚拟路由器(Docker / QEMU),不包含任何真实路由器的数据。
需要 Node.js 22。
npm ci
npx expo run:android # 需要 Android SDK 和 JDK 17
npx expo run:ios # 需要 macOS 和 Xcode 26测试:
npm run typecheck && npm run lint && npm test
scripts/dev-router.sh up # 用 Docker 启动一台测试用的 OpenWrt
ROUTER_URL=http://127.0.0.1:18080 ROUTER_PASSWORD=routelink-test npm run test:int路由器插件(需要 Docker):
scripts/agent-test.sh # 守护进程的单元测试(ASan、UBSan)
scripts/agent-build.sh 24.10.8 x86_64 # 用 OpenWrt SDK 编译,输出到 openwrt/out/
scripts/agent-router.sh up && scripts/agent-dev-install.sh && scripts/traffic-lab.sh up
npx jest -c jest.agent.config.js # 准确性测试代码按层组织,下层不依赖上层:
modules/routelink-native 原生模块:HTTP(证书固定、无 Cookie 罐、不跟随跳转)、网络信息、网络唤醒
src/api/http HTTP 客户端接口
src/api/ubus JSON-RPC、登录(ubus / LuCI 回退)、会话续期、批量调用
src/api/connection RouterConnection:真实路由器和演示路由器
src/api/services 领域服务:系统、网络、设备、无线、服务、日志……(版本差异只在这一层处理)
src/hooks、src/state React Query 查询、本地状态(路由器、设置)
src/app、src/features 页面和功能组件(expo-router)
src/ui iOS 26 风格的组件:玻璃、列表、面板、风险确认、图表
openwrt/ 路由器插件:routelinkd(C 守护进程)、luci-app-routelink(LuCI 页面)、软件源公钥
- 设计文档:docs/superpowers/specs/2026-10-05-routelink-design.md
- M1 实施计划与执行记录:docs/superpowers/plans/2026-10-05-routelink-m1.md
- 插件设计:docs/superpowers/specs/2026-10-05-routelink-agent-design.md
- P1 实施计划与执行记录:docs/superpowers/plans/2026-10-05-routelink-p1.md
- M5 设计(二级页面、软件更新):docs/superpowers/specs/2026-10-06-routelink-m5-design.md
- M5 实施计划与执行记录:docs/superpowers/plans/2026-10-06-routelink-m5.md
功能范围参考了这些开源 OpenWrt App(只参考功能,没有使用它们的代码):







































