Skip to content

FRP 客户端

FRP(Fast Reverse Proxy)是一款高性能的反向代理工具,NetPanel 集成了 FRP 客户端(frpc),支持通过 FRP 服务端实现内网穿透。

技术原理

FRP 工作架构

FRP 采用客户端-服务端架构,需要一台具有公网 IP 的服务器运行 frps(服务端),内网设备运行 frpc(客户端):

内网设备(运行 frpc)

    │  1. frpc 主动连接 frps(控制通道)

公网服务器(运行 frps)
    │  监听公网端口(如 6022)

    │  2. 外网用户访问公网端口

外网用户

    │  3. frps 将流量通过控制通道转发给 frpc

内网服务(如 SSH:22)

核心优势:

  • frpc 主动连接 frps,无需内网设备有公网 IP
  • 支持多种代理类型,适应不同场景
  • 支持加密和压缩,保证传输安全和效率
  • 支持多路复用,减少连接建立开销

代理类型深度解析

类型原理适用场景特点
tcp直接 TCP 端口映射SSH、数据库、任意 TCP 服务最通用,一对一端口映射
udpUDP 端口映射DNS、游戏、视频流支持 UDP 协议
httpHTTP 反向代理,支持自定义域名Web 服务、API支持多域名共用 80 端口
httpsHTTPS 反向代理需要 SSL 的 Web 服务支持 SNI 路由
stcp安全 TCP(访问端也需配置 frpc)点对点安全通信不暴露公网端口,更安全
xtcpP2P TCP 穿透(尝试直连)高性能点对点传输延迟低,但需要 NAT 支持

功能概述

  • 支持 TCP、UDP、HTTP、HTTPS、STCP、XTCP 等多种代理类型
  • 每个 FRP 客户端实例可配置多个代理规则
  • 支持连接到自建或第三方 FRP 服务端
  • 实时显示连接状态和流量统计

配置说明

进入 FRP 客户端 页面,点击 新建 按钮:

服务端连接配置

字段类型必填默认值说明
名称字符串客户端实例名称
启用布尔true是否启用
服务端地址字符串FRP 服务端 IP 或域名
服务端端口整数7000FRP 服务端监听端口
Token字符串认证 Token,需与服务端一致
用户名字符串用于区分不同客户端的前缀

代理规则配置

每个客户端实例可添加多条代理规则:

字段类型必填默认值说明
代理名称字符串代理规则名称(全局唯一)
代理类型枚举tcp见上方代理类型说明
本地 IP字符串127.0.0.1内网服务 IP
本地端口整数内网服务端口
远程端口整数服务端映射端口(TCP/UDP 必填)
自定义域名字符串HTTP/HTTPS 类型的访问域名
子域名字符串HTTP/HTTPS 类型的子域名

配置示例

示例 1:TCP 代理(SSH 穿透)

通过 FRP 将内网 SSH 服务暴露到公网:

服务端连接:

字段
名称我的 FRP 客户端
服务端地址frp.example.com
服务端端口7000
Tokenyour-secret-token

代理规则:

字段
代理名称ssh
代理类型tcp
本地 IP127.0.0.1
本地端口22
远程端口6022

配置后,通过 frp.example.com:6022 即可访问内网 SSH。

示例 2:HTTP 代理(Web 服务)

将内网 Web 服务通过 HTTP 代理暴露,使用自定义域名访问:

代理规则:

字段
代理名称web
代理类型http
本地 IP127.0.0.1
本地端口3000
自定义域名app.example.com

配置后,通过 http://app.example.com 即可访问内网 Web 服务(需要 DNS 解析到 FRP 服务端 IP)。

示例 3:UDP 代理(DNS 服务)

将内网 DNS 服务暴露到公网:

代理规则:

字段
代理名称dns
代理类型udp
本地 IP127.0.0.1
本地端口53
远程端口6053

查看连接状态

在 FRP 客户端列表中,每个实例会显示:

  • 连接状态:已连接 / 连接中 / 断开
  • 代理数量:活跃代理规则数
  • 运行时间:连接持续时间

常见问题

Q:frpc 连接失败,提示 "login to server failed"?

排查步骤:

  1. 确认服务端地址和端口是否正确
  2. 检查 Token 是否与服务端配置一致
  3. 确认服务端防火墙已放行 frps 监听端口(默认 7000)
  4. 查看 NetPanel 日志获取详细错误信息

Q:代理规则启动失败,提示端口已被占用?

原因: 服务端上该远程端口已被其他代理规则占用。

解决方法: 更换一个未被占用的远程端口,或使用 HTTP/HTTPS 类型代理(共用 80/443 端口,通过域名区分)。

Q:连接不稳定,频繁断开重连?

可能原因:

  • 网络质量差,建议选择延迟低的服务器
  • frps 服务端资源不足
  • 心跳超时设置过短

优化建议: 在 frpc 配置中适当增大 heartbeat_timeout 值。

Q:FRP 与 NPS 如何选择?

对比项FRPNPS
性能⭐⭐⭐⭐⭐ 更高⭐⭐⭐⭐ 较高
Web 管理界面❌ 无(需命令行)✅ 有
配置复杂度中等较低(可视化)
协议支持TCP/UDP/HTTP/HTTPS/STCP/XTCPTCP/UDP/HTTP/HTTPS/SOCKS5
社区活跃度⭐⭐⭐⭐⭐ 非常活跃⭐⭐⭐ 一般
推荐场景追求性能、熟悉命令行需要 Web 管理、多用户场景

官方资源

资源链接
📖 官方文档https://gofrp.org/zh-cn/docs
💾 GitHub 下载https://github.com/fatedier/frp/releases
🐛 问题反馈https://github.com/fatedier/frp/issues

NetPanel 内置 FRP

NetPanel 发布包中已内置对应平台的 FRP 二进制文件,无需单独下载安装。


注意事项

需要 FRP 服务端

FRP 客户端需要配合 FRP 服务端使用。你可以使用 NetPanel 内置的 FRP 服务端 自建,也可以使用第三方 FRP 服务。

代理名称唯一性

同一 FRP 服务端上,所有客户端的代理名称必须全局唯一。建议使用 用户名_服务名 的格式命名,如 alice_ssh

Token 安全

请务必设置强 Token,避免未授权客户端连接到你的 FRP 服务端。Token 应包含大小写字母、数字和特殊字符,长度不少于 16 位。

基于 GPL-3.0 许可证发布