Skip to content

标签: FRP教程

反向代理知识:FRP的配置文件格式及完整配置参数

反向代理知识:FRP的配置文件格式及完整配置参数配置文件,frp 目前仅支持 ini 格式的配置文件,frps 和 frpc 各自支持不同的参数。
frps 主要配置服务端的一些通用参数,frpc 则需要额外配置每一个代理的详细配置。

Comments closed

反向代理知识:FRP的服务端内存和 Prometheus 监控系统

反向代理知识:FRP的服务端内存和 Prometheus 监控系统:内存
内存中存储的监控数据主要用于 Dashboard 展示,当在 frps 配置中开启 Dashboard 功能后会默认开启内部的监控。内存中的监控数据每次重启进程后会清空,监控数据可以通过 Dashboard 的地址发送 HTTP 请求获取,但是目前此 API 尚不规范,不推荐直接使用。Prometheus由于设计问题,Prometheus 对外提供的查询接口复用了 Dashboard 的地址,所以要使用 Prometheus 监控,必须要首先开启 Dashboard。在 frps.ini 中启用 Dashboard,并设置 enable_prometheus = true,则通过 http://{dashboard_addr}/metrics 可以获取到 Prometheus 的监控数据。

Comments closed

反向代理知识:FRP的范围端口映射

范围端口映射:在 frpc 的配置文件中可以指定映射多个端口,目前只支持 TCP 和 UDP 的代理类型。
这一功能通过 range: 段落标记来实现,客户端会解析这个标记中的配置,将其拆分成多个 proxy,每一个 proxy 以数字为后缀命名。

Comments closed

反向代理知识:FRP的服务端插件

frp 服务端插件的作用是在不侵入自身代码的前提下,扩展 frp 服务端的能力。
frp 服务端插件会以单独进程的形式运行,并且监听在一个端口上,对外提供 RPC 接口,响应 frps 的请求。
frps 在执行某些操作前,会根据配置向服务端插件发送 RPC 请求,根据插件的响应来执行相应的操作。

Comments closed

反向代理知识:FRP的客户端插件

默认情况下,frpc 只会转发请求到本地 TCP 或 UDP 端口,也就是通过 local_ip 和 local_port 指定的本地服务地址。

通过客户端插件的功能将一些简单的本地服务内置在 frpc 中,可以帮助用户在只启动 frpc 的情况下实现原本需要额外启动其他服务才能实现的功能。

在每一个代理的配置中,通过 plugin 指定需要使用的插件,插件的配置参数都以 plugin_ 开头。当启用客户端插件后,local_ip 和 local_port 不再需要配置。

客户端插件可以被应用在任意类型的代理中,但是需要插件本身的协议能够支持。例如静态文件访问插件可以通过 TCP 或者 HTTP 的代理暴露出去。

Comments closed

反向代理知识:FRP的STCP & SUDP&XTCP

STCP 和 SUDP 的 (S) 的含义是 Secret。其作用是为 TCP 和 UDP 类型的服务提供一种安全访问的能力,避免让端口直接暴露在公网上导致任何人都能访问到。这两种代理要求在被访问服务的机器上以及要访问的用户的机器上都部署上 frp 的客户端。被访问的服务所在机器叫做服务端,另一端叫做访问端。frp 会在访问端监听一个端口和服务端的端口做映射。访问端的用户需要提供相同的密钥才能连接成功,从而保证安全性。
XTCP 的配置方式和 STCP 很类似。但是会采用 P2P 的方式进行打洞穿透,如果成功,后续的流量将不会经过 frps,而是直接通信,不再受到 frps 所在服务器的带宽限制。由于打洞成功率较低,所以 XTCP 的可用性和稳定性无法保证。在需要可靠连接的情况下,建议使用 STCP 替代。

Comments closed

反向代理知识:FRPC/FRPS概念

frp 主要由 客户端(frpc) 和 服务端(frps) 组成,服务端通常部署在具有公网 IP 的机器上,客户端通常部署在需要穿透的内网服务所在的机器上。内网服务由于没有公网 IP,不能被非局域网内的其他用户访问。用户通过访问服务端的 frps,由 frp 负责根据请求的端口或其他信息将请求路由到对应的内网机器,从而实现通信。

Comments closed