在日常运维、远程办公与服务调试场景中,内网设备因处于路由器、防火墙之后,没有独立公网IP,外网设备往往无法直接访问。FRP(Fast Reverse Proxy) 作为一款轻量高效的反向代理工具,完美解决了这一痛点,可将内网服务安全暴露至公网,同时支持多种传输协议与拓展能力,是目前主流的内网穿透方案之一。
FRP 基础介绍
FRP 全称 Fast Reverse Proxy,核心作用是搭建反向代理通道,让位于 NAT 网络、防火墙内侧的本地服务器、主机服务对外网开放访问。
它兼容性极强,原生支持TCP、UDP、HTTP、HTTPS主流协议转发,同时内置 P2P 直连、局域网组网等能力,兼顾转发代理与点对点通信两大使用场景。
主流应用场景
FRP 功能丰富,覆盖个人使用、小型运维、服务发布等多种场景,常见用途如下:
1. SSH 远程访问:在外网通过公网中转服务器,远程登录、管理内网主机。
2. 多主机 SSH 端口复用:借助 tcpmux 功能,多台内网设备共用同一个公网端口实现 SSH 连接,节省公网端口资源。
3. 内网 Web 服务公网发布:搭配自定义域名,将本地网站、后台管理系统等 Web 服务暴露到公网。
4. DNS 查询转发:把外网 DNS 请求转发至内网专属 DNS 服务器。
5. Unix Domain Socket 转发:对外暴露本地 Unix 套接字类型服务。
6. 公网文件共享:将本地文件目录搭建为 HTTP 文件服务器,实现跨网文件传输。
7. HTTPS 加速与加密:为原生 HTTP 内网服务快速开启 HTTPS 加密访问。
8. 私密服务安全暴露:结合加密、数据压缩、身份鉴权能力,对内网核心服务做安全隔离后再对外发布。
9. P2P 点对点直连:通信双方跳过中转服务器,直接建立连接,降低延迟、提升传输效率。
整体架构与基础部署
1. 架构原理
FRP 采用服务端+客户端的经典架构,二者分工明确:
frps(服务端):部署在拥有独立公网IP的服务器上,负责接收外网请求、转发流量。
frpc(客户端):部署在处于内网、防火墙后的本地主机,主动与服务端建立长连接,上报内网服务信息。
架构链路:外网用户 → 公网服务器(frps) → 内网主机(frpc) → 本地服务
2. 分步部署教程
步骤1:下载程序包
前往官方 Release 页面,根据服务器、内网主机的系统架构,下载对应版本的二进制程序包:
下载地址:github
步骤2:公网服务器部署(frps 服务端)
1. 解压程序包,编辑服务端配置文件 frps.toml :
bindPort = 7000 # 固定端口,用于接收frpc客户端的连接请求
2. 启动服务端:
./frps -c ./frps.toml
步骤3:内网主机部署(frpc 客户端)
解压程序包,编辑客户端配置文件 frpc.toml ,填写公网服务器信息与本地代理规则:
serverAddr = "x.x.x.x" # 填写公网服务器真实IP serverPort = 7000 # 必须与服务端 bindPort 保持一致 # 定义代理规则,此处以SSH服务为例 [[proxies]] name = "ssh" # 代理名称,自定义标识 type = "tcp" # 转发协议类型,SSH使用TCP localIP = "127.0.0.1" # 内网本地服务地址 localPort = 22 # 内网SSH默认端口 remotePort = 6000 # 公网对外暴露的访问端口
2. 启动客户端:
./frpc -c ./frpc.toml
步骤4:外网访问内网服务
在外网任意主机执行以下命令,即可通过公网端口连接内网主机的 SSH 服务:
ssh -oPort=6000 test@x.x.x.x
高级用法:多台主机共享同一公网端口
当内网有多台设备需要 SSH 远程管理时,逐一分配公网端口会造成资源浪费。FRP 提供 tcpmux 多路复用模式,支持多台内网主机共用一个公网端口,通过域名区分不同设备。
1. 服务端配置(frps.toml)
重启 frps 服务使配置生效。
2. 内网客户端配置
客户端A(主机A)frpc.toml
客户端B(主机B)frpc.toml
分别启动两台设备的 frpc 客户端。
3. 外网访问命令
借助 socat 工具代理连接,通过不同域名访问对应内网主机:
FRP 核心特性
FRP 不仅基础转发能力稳定,还搭载了大量实用功能,兼顾安全性、性能与拓展性:
1. 多重身份认证:支持 Token、OIDC 两种认证方式,防止非法设备接入。
2. 加密与压缩:内置 TLS 传输加密、数据压缩功能,兼顾通信安全与传输速度。
3. 配置热重载:客户端配置修改后可动态加载,无需重启服务,不中断业务。
4. 可视化监控面板:服务端、客户端均自带 Dashboard,实时查看连接状态、流量数据。
5. 负载均衡:支持多实例集群部署,实现流量负载分摊,提升服务稳定性。
6. 服务健康检查:自动探测后端内网服务运行状态,异常时及时切换或告警。
7. 连接池优化:复用网络连接,减少握手开销,提升并发访问性能。
8. 多协议拓展:除 TCP 外,还支持 KCP、QUIC 等新型传输协议,适配复杂网络环境。
9. 插件系统:前后端均支持自定义插件,可根据业务需求拓展功能。
10. 虚拟网络组网:内置 VirtualNet 虚拟网络能力,可跨公网搭建虚拟局域网。
项目开发状态
目前 FRP 分为两个版本线,定位各不相同:
- v1 版本:当前处于维护阶段,不再新增大功能,仅修复已知 Bug、优化细节,稳定性高,适合生产环境使用。
- v2 版本:全新研发版本,基于云原生理念重构,对标 Envoy 现代化代理架构,主打四/七层高性能代理,目前仍在持续开发迭代中。
使用注意事项
FRP 具备反向代理、端口转发能力,部分杀毒软件、安全防护程序会将 frpc 客户端误判为风险程序。使用前建议将 frp 相关程序加入软件白名单,避免程序被拦截、终止,导致内网穿透失效。



还没有评论,来说两句吧...