关于FRP内网穿透介绍
1 min read
Table of Contents
1.1 frp 是什么? #
frp 是一款高性能的反向代理应用,专注于内网穿透。它支持多种协议,包括 TCP、UDP、HTTP、HTTPS 等,并且具备 P2P 通信功能。使用 frp,您可以安全、便捷地将内网服务暴露到公网,通过拥有公网 IP 的节点进行中转。
1.2 为什么选择 frp? #
通过在具有公网 IP 的节点上部署 frp 服务端,您可以轻松地将内网服务穿透到公网,并享受以下专业特性:
- 多种协议支持:客户端服务端通信支持 TCP、QUIC、KCP 和 Websocket 等多种协议。
- TCP 连接流式复用:在单个连接上承载多个请求,减少连接建立时间,降低请求延迟。
- 代理组间的负载均衡。
- 端口复用:多个服务可以通过同一个服务端端口暴露。
- P2P 通信:流量不必经过服务器中转,充分利用带宽资源。
- 客户端插件:提供多个原生支持的客户端插件,如静态文件查看、HTTPS/HTTP 协议转换、HTTP、SOCKS5 代理等,以便满足各种需求。
- 服务端插件系统:高度可扩展的服务端插件系统,便于根据自身需求进行功能扩展。
- 用户友好的 UI 页面:提供服务端和客户端的用户界面,使配置和监控变得更加方便。
1.3 frp基本原理及特点 #
FRP(Fast Reverse Proxy)是一种轻量级、高性能的反向代理工具,可用于内网穿透、安全访问和数据传输等场景。FRP由fatedier团队开发,采用Golang语言编写,支持跨平台部署和使用。FRP的原理是利用反向代理技术将公网请求转发至内网服务器上,并将内网服务器的响应再次转发至公网请求者。在实现内网穿透时,FRP能够将公网与内网之间的隔离突破,使得公网用户可以直接访问内网服务器上的资源,从而实现远程访问和管理。FRP的主要特点如下:
内网穿透 | FRP支持内网穿透功能,能够实现公网服务访问内网服务器。 |
---|---|
通用性 | FRP支持多种协议和服务类型,如HTTP、TCP、UDP等,可用于各种不同场景。 |
安全性 | FRP支持数据加密、身份验证和IP白名单等安全机制,保障数据和用户信息安全。 |
高性能 | FRP采用Go语言编写,具有高性能和高并发性能,能够满足大规模并发请求需求。 |
易用性 | FRP使用简单,配置文件清晰明了,支持多平台部署和使用。 |
FRP适用于各种不同场景,如远程访问、内网穿透、云计算、安全访问等。FRP采用开源的方式,代码托管在Github上(https://github.com/fatedier/frp),社区活跃,生态丰富,能够满足开发者和企业的不同需求。需要注意的是,在使用FRP实现内网穿透时,应避免将敏感或不安全的端口开放至公网,以保证数据和信息安全。
frp的工作原理如下图:

1.4 frps服务端的含义: #
参数 | 含义 |
---|---|
bind_port | 表示内网计算机和服务器计算机的通信端口 ;需要打开外网计算机的端口防火墙限制 |
vhost_http_port | http 服务映射端口 ;需要打开外网计算机的端口防火墙限制 |
vhost_https_port | https 服务映射端口 ;需要打开外网计算机的端口防火墙限制 |
token | 协商令牌 ;客户端和服务器需要一致才可以生效 |
dashboard_port | frp 管理端口 ;需要打开外网计算机的端口防火墙限制 |
dashboard_user | 管理端口用户名 |
dashboard_pwd | 管理端口密码 |
log_file | 日志文件位置 |
log_level | 日志级别 ;分为debug, info, warn, error四级 |
log_max_days | 日志保存的天数 |
heartbeat_timeout | 心跳配置 |
max_pool_count | 连接池的数量 ;如果frp内网穿透客户端设置的连接池的数量大于下面的数值 ;就会修改frp客户端的连接池为下面的数值 |
max_ports_per_client | 每个客户端最大可以使用的端口 ;0表示无限制 |
authentication_timeout | frp内网穿透服务端frps和frp内网穿透的客户端frpc两台电脑的时间差 ;如果设置为0的话 ;不校验时间差异 ;默认校验时间差为900秒。 |
tcp_mux | 是否使用tcp复用 默认为true ; frp只对同意客户端的连接进行复用 |
1.5 frpc客户端的含义: #
参数 | 含义 |
---|---|
server_addr | 公网服务器的公网IP |
server_port | 和服务器端配置一致 |
token | 和服务器端配置一致 |
[ssh] / [http] | 服务名称,根据个人情况设置 |
type | 服务类型,包含 tcp, udp, http, https 等,ssh 使用 tcp即可 |
local_ip | 本机IP,建议设置127.0.0.1 ,就不用来回改了 |
remote_port | 服务器端端口 |
custom_domains | http 类型必填,需要域名解析到该公网IP上 |
Powered by BetterDocs