『Linux学习笔记』FRPC 详细介绍及配置解析!

一. FRPC 详细介绍及配置解析

在这里插入图片描述

FRPC 是 FRP(Fast Reverse Proxy) 工具中的客户端组件,用于将本地服务通过 FRP 服务器暴露到外网。FRP 是一款高性能的反向代理应用,主要用于内网穿透,使得位于内网或防火墙后的服务可以被外网访问。FRP 由 FRPS(服务端)和 FRPC(客户端)两部分组成,FRPC 运行在需要暴露服务的机器上,FRPS 运行在具有公网 IP 的服务器上。

FRPC 的主要功能

  1. 内网穿透:将内网服务映射到公网,使外部用户可以访问内网服务。
  2. 多协议支持:支持 TCP、UDP、HTTP、HTTPS 等多种协议的代理。
  3. 高性能:采用多线程和高效的网络模型,保证数据传输的高性能和低延迟。
  4. 安全性:支持多种认证方式(如 token、TLS 等),确保数据传输的安全。
  5. 灵活配置:通过配置文件灵活定义多个代理服务,满足不同场景的需求。

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

下面对该配置文件进行逐项解析:

全局配置
  1. serverAddr

    • 说明:FRP 服务端的地址,即 FRPS 运行的服务器的 IP 地址或域名。
    • 示例值"115.231.111.98"
  2. serverPort

    • 说明:FRP 服务端监听的端口号,FRPC 将通过此端口与 FRPS 建立连接。
    • 示例值10000
  3. auth.method

    • 说明:认证方法,用于 FRPC 和 FRPS 之间的身份验证。常用的认证方法包括 tokentls 等。
    • 示例值"token"
  4. auth.token

    • 说明:当 auth.method 设置为 token 时,使用的认证令牌。此令牌需要与 FRPS 配置中的令牌一致,确保 FRPC 能成功连接到 FRPS。
    • 示例值"KHWp6xxxEj30jTI"
代理配置

配置文件中定义了两个代理服务,分别在 [[proxies]] 块中进行配置。每个 [[proxies]] 块代表一个独立的代理服务。

第一个代理服务
  1. name

    • 说明:代理服务的名称,用于在 FRPS 上区分不同的代理。
    • 示例值"hunxxxx01"
  2. type

    • 说明:代理类型,决定了数据传输的协议。常见类型包括 tcpudphttphttps 等。
    • 示例值"tcp"
  3. localPort

    • 说明:本地服务的端口号,FRPC 将转发来自 FRPS 的流量到这个端口。
    • 示例值10007
  4. remotePort

    • 说明:FRPS 服务器上分配的端口号,外部用户通过访问这个端口来访问内网的服务。
    • 示例值13007

解释:这个代理配置将本地机器(运行 FRPC 的机器)上端口 10007 的 TCP 服务,通过 FRPS 的 115.231.111.98:10000 服务器上的端口 13007 暴露到外网。外部用户访问 115.231.111.98:13007 即可访问本地的 10007 端口服务。

第二个代理服务
  1. name

    • 说明:代理服务的名称。
    • 示例值"clothesxxxx_01"
  2. type

    • 说明:代理类型。
    • 示例值"tcp"
  3. localPort

    • 说明:本地服务的端口号。
    • 示例值38001
  4. remotePort

    • 说明:FRPS 服务器上分配的端口号。
    • 示例值13008

解释:这个代理配置将本地机器上端口 38001 的 TCP 服务,通过 FRPS 的 115.231.111.98:10000 服务器上的端口 13008 暴露到外网。外部用户访问 115.231.111.98:13008 即可访问本地的 38001 端口服务。

配置文件整体工作流程

  1. FRPC 启动:运行 frpc 客户端,加载 frpc.toml 配置文件。
  2. 连接 FRPS:FRPC 根据 serverAddrserverPort 连接到 FRPS,并使用 auth.methodauth.token 进行身份验证。
  3. 建立代理:根据 [[proxies]] 配置,FRPC 会向 FRPS 注册多个代理,每个代理对应一个本地服务。
  4. 数据转发
    • 外部用户访问 FRPS 的 remotePort,FRPS 将流量转发给 FRPC。
    • FRPC 接收到流量后,将其转发到本地的 localPort,完成数据传输。

常见配置项说明

除了上述配置文件中的参数,FRPC 的配置文件还支持多种其他配置项,以满足不同的需求:

  • logLevel:日志级别,如 infowarnerror
  • logFile:日志文件路径。
  • protocol:协议类型,支持 tcpkcpudp 等。
  • heartbeatInterval:心跳间隔,保持连接的稳定性。
  • tls_enable:是否启用 TLS 加密。

FRPC 的使用步骤

  1. 下载 FRP:从 FRP 的 GitHub 仓库 下载适用于操作系统的 FRP 版本。
  2. 配置 FRPS:在具有公网 IP 的服务器上配置并启动 FRPS,确保防火墙允许 FRPS 监听的端口(如 10000)。
  3. 配置 FRPC:在需要暴露服务的内网机器上,编写 frpc.toml 配置文件,指定要代理的服务。
  4. 启动 FRPC:运行 frpc 客户端,开始与 FRPS 建立连接并代理服务。
  5. 访问服务:通过访问 FRPS 的 remotePort,即可访问内网的服务。

注意事项

  • 安全性:确保 auth.token 或其他认证方式的安全,避免未经授权的访问。
  • 端口管理:FRPS 服务器上的 remotePort 需要合理分配,避免端口冲突。
  • 网络带宽:FRP 的性能依赖于 FRPS 服务器的网络带宽,确保 FRPS 服务器具备足够的带宽以支持预期的流量。
  • 日志监控:定期检查 FRPC 和 FRPS 的日志,及时发现和解决潜在问题。

结论

FRPC 是 FRP 工具中关键的客户端组件,通过配置文件可以灵活地将内网服务暴露到公网。理解和正确配置 frpc.toml 文件,对于实现高效、安全的内网穿透至关重要。上述解析希望能帮助您更好地理解 FRPC 的工作原理及配置方法。

二. 参考文献

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
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐