开源 Linux 服务器与中间件(十二)FRP内网穿透应用

文章的目的记录所使用的的Linux服务器和中间件的配置和使用,防止时间太长忘记,进行重复工作。

相关链接:

开源 Linux 服务器与中间件(一)基本介绍

开源 Linux 服务器与中间件(二)嵌入式Linux服务器和中间件

开源 Linux 服务器与中间件(三)服务器--Nginx

开源 Linux 服务器与中间件(四)服务器--Tomcat

开源 Linux 服务器与中间件(五)服务器--Boa

开源 Linux 服务器与中间件(六)服务器--Lighttpd

开源 Linux 服务器与中间件(七)数据库--MySQL

开源 Linux 服务器与中间件(八)数据库--MariaDB

开源 Linux 服务器与中间件(九)数据库--SQLite3

开源 Linux 服务器与中间件(十)Mqtt协议和Emqx服务器安装测试

开源 Linux 服务器与中间件(十一)Emqx服务器消息的订阅和发送(mqtt测试)

推荐链接:

linux C 语言开发 (一) Window下用gcc编译和gdb调试

linux C 语言开发 (二) VsCode远程开发 linux

linux C 语言开发 (三) 建立云服务器

linux C 语言开发 (四) linux系统常用命令

linux C 语言开发 (五) linux系统目录结构

linux C 语言开发 (六) 程序的编辑和编译(vim、gcc)

linux C 语言开发 (七) 文件 IO 和标准 IO

linux C 语言开发 (八) 进程基础

linux C 语言开发 (九) 进程间通讯--管道

linux C 语言开发 (十) 进程间通讯--信号

linux C 语言开发 (十一) 进程间通讯--共享内存

linux C 语言开发 (十二) 进程间通讯--消息队列

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 系统通常由两部分组成:

  1. FRP 服务端:部署在具有公网 IP 的服务器上,监听来自客户端和用户的请求。

  2. FRP 客户端:部署在你需要暴露的内网机器上,它会与服务端建立一个稳定的连接通道。

二、 FRP 的功能

FRP 提供了非常丰富和灵活的功能,主要包括:

  1. TCP 内网穿透

    • 最基础的功能。可以将内网的任何 TCP 服务(如 SSH、远程桌面、数据库)暴露到公网。

    • 示例:将公司内网电脑的 22 端口(SSH)穿透,让你在家就能通过公网服务器访问公司电脑。

  2. HTTP/HTTPS 反向代理

    • 特别针对 Web 服务。可以将内网搭建的网站(如 WordPress、博客、测试网站)暴露给公网访问。

    • 支持自定义域名,可以将不同的子域名映射到内网不同的 Web 服务。

  3. UDP 穿透

    • 用于需要 UDP 协议的服务,如游戏服务器、DNS 服务、视频流等。
  4. 简单文件访问服务

    • 可以快速启动一个静态文件服务器,通过浏览器直接访问和下载内网机器上的文件。
  5. 服务端和客户端身份验证

    • 支持 Token 验证,确保只有合法的客户端才能连接到你的 FRP 服务端,保证安全性。
  6. 负载均衡与健康检查

    • 对于高性能场景,可以将客户端的请求代理到内网的多个后端服务,实现负载均衡。
  7. P2P 穿透

    • 在特定条件下,FRP 会尝试让访问者与内网客户端建立直接的 P2P 连接,以减轻服务端的流量负担并提高速度。

三、FRP 的使用场景

FRP 的应用场景非常广泛,主要集中在以下几个方面:

  1. 远程访问家中的设备

    • 访问家庭 NAS:在外面通过手机或电脑访问家里的群晖、威联通等 NAS 管理界面或文件。

    • 远程桌面/SSH:远程控制家里的 Windows、Linux 或 Mac 电脑,进行办公或维护。

    • 访问路由器:管理家里的路由器后台。

  2. 开发与测试

    • 微信/支付宝小程序开发:这些平台要求后端服务必须有域名和公网可访问的 HTTPS 接口。开发者可以在本地写代码,用 FRP 将本地服务穿透到公网进行实时调试。

    • 演示内部系统:需要向客户或异地同事演示一个部署在内网的 Web 系统,使用 FRP 可以快速搭建一个临时的公网访问地址。

  3. 访问公司内网服务

    • 出差或在家办公时,访问公司内网的 OA 系统、版本控制(GitLab)、Wiki 知识库等。
  4. 游戏联机或自建服务

    • 将自己电脑上搭建的 Minecraft(我的世界)等游戏服务器暴露给朋友一起玩。

    • 暴露内网的自建媒体服务器(如 Jellyfin、Plex)给外网访问。

四、哪些软件使用了 FRP?

这里可以分为两类:FRP 软件本身集成了 FRP 功能的其他软件

第一类:FRP 软件本身(最核心的回答)
  1. fatedier/frp最主流、最经典

    • 这是 FRP 的创始项目和最广泛使用的实现,由 Go 语言编写。

    • 当我们平常说 "FRP" 时,绝大多数时候指的就是这个项目。

    • 它开源、免费、轻量、配置灵活,功能强大,是许多其他工具和集成方案的基础。

  2. ngrok(FRP 的前辈)

    • ngrok 是内网穿透领域的早期知名产品,FRP 的灵感很大程度上来源于它。

    • 它提供官方的免费和付费云服务,同时也开源了代码。

    • 与 FRP 相比,ngrok 的商业化更早,其官方云服务开箱即用,非常方便。

  3. Sunny-Ngrok / natapp 等国内服务

    • 这些是国内基于 ngrok 二次开发的服务商,提供了更符合国内用户习惯的付费内网穿透服务,通常有国内的服务器节点,速度较快。
第二类:集成了 FRP 功能或原理的软件

许多软件为了实现远程访问功能,在其内部集成或借鉴了 FRP 的原理。

  1. 蒲公英 / 花生壳

    • 国内知名的异地组网和内网穿透服务商。它们提供的硬件和软件,底层实现的技术原理与 FRP 类似,都是通过客户端/服务端模式打通内网。但它们提供了更完善的管理界面和商业化服务。
  2. ZeroTier / Tailscale

    • 它们是新一代的 SD-WAN 软件,目标是创建一个"虚拟局域网"。虽然技术底层(使用 WireGuard 等)与 FRP 不同,但解决的痛点和应用场景高度重叠(远程访问内网设备),可以看作是更高级、更彻底的"内网穿透"方案。
  3. 一些NAS系统

    • 例如 群晖 Synology 的 "QuickConnect" 功能,在其某些实现模式中,就使用了类似 FRP 的反向代理技术来确保在没有公网 IP 时的连通性。

    • 很多第三方 NAS 系统或 Docker 镜像,也常常内置 FRP 客户端来方便用户实现外网访问。

总结

特性 描述
是什么 一个高性能的反向代理工具,用于内网穿透。
核心功能 将内网的 TCP/UDP/HTTP/HTTPS 服务安全地暴露到公网。
主要场景 远程访问家中/公司设备、开发调试、演示系统、游戏联机。
代表软件 frp (fatedier/frp,最核心)、ngrok、以及蒲公英/花生壳等商业化服务。

对于技术爱好者、开发者和运维人员来说,fatedier/frp 这个开源项目是首选,因为它提供了最大的灵活性和控制权,并且完全免费。对于追求开箱即用的普通用户,可以选择花生壳、蒲公英或 ngrok 的官方云服务。

相关推荐
mustfeng3 小时前
VCS & Verdi 2023安装
java·服务器·前端
追风少年ii4 小时前
脚本更新--CosMx、Xenium的邻域通讯分析(R版本)
linux·python·r语言·r·单细胞·培训
馨谙4 小时前
Bash Shell 脚本编程入门详解
linux·bash
CoderJia程序员甲4 小时前
GitHub 热榜项目 - 日榜(2025-10-25)
ai·开源·github·ai编程·github热榜
海星船长丶4 小时前
Chrony服务器同步时间服务器实验
运维·服务器
用户31187945592184 小时前
申威 SW-64 架构安装 MySQL 8.0.18 (KY10系统 RPM包) 步骤指南
linux
DisonTangor4 小时前
PaddleOCR-VL: 通过0.9B超紧凑视觉语言模型增强多语言文档解析
人工智能·计算机视觉·语言模型·自然语言处理·开源·aigc
BS_Li4 小时前
【Linux系统编程】编辑器vim
linux·vim
Ronin3054 小时前
【Linux网络】定制协议
linux·网络·协议·序列化和反序列化·定制协议·tcp网络通信