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

server/2024/12/26 22:30:03/
Linux学习笔记』FRPC 详细介绍及配置解析!

文章目录

  • 一. FRPC 详细介绍及配置解析
      • FRPC 的主要功能
      • FRPC 配置文件解析
        • 全局配置
        • 代理配置
          • 第一个代理服务
          • 第二个代理服务
      • 配置文件整体工作流程
      • 常见配置项说明
      • FRPC 的使用步骤
      • 注意事项
      • 结论
  • 二. 参考文献

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

在这里插入图片描述

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

FRPC__14">FRPC 的主要功能

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

FRPC__22">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. 连接 FRPSFRPC 根据 serverAddrserverPort 连接到 FRPS,并使用 auth.methodauth.token 进行身份验证。
  3. 建立代理:根据 [[proxies]] 配置,FRPC 会向 FRPS 注册多个代理,每个代理对应一个本地服务。
  4. 数据转发
    • 外部用户访问 FRPS 的 remotePortFRPS 将流量转发给 FRPC。
    • FRPC 接收到流量后,将其转发到本地的 localPort,完成数据传输。

常见配置项说明

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

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

FRPC__128">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 的工作原理及配置方法。

二. 参考文献

  • 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

http://www.ppmy.cn/server/153444.html

相关文章

功能全面的跨平台笔记应用:Joplin,开源替代印象笔记与 OneNote

随着我们在日常学习、工作和生活中对笔记工具的依赖日益增加,一款功能强大且支持跨平台的笔记应用显得尤为重要。 这是一款能够替代印象笔记和 OneNote 的开源平替 Joplin,是一款功能全面的跨平台笔记应用。 Joplin 是一款支持多平台的开源笔记应用&am…

wsl安装ubuntu 18.04

wsl安装ubuntu 18.04 开启wsl bios开启hyper-v服务与功能里开启wsl重启Windows wsl更新 由于当前wsl版本安装ubuntu会报错,因此升级wsl到最新版。 首先使用在线升级wsl。 wsl --update但由于网络问题,一直会报错,因此改用安装包离线安装…

Pytorch | 利用BIM/I-FGSM针对CIFAR10上的ResNet分类器进行对抗攻击

Pytorch | 利用BIM/I-FGSM针对CIFAR10上的ResNet分类器进行对抗攻击 CIFAR数据集BIM介绍基本原理算法流程 BIM代码实现BIM算法实现攻击效果 代码汇总bim.pytrain.pyadvtest.py 之前已经针对CIFAR10训练了多种分类器: Pytorch | 从零构建AlexNet对CIFAR10进行分类 Py…

如何写好一份科技报告

如何写好一份技术文档 一、科技报告写作的整体框架封面与摘要:引言:理论框架与文献综述:实验方法与材料:实验结果:结果分析与讨论:结论:参考文献:附录: 二、科技报告写作…

Ubuntu安装教程+网页部署于服务器(前端+后端+mysql数据库)新版

Ubuntu安装配置教程 1、Ubuntu安装教程 1.1、下载Ubuntu 教程:https://blog.csdn.net/weixin_73404807/article/details/132296815?ops_request_misc&request_id&biz_id102&utm_termubuntu-20.04.6-desktop&utm_mediumdistribute.pc_search_res…

ES搜索原理

ES搜索原理 bg: 搜索的时候,使用模糊查询经常出现搜索不到的情况,不如mysql的like有效。 https://www.bilibili.com/video/BV1yb421J7oX/?spm_id_from333.337.search-card.all.click&vd_source3f917722acc36b0fcca7cca2d21394e2 基础概念 索引&a…

基于单片机的智能婴儿床监护系统多功能婴儿床摇篮系统

功能描述 以STM32单片机为控制核心 蓝牙传输控制 可以进行哭闹检测、尿床检测、音乐播放、语音提醒、 哭闹时可以进行摇床 有不同的模式 自动模式和睡眠模式 实物可做&#xff0c;学习资料齐全其他功能实物也可以 电路图 PCB 源代码 #include <reg52.h> #include <in…

OpenHarmony-6.IPC/RPC组件

IPC/RPC组件机制 1.基本概念 IPC&#xff1a;设备内的进程间通信&#xff08;Inter-Process Communication&#xff09;。 RPC&#xff1a;设备间的进程间通信&#xff08;Remote Procedure Call&#xff09;。 IPC/RPC用于实现跨进程通信&#xff0c;不同的是前者使用Binder驱…