文章的目的记录所使用的的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 的前辈)
-
ngrok 是内网穿透领域的早期知名产品,FRP 的灵感很大程度上来源于它。
-
它提供官方的免费和付费云服务,同时也开源了代码。
-
与 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 的官方云服务。

576

被折叠的 条评论
为什么被折叠?



