# frp **Repository Path**: 3433/frp ## Basic Information - **Project Name**: frp - **Description**: 使用AI自主完成的基于frp实现内网穿透的工具 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-22 - **Last Updated**: 2026-05-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 🚀 FRP 内网穿透桌面管理工具 基于 [fatedier/frp](https://github.com/fatedier/frp) 开发的跨平台桌面管理工具,可视化完成 frp 服务端(frps)远程部署和客户端(frpc)本地管理,无需手动 SSH 和编辑配置文件。 该项目使用deepseek pro 4 开发,基于 Quasar 2.0 构建,使用 Electron 42 运行。主要用于测试学习vibe coding,不考虑商业用途。 ## ✨ 功能 - **🖥️ 远程服务器管理** — SSH 密码/密钥连接,多服务器管理 - **📦 frp 版本管理** — 一键下载(并行 + 断点续传),自动匹配当前平台客户端 + Linux 服务端 - **☁️ frps 远程部署** — SFTP 上传二进制 → 可视化配置 frps.toml → 一键启动/停止/查看日志 - **💻 frpc 本地管理** — 多配置方案、代理规则 GUI 编辑器、实时日志 - **🔗 联动填充** — frpc 选服务器自动填充端口和 Token ## 🛠️ 技术栈 | 层 | 技术 | |---|------| | 框架 | Quasar v2 + Vue 3 (Composition API) | | 语言 | TypeScript (strict) | | 桌面 | Electron 42 | | 状态管理 | Pinia | | SSH | ssh2 + SFTP | | 构建 | Vite + esbuild | | 包管理 | yarn | ## 🚀 快速开始 ```bash # 安装依赖 yarn # 开发模式(Electron 窗口) yarn dev -m electron # 构建生产版本 yarn build -m electron # 打包前准备:将 frp 放入内置资源目录 # 将已下载的 frp 版本文件夹复制到 resources/frp/ 下 # 例如: cp -r %APPDATA%/Electron/frp/0.69.0/frp_0.69.0_windows_amd64 resources/frp/ ``` ## 📁 项目结构 ``` src/ ├── main/services/ # 主进程服务(SSH、frps、frpc、版本管理) ├── main/ipc/ # IPC 通道处理器 ├── pages/ # 页面组件 │ ├── IndexPage # 仪表盘 │ ├── ServerListPage # 服务器列表 │ ├── ServerDetailPage # 服务器详情 + frps 管理 │ ├── FrpcManagePage # frpc 配置与管理 │ ├── VersionPage # frp 版本管理 │ └── SettingsPage # 设置 ├── components/server/ # 服务器相关组件 ├── stores/ # Pinia 状态管理 ├── shared/types/ # 共享类型定义 src-electron/ # Electron 主进程 + preload resources/frp/ # 预置 frp 二进制文件(待完善) ``` ## ⚙️ 开发说明 - **平台兼容**: `"type": "module"` + esbuild external 追加模式(不覆盖 Quasar 默认 external) - **IPC 安全**: preload contextBridge + 白名单 channel - **配置持久化**: `{userData}/config/` 下 JSON 文件存储(非 localStorage) - **进程检测**: `ps aux | grep "[f]rps"` 技巧避免匹配自身 - **SSH 阻塞**: nohup 末尾 `exit 0` 确保远程命令立即返回 ## 📝 License MIT