fatedier/frp:内网穿透工具,它把本地服务直接送上公网
fatedier/frp 在 GitHub 上已经拿到 106,514 Star 了。
这是一个快速反向代理工具,能让位于NAT或防火墙后的本地服务器暴露到互联网。目前支持TCP和UDP,以及HTTP和HTTPS协议,请求可以通过域名转发到内部服务,还提供P2P连接模式。
1、 这工具是干嘛的
核心功能就是内网穿透。很多场景下,本地设备没有公网IP,无法被外部网络直接访问。frp通过在有公网IP的服务器上部署服务端,在内网设备上部署客户端,建立两者之间的隧道,实现外部流量到内网服务的转发。
常见的使用场景包括,远程访问家里的电脑,对外演示本地开发的Web项目,让外部系统调用本地运行的回调接口,访问没有公网IP的办公设备里的资源。

2、 主要功能
frp支持多种协议的转发。TCP协议可以用来暴露SSH、数据库等服务,UDP协议可以用来暴露DNS、游戏服务器等服务。HTTP和HTTPS协议支持根据域名转发到不同的内网服务,同一个端口可以承载多个域名的访问请求。
P2P连接模式下,流量不需要经过服务端中转,直接在两个客户端之间传输,适合大文件传输、实时通信等对带宽和延迟要求高的场景。
配置支持多种方式。可以使用单一配置文件,也可以通过环境变量传入参数,还可以将配置拆分到多个文件里,方便管理复杂的代理规则。
服务端自带仪表盘,可以查看代理的运行状态、流量统计等信息。客户端有管理UI,可以动态添加、删除、修改代理配置,不需要重启服务。
监控方面支持Prometheus指标导出,可以接入现有的监控系统。客户端认证支持token等多种方式,保证服务的安全性。

3、 适合哪些人用
个人用户可以用它远程访问家里的电脑、NAS存储设备,或者在外出时访问家里的智能家居系统。
开发者可以用它将本地运行的Web服务暴露到公网,方便对接第三方的回调接口,或者给客户演示开发中的项目,不需要每次都部署到服务器。
企业用户可以用它对外提供内部服务,不需要将服务器直接暴露在公网,降低安全风险。也可以用来打通不同办公区域的内部网络,实现跨区域的资源访问。
有P2P传输需求的用户可以使用它的点对点连接能力,实现两个内网设备之间的直接通信,不需要经过中转服务器,节省带宽成本。
开源地址:https://github.com/fatedier/frp



