FRP 客户端管理员界面提供了一个基于 Web 的管理面板和 API,用于控制和监控 frpc(FRP 客户端)。该界面允许管理员通过 HTTP API 端点和 Web 仪表板查看代理状态、重新加载配置以及管理客户端服务。
有关服务器端仪表板的信息,请参阅 服务器仪表板。
客户端管理员界面包含两个主要组件:
这些组件使用户能够监控代理状态、更新配置并控制 frpc 服务,而无需手动重启。
来源:client/admin_api.go42-63 assets/frpc/static/index.html1-16
客户端管理员界面可通过 frpc 的配置文件进行配置。您需要在配置文件中指定管理员界面设置。
关键配置参数
admin_addr: 管理员界面将监听的地址(默认:127.0.0.1)admin_port: 管理员界面将监听的端口(默认:7400)admin_user: 用于身份验证的用户名(可选)admin_pwd: 用于身份验证的密码(可选)客户端管理员界面暴露了多个 RESTful API 端点,用于 frpc 的程序化控制。
如果配置中设置了 admin_user 和 admin_pwd,则管理员界面将要求对所有 API 请求进行基本 HTTP 身份验证。
| 端点 | 方法 | 描述 |
|---|---|---|
/healthz | GET | 健康检查端点,如果服务正在运行则返回 200 状态码 |
/api/reload | GET | 从磁盘重新加载 frpc 配置 |
/api/stop | POST | 优雅地停止 frpc 服务 |
/api/status | GET | 返回所有代理的状态 |
/api/config | GET | 返回当前配置文件内容 |
/api/config | PUT | 更新配置文件内容 |
来源:client/admin_api.go42-63 client/admin_api.go65-262
GET /healthz
如果 frpc 服务运行正常,则返回 200 状态码。此端点无需身份验证,可用于监控和健康检查。
GET /api/reload?strictConfig=true|false
从配置文件路径重新加载 frpc 配置。可选的 strictConfig 查询参数决定配置验证是否严格。
响应
POST /api/stop
优雅地停止 frpc 服务。服务将等待 100 毫秒,以允许正在进行的连接完成,然后再关闭。
响应
GET /api/status
返回 frpc 服务管理的所有代理的状态。
响应
响应示例
GET /api/config
返回当前的 frpc 配置文件的内容。
响应
PUT /api/config
使用提供的内容更新 frpc 配置文件。配置不会自动重新加载;您需要调用 /api/reload 来应用更改。
请求:请求体中的配置文件内容。
响应
以下图表说明了客户端管理员界面的架构以及它如何与 frpc 的其他组件进行交互。
来源:client/admin_api.go17-36 client/admin_api.go42-63
客户端管理员界面包含一个基于 Vue.js 和 Element Plus 构建的 Web 仪表板。仪表板提供了用于查看代理状态和管理 frpc 服务的可视化界面。
启用管理员界面后,您可以通过导航到以下地址来访问仪表板:
http://<admin_addr>:<admin_port>/
例如,使用默认配置:
http://127.0.0.1:7400/
仪表板包含以下功能:
来源:web/frpc/src/components/Overview.vue1-86 assets/frpc/static/index.html1-16
要检查所有代理的状态:
在进行更改后重新加载 frpc 配置:
要更新 frpc 配置:
优雅地停止 frpc 服务:
来源:client/admin_api.go70-125 client/admin_api.go161-262
客户端管理员界面实现在 client/admin_api.go 文件中,该文件为每个 API 端点定义了 HTTP 处理程序。这些处理程序与客户端服务交互,执行诸如重新加载配置、获取代理状态和停止服务等操作。
API 响应遵循标准格式:
GeneralResponseWeb UI 静态文件从嵌入式资源目录提供,其中包含仪表板的 HTML、CSS 和 JavaScript 文件。
来源:client/admin_api.go37-40 client/admin_api.go127-138
身份验证:管理员界面支持基本的 HTTP 身份验证。强烈建议设置安全的用户名和密码。
访问控制:默认情况下,管理员界面监听在 127.0.0.1,将访问限制在本地机器。如果您需要远程访问,请考虑:
配置更新:通过 API 更新配置时,请仔细验证更改,因为配置不当可能会影响服务可用性。