技术分享
影视相关
摄影摄像
编剧相关
学习笔记
表演相关
人物故事
纪录片
播音主持
话剧相关
舞蹈相关
戏剧相关
设计相关
编导相关
美术相关
剪辑相关
音乐相关
短视频
知行合一
使用Frp配置内网访问(穿透)
上级 项目
type
status
date
slug
summary
password
子级 项目
tags
category
一、Frp简介
frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议,且支持 P2P 通信。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
frp 项目地址: https://github.com/fatedier/frp
二、Frp特性
通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括:
- 客户端服务端通信支持 TCP、QUIC、KCP 以及 Websocket 等多种协议。
- 采用 TCP 连接流式复用,在单个连接间承载更多请求,节省连接建立时间,降低请求延迟。
- 代理组间的负载均衡。
- 端口复用,多个服务通过同一个服务端端口暴露。
- 支持 P2P 通信,流量不经过服务器中转,充分利用带宽资源。
- 多个原生支持的客户端插件(静态文件查看,HTTPS/HTTP 协议转换,HTTP、SOCK5 代理等),便于独立使用 frp 客户端完成某些工作。
- 高度扩展性的服务端插件系统,易于结合自身需求进行功能扩展。
- 服务端和客户端 UI 页面。
三、架构与工作原理
frp 主要由两个组件组成:客户端(frpc) 和 服务端(frps)。通常情况下,服务端部署在具有公网 IP 地址的机器上,而客户端部署在需要穿透的内网服务所在的机器上。
由于内网服务缺乏公网 IP 地址,因此无法直接被非局域网内的用户访问。用户通过访问服务端的 frps,frp 负责根据请求的端口或其他信息将请求路由到相应的内网机器,从而实现通信。

四、相关概念
4.1、代理
在 frp 中,一个代理对应一个需要公开访问的内网服务。一个客户端可以同时配置多个代理,以满足不同的需求。
4.2、代理类型
frp 支持多种代理类型,以适应不同的使用场景。以下是一些常见的代理类型:
- TCP:提供纯粹的 TCP 端口映射,使服务端能够根据不同的端口将请求路由到不同的内网服务。
- UDP:提供纯粹的 UDP 端口映射,与 TCP 代理类似,但用于 UDP 流量。
- HTTP:专为 HTTP 应用设计,支持修改 Host Header 和增加鉴权等额外功能。
- HTTPS:类似于 HTTP 代理,但专门用于处理 HTTPS 流量。
- STCP:提供安全的 TCP 内网代理,要求在被访问者和访问者的机器上都部署 frpc,不需要在服务端暴露端口。
- SUDP:提供安全的 UDP 内网代理,与 STCP 类似,需要在被访问者和访问者的机器上都部署 frpc,不需要在服务端暴露端口。
- XTCP:点对点内网穿透代理,与 STCP 类似,但流量不需要经过服务器中转。
- TCPMUX:支持服务端 TCP 端口的多路复用,允许通过同一端口访问不同的内网服务。
每种代理类型适用于不同的使用情境,您可以根据需求选择合适的代理类型来配置 frp。
五、安装
5.1、需求描述
公司有一台内网服务器A和一台具有公网IP的云服务器B ,内网服务器上有一个服务,如jenkins服务,需要将内网jenkins服务发布到公网进行访问,即通过云服务器B的公网IP进行访问。
5.2、下载安装包
从官方GitHub的Release页面下载最新版的二进制文件:https://github.com/fatedier/frp/releases ,截至目前最新版为:v0.54.0,linux版下载地址:https://github.com/fatedier/frp/releases/download/v0.54.0/frp_0.54.0_linux_amd64.tar.gz
5.3、公网服务器部署frp
(1) 上传安装包并解压
(2) 修改配置
(3) 创建日志目录
(4) 启动服务
5.4、内网服务器部署frp
(1) 上传安装包并解压
(2) 创建代理配置目录与日志存储目录
(3) 修改配置
(4) 启动服务
5.5、访问测试
在浏览器使用公网服务器端使用:http://<公网IP>:8500,即可访问到内网的jenkins服务,注意,如果公网服务器有安全组,记得放开相应的端口。
公网服务器web界面:http://<公网IP>:7500
公网服务器监控指标:http://<公网IP>:7500/metrics
六、附录:
从官网下载了服务端与客户端的全配置文件,仅供参考
6.1、服务端全配置文件 frps_full_example.toml
6.2、客户端全配置文件 frpc_full_example.toml
6.3、官网示例配置参考
Loading...