# frpcweb **Repository Path**: lgsg/frpcweb ## Basic Information - **Project Name**: frpcweb - **Description**: 封装frpc 通过web进行管理 - **Primary Language**: Python - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-05 - **Last Updated**: 2026-02-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # FRPC Web 管理界面 使用 Python + Flask 封装的 frpc Web 管理工具,支持通过 Web 界面配置 frpc,导入 TOML 配置文件,配置热重载,以及 Windows/Linux 开机启动管理。 ## 功能特性 - 🌐 **Web 界面管理** - 纯 Python 实现,无需单独前端构建 - ⚙️ **配置管理** - 支持服务器、日志、传输等配置的可视化编辑 - 📥📤 **TOML 导入导出** - 支持标准 frpc.toml 配置文件的导入和导出 - 🔄 **配置热重载** - 配置文件变更自动生效(Linux 支持信号重载,Windows 自动重启) - 🚀 **开机启动** - 支持 Windows(注册表)和 Linux(systemd)开机启动设置 - 📊 **实时监控** - 进程状态、CPU/内存占用、连接数监控 - 📄 **日志查看** - WebSocket 实时日志推送,支持日志统计 - 🔌 **代理管理** - 支持所有 frp 代理类型(TCP/UDP/HTTP/HTTPS/STCP/SUDP/XTCP/TCPMUX) ## 项目结构 ``` frpcweb/ ├── app.py # Flask 主应用 ├── config_manager.py # 配置管理模块 ├── frpc_manager.py # frpc 进程管理 ├── autostart_manager.py # 开机启动管理 ├── run.py # Python 启动脚本 ├── run.sh # Linux 启动脚本 ├── install.sh # Linux 安装脚本 ├── frpcweb.service # systemd 服务文件 ├── requirements.txt # 依赖列表 ├── README.md # 使用文档 ├── data/ │ └── frpc.toml # 配置文件存储 ├── logs/ │ └── frpc.log # 日志文件 └── templates/ ├── base.html # 基础模板 ├── index.html # 状态面板 ├── config.html # 配置管理 └── logs.html # 日志查看 ``` ## 安装使用 ### Windows ```bash # 创建虚拟环境 python -m venv venv # 激活虚拟环境 venv\Scripts\activate # 安装依赖 pip install -r requirements.txt # 启动服务 python run.py ``` ### Linux ```bash # 方式1:使用安装脚本 chmod +x install.sh ./install.sh # 方式2:手动安装 python3 -m venv venv source venv/bin/activate pip install -r requirements.txt # 启动服务 ./run.sh # 或 python run.py ``` ### 启动参数 ```bash # 默认启动(监听 0.0.0.0:8080) python run.py # 指定端口 python run.py --port 8080 # 指定地址和端口 python run.py --host 127.0.0.1 --port 5000 # 调试模式 python run.py --debug # Linux 脚本参数 ./run.sh --port 8080 ./run.sh --host 127.0.0.1 --port 5000 ./run.sh --debug ``` ### 2. 访问 Web 界面 打开浏览器访问:`http://localhost:8080` ### 3. 配置 frpc 1. 在"配置管理"页面设置服务器地址、端口和认证信息 2. 在"状态面板"添加代理规则 3. 点击"启动"按钮启动 frpc ## 支持的代理类型 | 类型 | 说明 | 特有配置 | |------|------|----------| | TCP | 普通 TCP 代理 | remotePort | | UDP | 普通 UDP 代理 | remotePort | | HTTP | HTTP 代理 | customDomains, subDomain, httpUser, httpPassword | | HTTPS | HTTPS 代理 | customDomains, subDomain | | STCP | 秘密 TCP 代理 | secretKey, allowUsers | | SUDP | 秘密 UDP 代理 | secretKey, allowUsers | | XTCP | P2P TCP 代理 | secretKey, allowUsers, serverName | | TCPMUX | TCP 多路复用 | multiplexer, remotePort | ## API 接口 | 方法 | 路径 | 功能 | |------|------|------| | GET | /api/status | 获取 frpc 运行状态 | | POST | /api/start | 启动 frpc | | POST | /api/stop | 停止 frpc | | POST | /api/restart | 重启 frpc | | POST | /api/reload | 重载配置 | | GET | /api/config | 获取当前配置 | | POST | /api/config | 保存配置 | | POST | /api/config/import | 导入 TOML 配置 | | GET | /api/config/export | 导出 TOML 配置 | | GET | /api/proxies | 获取代理列表 | | POST | /api/proxies | 添加代理 | | PUT | /api/proxies/\ | 更新代理 | | DELETE | /api/proxies/\ | 删除代理 | | GET | /api/logs | 获取日志 | | POST | /api/logs/clear | 清空日志 | | GET | /api/autostart | 获取开机启动状态 | | POST | /api/autostart | 设置开机启动 | ## 配置文件示例 ```toml serverAddr = "your-server.com" serverPort = 7000 [auth] token = "your-token" [log] to = "./logs/frpc.log" level = "info" maxDays = 3 [[proxies]] name = "ssh" type = "tcp" localIP = "127.0.0.1" localPort = 22 remotePort = 6000 [[proxies]] name = "web" type = "http" localIP = "127.0.0.1" localPort = 8080 customDomains = ["your-domain.com"] ``` ## 开机启动 ### Windows - 使用注册表 `HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run` - 在 Web 界面"状态面板"中开启"开机启动"开关 ### Linux #### 方式1:Web 界面设置(推荐) 在 Web 界面"状态面板"中开启"开机启动"开关,程序会自动创建 systemd 用户服务。 #### 方式2:手动设置系统服务 ```bash # 复制服务文件到系统目录 sudo cp frpcweb.service /etc/systemd/system/ # 编辑服务文件,修改用户名和工作目录 sudo nano /etc/systemd/system/frpcweb.service # 修改 User=your-username # 修改 WorkingDirectory=/path/to/frpcweb # 重新加载 systemd sudo systemctl daemon-reload # 启用服务 sudo systemctl enable frpcweb # 启动服务 sudo systemctl start frpcweb # 查看状态 sudo systemctl status frpcweb ``` #### 方式3:使用用户级服务 ```bash # 创建用户服务目录 mkdir -p ~/.config/systemd/user # 复制服务文件 cp frpcweb.service ~/.config/systemd/user/ # 编辑服务文件,修改工作目录 nano ~/.config/systemd/user/frpcweb.service # 重新加载 t systemctl --user daemon-reload # 启用并启动 t systemctl --user enable frpcweb t systemctl --user start frpcweb ``` ### macOS - 使用 launchd - plist 文件位置:`~/Library/LaunchAgents/com.user.frpcweb.plist` - 在 Web 界面"状态面板"中开启"开机启动"开关即可 ## 注意事项 1. **frpc 可执行文件** - 程序会自动搜索 PATH 中的 frpc,也可以手动设置路径 2. **配置文件位置** - 默认保存在 `data/frpc.toml` 3. **日志文件位置** - 默认保存在 `logs/frpc.log` 4. **权限问题** - Linux/macOS 下可能需要 sudo 权限才能设置开机启动 ## 技术栈 - **后端**: Flask, Flask-SocketIO - **进程管理**: psutil, subprocess - **文件监控**: watchdog - **配置解析**: toml - **前端**: 原生 HTML/CSS/JavaScript ## License MIT License