frp

可以说如果你如果有一台具有公网ip的服务器,你可以用它来完成很多很多你让你意想不到的事情,
但vps费用又比较贵,如果想运行大型项目比如机器学习、进行大模型训练,普通的机器又根本带不同,带的动的机器,你大概率也舍不得消费
这里介绍一种比较好的方案来解决这个问题。那就是用frp来充分利用本地的机器的性能来运行vps带不动的项目。
原理就是本地跑服务器,让frp来给本地服务进行端口转发到公网上,这样就可以在公网上看到自己的成果了,
其实他还是可以做很多很多你想不到的事情,比如远程桌面、ssh、等等,你甚至可以600元可以购买一个性能很不错的微型机器(比如树莓派)安装上linux系统,
在本地运行不间断的运行服务,在云上花很少的钱(甚至可以白嫖)购买基础的vps,这样就可以利用很低的成本来达到动不动几千甚至上万元的云服务器的体验。
想达到这种效果,就少不了一个反向代理的软件,其中比较出名的有frp。下面是对其简单介绍

Frp(Fast Reverse Proxy)是一个高性能的反向代理工具,用于实现内网穿透和端口转发。它允许你通过公网访问内网中的服务,或者将本地服务暴露给公网。Frp 是一个轻量级、易于配置的开源工具,它使用了 Go 语言编写,支持跨平台运行。
以下是 Frp 的一些主要特点和用途:

  1. 内网穿透:Frp 可以帮助你在公网上访问内网中的服务。例如,你可以通过 Frp 将位于公司内部网络的 Web 服务器暴露给互联网,以便外部用户访问。

  2. 端口转发:Frp 支持将本地计算机上的端口映射到公网上,从而可以让外部用户访问本地服务。例如,你可以使用 Frp 将本地开发环境中的 Web 服务器或数据库服务暴露给外部用户,方便测试和共享。

  3. 安全性:Frp 提供了安全的通信机制,支持使用密钥认证和加密传输数据,保障了数据的安全性和隐私。

  4. 多种代理模式:Frp 支持多种代理模式,包括 TCP、UDP、HTTP 和 HTTPS 等,可以满足不同场景下的需求。

  5. 简单易用:Frp 的配置简单明了,拥有友好的命令行界面和灵活的配置选项,使得用户可以轻松地进行配置和管理。
    总的来说,Frp 是一个功能强大、易于使用的反向代理工具,可以帮助用户实现内网穿透和端口转发,提供安全可靠的网络服务。它在许多场景下都是一种方便快捷的解决方案,如远程访问、内网服务暴露、本地开发环境分享等。
    基本原理介绍:
    Frp 的基本原理是通过客户端和服务器之间的通信来实现反向代理和端口转发。

客户端

  • 客户端是位于内网的机器,它需要访问公网上的服务或将本地服务暴露给公网。
  • 客户端向 Frp 服务器发起连接,并注册需要暴露或访问的服务和端口信息。
  • 客户端负责将本地服务的数据流转发给 Frp 服务器,并接收来自服务器的转发数据。

服务器

  • 服务器是位于公网的机器,它充当了客户端和公网服务之间的中介。
  • 服务器接收客户端的连接,并管理客户端注册的服务和端口信息。
  • 当公网用户访问客户端暴露的服务时,请求会先到达服务器,服务器将请求转发给客户端,并将客户端响应返回给公网用户。

基本的工作流程如下

  • 客户端启动后,与 Frp 服务器建立连接,并发送注册信息。
  • 服务器接收到客户端的注册信息后,记录客户端需要暴露的服务和端口。
  • 公网用户访问客户端暴露的服务时,请求会先到达 Frp 服务器。
  • 服务器根据请求的目标服务和端口信息,将请求转发给相应的客户端。
  • 客户端接收到请求后,将请求转发到本地服务,并将响应返回给服务器。
  • 服务器将客户端响应返回给公网用户。

Frp 通过这种客户端-服务器的架构实现了内网穿透和端口转发的功能,使得内网中的服务可以安全可靠地访问和暴露给公网。同时,Frp 提供了多种代理模式和安全机制,以满足不同场景下的需求,并确保数据的安全性和隐私。
frp的git地址:https://github.com/fatedier/frp
中文文档:https://github.com/fatedier/frp/blob/dev/README_zh.md
常见问题:
1、版本问题(一定要注意你的linux服务器型号,选择对应版本)
2、windows上报病毒,导致frp.exe自动被删除(这好像是go语言的问题,go语言编译的程序容易被win系统误认为是病毒,你可以在window上自带杀毒程序添加此程序)

最后:frp可以暴露你本地一切的端口服务,不要来用做违法的事情,还有注意保证自己的服务器的安全性,不要轻易暴露服务器相关信息(这里本身就是涉及代理话题)


frp
https://zbdev.online/2024/04/20/frp/
作者
zzb
发布于
2024年4月20日
许可协议