# luci-app-easytier-pro **Repository Path**: EasyTier-Pro/luci-app-easytier-pro ## Basic Information - **Project Name**: luci-app-easytier-pro - **Description**: LuCI app for easytier pro. - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-07 - **Last Updated**: 2026-09-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # luci-app-easytier-pro 面向 EasyTier Pro 的原生 OpenWrt LuCI 客户端。插件只管理当前路由器,不在 LuCI 中复制完整的 Console 管理能力。 ## 功能 - 支持 EasyTier Console 设备码登录,OAuth 令牌只保存在路由器上,不返回浏览器。 - 支持直接粘贴设备注册令牌。 - 优先恢复当前设备密钥,也可选择已有共享密钥,或创建共享/专用密钥。 - 查看服务、版本、本机节点、Peer 摘要和脱敏日志。 - 在概览页查看 Console 工作空间中的全部网络,并让当前路由器独立加入或退出多个网络。 - 按网络查看节点列表与节点详情;浏览器只接收路由器白名单过滤后的非敏感字段。 - 从 Console 稳定通道获取版本;优先从 Gitee 下载,失败后回退 GitHub。 - 只下载 Console 指定版本的精确 tag,不查询 GitHub 或 Gitee 的 `latest`;当前 API 未提供摘要时,通过 HTTPS 下载并在替换前校验压缩包、二进制及版本。 - 使用带持久事务标记的可恢复更新;中断、重启或新版本 CLI/RPC 不可用时恢复整套旧版本。 - 连接切换使用持久事务和统一运行时锁;启动失败、掉电或并发操作不会留下令牌与 UCI 配置不一致的状态。 - 自动维护仅绑定 EasyTier 精确 TUN 设备名的防火墙 zone。 支持 OpenWrt 22.03 及更新版本。CI 覆盖 22.03.7、23.05.6、24.10.8 和 25.12.5,包格式包括 IPK 和 APK。运行时支持 `x86_64`、`aarch64`、`armv7`、`arm`、`mips`、`mipsel`。 ## 安装和使用 1. 安装构建出的 `luci-app-easytier-pro` 包及依赖。 2. 打开“VPN → EasyTier Pro”。 3. 选择“使用 Console 登录”或“使用设备令牌”。 4. 选择设备注册密钥;普通多路由器场景建议复用共享密钥,必要时也可选择专用密钥。 5. 插件会安装所需运行时;服务上线后,在“概览”页面选择当前路由器要加入的一个或多个网络。 默认 Console API 为 `https://api.console.easytier.net`。自定义 HTTP 地址必须在设置中显式开启“不安全 HTTP”,HTTPS 始终校验证书。 ## 安全模型 - `/etc/easytier-pro/bootstrap-token`:EasyTier 设备注册令牌,权限 `0600`。 - `/etc/easytier-pro/console-session.json`:Console access/refresh token,权限 `0600`。 - `/etc/easytier-pro/machine-id`:持久路由器身份。 - UCI 只保存非敏感设置;procd 参数、ubus 返回、LuCI 日志中不包含令牌。 - EasyTier core 的控制台输出不会转发到 syslog,避免其配置服务器 URL 中的注册令牌进入系统日志。 - Console API 的 Authorization header 通过临时 `0600` curl 配置传入,不出现在进程参数中。 - Console 会话刷新与退出跨 rpcd 进程串行执行,支持 refresh token 轮换;只有明确的 `invalid_grant` 才清理会话。 - 密钥 secret 只在路由器后端读取,不会返回浏览器;撤销共享密钥会断开所有使用它的路由器。 - 默认允许 EasyTier Peer 访问路由器本身;ET→LAN 和 LAN→ET 转发默认关闭;不开放 WAN 入站端口,也不启用 masquerade。 OpenWrt 备份可能包含 `/etc/easytier-pro/`。导出或转移系统备份时,应把它视为包含凭据的敏感文件。 Console 退出只清理 Console 会话,不影响正在运行的隧道;“断开路由器”会停止服务并删除设备令牌,但保留 Console 会话。 ## 构建 把本仓库加入 OpenWrt SDK feed 后执行: ```sh ./scripts/feeds update -a ./scripts/feeds install -a make package/luci-app-easytier-pro/compile V=s ``` 本地快速检查: ```sh ./tests/run.sh ``` ## Console 后端要求 持久登录依赖 Console 的 `POST /api/v1/auth/device/refresh`。请求为 `application/x-www-form-urlencoded`,只包含 `refresh_token`;Console 使用自身的 Casdoor confidential-client 凭据完成刷新。 运行时版本只读取公开的 `GET /api/v1/releases/latest`。`stable.version` 为必填项;Console 也可以按运行时架构返回可选制品元数据: ```json { "stable": { "version": "v2.6.4", "artifacts": { "linux-x86_64": { "size": 12345678, "sha256": "64 位十六进制 SHA-256" } } } } ``` `size` 的单位为字节。插件会校验 Console 已提供的大小或 SHA-256;两者均可省略,省略时仍允许通过 HTTPS 下载,并在替换前校验压缩包结构、二进制可执行性和版本。制品键还可以是 `linux-aarch64`、`linux-armv7`、`linux-arm`、`linux-mips` 或 `linux-mipsel`。 ## 范围限制 本插件不提供网络完整 CRUD、不开放 WAN 管理入口、不自动升级运行时,也不会部署或修改 EasyTier Console。 ## 许可证 Apache License 2.0,见 [LICENSE](LICENSE)。