深入解析:开源 Linux 服务器与中间件(十二)FRP内网穿透应用
2025-11-20 21:21 tlnshuju 阅读(0) 评论(0) 收藏 举报文章的目的记录所运用的的Linux服务器和中间件的设置和使用,防止时间太长忘记,进行重复工作。
相关链接:
开源 Linux 服务器与中间件(二)嵌入式Linux服务器和中间件
开源 Linux 服务器与中间件(四)服务器--Tomcat
开源 Linux 服务器与中间件(六)服务器--Lighttpd
开源 Linux 服务器与中间件(八)数据库--MariaDB
开源 Linux 服务器与中间件(九)数据库--SQLite3
开源 Linux 服务器与中间件(十)Mqtt协议和Emqx服务器安装测试
开源 Linux 服务器与中间件(十一)Emqx服务器消息的订阅和发送(mqtt测试)
推荐链接:
linux C 语言开发 (一) Window下用gcc编译和gdb调试
linux C 语言开发 (二) VsCode远程制作 linux
linux C 语言构建 (六) 程序的编辑和编译(vim、gcc)
Linux C到Android App编写推荐链接(入门十二章):
开源 java android app 开发(一)开发环境的搭建_csdn 开源 java android app-CSDN博客
开源 java android app 开发(一)构建环境的搭建-CSDN博客
开源 java android app 开发(二)工程资料结构-CSDN博客
开源 java android app 开发(三)GUI界面布局和常用组件-CSDN博客
开源 java android app 创建(四)GUI界面重要组件-CSDN博客
开源 java android app 开发(五)文件和数据库存储-CSDN博客
开源 java android app 开发(六)多媒体使用-CSDN博客
开源 java android app 开发(七)通讯之Tcp和Http-CSDN博客
开源 java android app 创建(八)通讯之Mqtt和Ble-CSDN博客
开源 java android app 编写(九)后台之线程和服务-CSDN博客
开源 java android app 制作(十)广播机制-CSDN博客
开源 java android app 研发(十一)调试、发布-CSDN博客
开源 java android app 开发(十二)封库.aar-CSDN博客
linux C到.net mvc制作推荐链接:
开源C# .net mvc 开发(一)WEB搭建_c#部署web程序-CSDN博客
开源 C# .net mvc 编写(二)网站敏捷搭建_c#网站开发-CSDN博客
开源 C# .net mvc 编写(三)WEB内外网访问(VS发布、IIS配置网站、花生壳外网穿刺访问)_c# mvc 域名下不可訪問內網,內網下可以訪問域名-CSDN博客
开源 C# .net mvc 开发(四)工程结构、页面提交以及显示_c#工程结构-CSDN博客
开源 C# .net mvc 开发(五)常用代码快速开发_c# mvc构建-CSDN博客、
内容:FRP内软穿透应用,能力和使用场景,以及哪些软件运用了FRP。
目录
1.什么是 FRP
2.FRP 的特性
3.FRP 的利用场景
4.哪些软件使用了 FRP
一、 什么是 FRP?
FRP 的全称是 Fast Reverse Proxy,即快速反向代理。
它的核心目的是:将位于内网(或受防火墙限制)的服务,安全地暴露到公网上,从而许可从外网访问。
您可能把它理解成一个“内网穿透”工具。
一个简单的比喻:
你的家庭网络(或公司内网)就像一个安全的私人住宅,有门禁(防火墙),外人无法直接进入。
你内网中的电脑(比如 NAS、网站、数据库)就像住宅里的某个房间。
FRP 就像一个你信任的“中介服务”(公网服务器),你在家里(内网)主动告诉中介你的房间号和信息。
当外人(公网用户)想访问你家的房间时,他不需知道你家具体在哪,也无需破解门禁,他只要求联系该“中介”,由中介把你家里的服务“反向代理”出来给他。
技术角色:
一个完整的 FRP 环境通常由两部分组成:
FRP 服务端:部署在具有公网 IP 的服务器上,监听来自客户端和用户的请求。
FRP 客户端:部署在你需要暴露的内网机器上,它会与服务端建立一个稳定的连接通道。
二、 FRP 的功能
FRP 提供了十分丰富和灵活的功能,主要包括:
TCP 内网穿透
最基础的功能。可以将内网的任何 TCP 服务(如 SSH、远程桌面、数据库)暴露到公网。
示例:将公司内网电脑的 22 端口(SSH)穿透,让你在家就能利用公网服务器访问公司电脑。
HTTP/HTTPS 反向代理
特有针对 Web 服务。能够将内网搭建的网站(如 WordPress、博客、测试网站)暴露给公网访问。
支持自定义域名,可以将不同的子域名映射到内网不同的 Web 服务。
UDP 穿透
用于需要 UDP 协议的服务,如游戏服务器、DNS 服务、视频流等。
简单文件访问服务
可以快速启动一个静态文件服务器,通过浏览器直接访问和下载内网机器上的文件。
服务端和客户端身份验证
拥护 Token 验证,确保只有合法的客户端才能连接到你的 FRP 服务端,保证安全性。
负载均衡与健康检查
通过对于高性能场景,能够将客户端的请求代理到内网的多个后端服务,实现负载均衡。
P2P 穿透
在特定条件下,FRP 会尝试让访问者与内网客户端建立直接的 P2P 连接,以减轻服务端的流量负担并提高速度。
三、FRP 的使用场景
FRP 的应用场景相当广泛,主要集中在以下几个方面:
远程访问家中的设备
访问家庭 NAS:在外面通过手机或电脑访问家里的群晖、威联通等 NAS 管理界面或文件。
远程桌面/SSH:远程控制家里的 Windows、Linux 或 Mac 电脑,进行办公或维护。
访问路由器:管理家里的路由器后台。
开发与测试
微信/支付宝小程序开发:这些平台要求后端服务必须有域名和公网可访问的 HTTPS 接口。开发者行在本地写代码,用 FRP 将本地服务穿透到公网进行实时调试。
演示内部系统:得向客户或异地同事演示一个部署在内网的 Web 系统,使用 FRP 可以快速搭建一个临时的公网访问地址。
访问公司内网服务
出差或在家办公时,访问公司内网的 OA 平台、版本控制(GitLab)、Wiki 知识库等。
游戏联机或自建服务
将自己电脑上搭建的 Minecraft(我的世界)等游戏服务器暴露给朋友一起玩。
暴露内网的自建媒体服务器(如 Jellyfin、Plex)给外网访问。
四、哪些软件使用了 FRP?
这里可以分为两类:FRP 软件本身和集成了 FRP 功能的其他软件。
第一类:FRP 软件本身(最核心的回答)
fatedier/frp(最主流、最经典)
这是 FRP 的创始项目和最广泛利用的实现,由 Go 语言编写。
当我们平常说 “FRP” 时,绝大多数时候指的就是这个项目。
许多其他程序和集成方案的基础。就是它开源、免费、轻量、配置灵活,功能强大,
ngrok(FRP 的前辈)
内网穿透领域的早期知名产品,FRP 的灵感很大程度上来源于它。就是ngrok
它提供官方的免费和付费云服务,同时也开源了代码。
与 FRP 相比,ngrok 的商业化更早,其官方云服务开箱即用,非常方便。
Sunny-Ngrok / natapp 等国内服务
这些是国内基于 ngrok 二次开发的服务商,献出了更符合国内用户习惯的付费内网穿透服务,通常有国内的服务器节点,速度较快。
第二类:集成了 FRP 功能或原理的软件
许多软件为了搭建远程访问作用,在其内部集成或借鉴了 FRP 的原理。
蒲公英 / 花生壳
国内知名的异地组网和内网穿透服务商。它们供应的硬件和软件,底层实现的技术原理与 FRP 类似,都是借助客户端/服务端模式打通内网。但它们献出了更完善的管理界面和商业化服务。
ZeroTier / Tailscale
它们是新一代的 SD-WAN 软件,目标是创建一个“虚拟局域网”。虽然技能底层(应用 WireGuard 等)与 FRP 不同,但解决的痛点和应用场景高度重叠(远程访问内网设备),可以看作是更高级、更彻底的“内网穿透”方案。
一些NAS系统
例如 群晖 Synology的 “QuickConnect” 功能,在其某些实现模式中,就应用了类似 FRP 的反向代理技术来确保在没有公网 IP 时的连通性。
很多第三方 NAS 系统或 Docker 镜像,也常常内置 FRP 客户端来方便用户实现外网访问。
总结
| 特性 | 描述 |
|---|---|
| 是什么 | 一个高性能的反向代理工具,用于内网穿透。 |
| 核心功能 | 将内网的 TCP/UDP/HTTP/HTTPS 服务安全地暴露到公网。 |
| 主要场景 | 远程访问家中/公司设备、开发调试、演示系统、游戏联机。 |
| 代表软件 | frp(fatedier/frp,最核心)、ngrok、以及蒲公英/花生壳等商业化服务。 |
对于技能爱好者、开发者和运维人员来说,fatedier/frp首选,因为它提供了最大的灵活性和控制权,并且完全免费。对于追求开箱即用的普通用户,可以选择花生壳、蒲公英或 ngrok 的官方云服务。就是这个开源项目

浙公网安备 33010602011771号