| 『Linux学习笔记』FRPC 详细介绍及配置解析! | 
文章目录
- 一. FRPC 详细介绍及配置解析
- FRPC 的主要功能
- FRPC 配置文件解析
- 全局配置
- 代理配置
- 第一个代理服务
- 第二个代理服务
 
 
- 配置文件整体工作流程
- 常见配置项说明
- FRPC 的使用步骤
- 注意事项
- 结论
 
 
- 二. 参考文献
一. FRPC 详细介绍及配置解析

FRPC 是 FRP(Fast Reverse Proxy) 工具中的客户端组件,用于将本地服务通过 FRP 服务器暴露到外网。FRP 是一款高性能的反向代理应用,主要用于内网穿透,使得位于内网或防火墙后的服务可以被外网访问。FRP 由 FRPS(服务端)和 FRPC(客户端)两部分组成,FRPC 运行在需要暴露服务的机器上,FRPS 运行在具有公网 IP 的服务器上。
FRPC 的主要功能
- 内网穿透:将内网服务映射到公网,使外部用户可以访问内网服务。
- 多协议支持:支持 TCP、UDP、HTTP、HTTPS 等多种协议的代理。
- 高性能:采用多线程和高效的网络模型,保证数据传输的高性能和低延迟。
- 安全性:支持多种认证方式(如 token、TLS 等),确保数据传输的安全。
- 灵活配置:通过配置文件灵活定义多个代理服务,满足不同场景的需求。
FRPC 配置文件解析
以下是用户提供的 frpc.toml 配置文件内容:
serverAddr = "115xxxx98"
serverPort = 10000
auth.method = "token"
auth.token = "KHWp6xxxEj30jTI"[[proxies]]
name = "hunxxxx01"
type = "tcp"
localPort = 10007
remotePort = 13007[[proxies]]
name = "clothesxxxx_01"
type = "tcp"
localPort = 38001
remotePort = 13008
下面对该配置文件进行逐项解析:
全局配置
-  serverAddr - 说明:FRP 服务端的地址,即 FRPS 运行的服务器的 IP 地址或域名。
- 示例值:"115.231.111.98"
 
-  serverPort - 说明:FRP 服务端监听的端口号,FRPC 将通过此端口与 FRPS 建立连接。
- 示例值:10000
 
-  auth.method - 说明:认证方法,用于 FRPC 和 FRPS 之间的身份验证。常用的认证方法包括 token和tls等。
- 示例值:"token"
 
- 说明:认证方法,用于 FRPC 和 FRPS 之间的身份验证。常用的认证方法包括 
-  auth.token - 说明:当 auth.method设置为token时,使用的认证令牌。此令牌需要与 FRPS 配置中的令牌一致,确保 FRPC 能成功连接到 FRPS。
- 示例值:"KHWp6xxxEj30jTI"
 
- 说明:当 
代理配置
配置文件中定义了两个代理服务,分别在 [[proxies]] 块中进行配置。每个 [[proxies]] 块代表一个独立的代理服务。
第一个代理服务
-  name - 说明:代理服务的名称,用于在 FRPS 上区分不同的代理。
- 示例值:"hunxxxx01"
 
-  type - 说明:代理类型,决定了数据传输的协议。常见类型包括 tcp、udp、http、https等。
- 示例值:"tcp"
 
- 说明:代理类型,决定了数据传输的协议。常见类型包括 
-  localPort - 说明:本地服务的端口号,FRPC 将转发来自 FRPS 的流量到这个端口。
- 示例值:10007
 
-  remotePort - 说明:FRPS 服务器上分配的端口号,外部用户通过访问这个端口来访问内网的服务。
- 示例值:13007
 
解释:这个代理配置将本地机器(运行 FRPC 的机器)上端口 10007 的 TCP 服务,通过 FRPS 的 115.231.111.98:10000 服务器上的端口 13007 暴露到外网。外部用户访问 115.231.111.98:13007 即可访问本地的 10007 端口服务。
第二个代理服务
-  name - 说明:代理服务的名称。
- 示例值:"clothesxxxx_01"
 
-  type - 说明:代理类型。
- 示例值:"tcp"
 
-  localPort - 说明:本地服务的端口号。
- 示例值:38001
 
-  remotePort - 说明:FRPS 服务器上分配的端口号。
- 示例值:13008
 
解释:这个代理配置将本地机器上端口 38001 的 TCP 服务,通过 FRPS 的 115.231.111.98:10000 服务器上的端口 13008 暴露到外网。外部用户访问 115.231.111.98:13008 即可访问本地的 38001 端口服务。
配置文件整体工作流程
- FRPC 启动:运行 frpc客户端,加载frpc.toml配置文件。
- 连接 FRPS:FRPC 根据 serverAddr和serverPort连接到 FRPS,并使用auth.method和auth.token进行身份验证。
- 建立代理:根据 [[proxies]]配置,FRPC 会向 FRPS 注册多个代理,每个代理对应一个本地服务。
- 数据转发: - 外部用户访问 FRPS 的 remotePort,FRPS 将流量转发给 FRPC。
- FRPC 接收到流量后,将其转发到本地的 localPort,完成数据传输。
 
- 外部用户访问 FRPS 的 
常见配置项说明
除了上述配置文件中的参数,FRPC 的配置文件还支持多种其他配置项,以满足不同的需求:
- logLevel:日志级别,如 info、warn、error。
- logFile:日志文件路径。
- protocol:协议类型,支持 tcp、kcp、udp等。
- heartbeatInterval:心跳间隔,保持连接的稳定性。
- tls_enable:是否启用 TLS 加密。
FRPC 的使用步骤
- 下载 FRP:从 FRP 的 GitHub 仓库 下载适用于操作系统的 FRP 版本。
- 配置 FRPS:在具有公网 IP 的服务器上配置并启动 FRPS,确保防火墙允许 FRPS 监听的端口(如 10000)。
- 配置 FRPC:在需要暴露服务的内网机器上,编写 frpc.toml配置文件,指定要代理的服务。
- 启动 FRPC:运行 frpc客户端,开始与 FRPS 建立连接并代理服务。
- 访问服务:通过访问 FRPS 的 remotePort,即可访问内网的服务。
注意事项
- 安全性:确保 auth.token或其他认证方式的安全,避免未经授权的访问。
- 端口管理:FRPS 服务器上的 remotePort需要合理分配,避免端口冲突。
- 网络带宽:FRP 的性能依赖于 FRPS 服务器的网络带宽,确保 FRPS 服务器具备足够的带宽以支持预期的流量。
- 日志监控:定期检查 FRPC 和 FRPS 的日志,及时发现和解决潜在问题。
结论
FRPC 是 FRP 工具中关键的客户端组件,通过配置文件可以灵活地将内网服务暴露到公网。理解和正确配置 frpc.toml 文件,对于实现高效、安全的内网穿透至关重要。上述解析希望能帮助您更好地理解 FRPC 的工作原理及配置方法。
二. 参考文献
- frp中文文档:https://gofrp.org/zh-cn/docs/overview/
- docker容器:https://hub.docker.com/r/snowdreamtech/frpc
- https://github.com/fatedier/frp/blob/dev/README_zh.md
docker run --restart=always --network host -d -v /etc/frp/frps.toml:/etc/frp/frps.toml --name frps snowdreamtech/frps
docker run --restart=always --network host -d -v /etc/frp/frpc.toml:/etc/frp/frpc.toml --name frpc snowdreamtech/frpc