Files
opsx-vpn/client/README.md
T

20 lines
2.0 KiB
Markdown

# OpsX VPN 桌面客户端(第一阶段)
仓库根目录的 `client/` 是独立的 Rust + Tauri v2 + React/TypeScript 桌面项目。形态参考同级 `opsxshell`、`opsxapi`:界面运行在 Tauri WebView,服务请求经 Rust 命令完成。与仓库的 `frontend/` 管理后台独立构建。
目前仅实现对现有 `GET /api/health` 的真实检测。在“设置”中输入并保存服务端 HTTP 或 HTTPS 根地址:HTTP 可用于健康检测,但明文传输今后不应承载登录口令或设备令牌,推荐使用可信 HTTPS 域名。地址仅保存在本机前端存储中,不含账号。界面采用蓝白灰布局,线路弹窗中的节点和绿黄延时均为**演示数据**,选择仅改变页面展示。健康检查显示的耗时是控制面请求往返时间,不能当作 VPN 节点延时。没有普通用户设备 API 和系统隧道适配前,不提供登录或一键拨号。
桌面版托盘显示“尚未连接”,提供打开窗口与退出。设置页通过 Rust 只读检查 `wg`、`wg-quick` 是否出现在本机 PATH;工具存在不代表驱动、权限、路由及实际隧道可用。浏览器界面预览不会调用本机检查。
```bash
cd client
npm install
npm run dev # Tauri 桌面窗口
npm run dev:ui # 仅预览界面;浏览器里不能执行 Tauri 的真实健康检查
npm run build:ui # 界面类型检查与构建
npm run build # Tauri 安装包(需目标 OS 的构建依赖)
cd src-tauri && cargo test
```
平台首期应使用**标准 WireGuard UDP**。现有 `/api/login` 是管理账户,Peer 创建/下载要求 operator 以上权限且下载的托管 Peer 私钥由服务端保存;不能直接把这些接口和管理令牌给桌面用户。需要先设计独立的客户端认证、设备公钥注册、分配 IP、撤销和增量更新 Peer。技术依据、验收条件及后续顺序见 [SDD-002](../docs/specs/SDD-002-desktop-wireguard-client.md)。`corplink-rs` 对接的是另一套飞连私有协议,不是 opsx-vpn 的协议实现。