一个基于 Flask 的 Web 应用程序,用于管理和编辑 FRP 客户端的 TOML 配置文件。
GitHub: https://github.com/nomi982/frpc-panel
#先克隆源码
git clone https://github.com/nomi982/frpc-panel.git
cd frpc-panel
# 使用 Docker Compose 一键启动
docker-compose up -d
# 访问管理界面
http://localhost:5000# 克隆项目
git clone https://github.com/nomi982/frpc-panel.git
cd frpc-panel
# 安装依赖
uv sync
# 启动应用
uv run python app.py
# 访问管理界面
http://localhost:5000- 固定使用
frpc.toml文件 - 页面加载时自动读取配置
- 实时保存修改到文件
[common]全局配置部分- 项目配置部分(如
[ssh]) - 支持项目名称修改
- 分为全局设置和项目设置两部分
- 支持批量新增/删除项目
- 交互式输入验证:
- IP地址格式验证
- 端口号范围验证(1-65535)
- 远程端口自动递增(从10000开始)
- 实时保存修改
- Python 3.13+
- UV 包管理器
uv syncuv run python app.py应用将在 http://127.0.0.1:5000 运行
frpc/
├── app.py # Flask 主应用
├── frpc.toml # FRP 客户端配置文件
├── templates/
│ └── index.html # 前端界面
├── pyproject.toml # 项目配置和依赖
├── uv.lock # 依赖锁定文件
└── README.md # 项目说明
GET /api/read_toml?file_path=frpc.toml
POST /api/write_toml
Content-Type: application/json
{
"content": {
"common": {
"server_addr": "1.1.1.1",
"server_port": 7000,
"token": "admin"
}
},
"file_path": "frpc.toml"
}
[common]
server_addr = "1.1.1.1" # 服务器地址
server_port = 7000 # 服务器端口
token = "admin123" # 身份验证令牌[ssh]
type = "tcp" # 类型 (tcp/udp/http/https)
local_ip = "127.0.0.1" # 本地IP
local_port = 22 # 本地端口
remote_port = 10022 # 远程端口- 启动应用: 运行
uv run python app.py - 访问界面: 在浏览器中打开 http://127.0.0.1:5000
- 配置全局设置: 填写服务器地址、端口和令牌
- 管理项目:
- 点击"新增项目"添加新服务
- 使用复选框选择多个项目进行批量删除
- 点击单个项目的"删除"按钮移除项目
- 实时保存: 所有修改会自动保存到
frpc.toml文件
- 后端: Flask
- 前端: 原生 JavaScript + HTML5 + CSS3
- 配置文件: TOML (使用 tomli/tomli-w 库)
- 包管理: UV
- 开发语言: Python 3.13+
uv add package-nameuv sync应用启动后访问 http://127.0.0.1:5000 测试功能
- 确保有写入
frpc.toml文件的权限 - IP 地址格式会自动验证
- 端口号必须在 1-65535 范围内
- 远程端口默认从 10000 开始自动递增
MIT License