一、介绍
frp是一款高性能的反向代理应用,专注于内网穿透。它支持多种协议,包括 TCP、UDP、HTTP、HTTPS 等,并且具备 P2P 通信功能。使用 frp,您可以安全、便捷地将内网服务暴露到公网,通过拥有公网IP的节点进行中转。
1.工作原理
FRP的基本工作流程如下:
- 客户端(frpc): 部署在内网中,负责将内网服务通过FRP协议发送到公共服务器。
- 服务器(frps): 部署在外网中,接收来自客户端的数据,并将请求转发到相应的内网服务。
当外网用户访问公共服务器上的特定端口时,FRP服务器会将请求转发给相应的FRP客户端,从而实现对内网服务的访问。
FRP工作原理图
2.FRP的优点
- 高性能:FRP对流量进行了优化,支持高并发连接。
- 配置灵活:支持多种协议,且可以对不同服务进行不同的配置。
- 开源免费:FRP 是一款开源软件,用户可以根据需要自由修改和使用。
二、FRP的安装与配置
接下来我们将介绍如何在你的服务器和内网设备上安装和配置FRP。所以,要使用 FRP 实现内网穿透,首先需要拥有一台 VPS。
1.环境准备
在开始之前,你需要准备以下环境:
- 一台公网服务器(用于部署FRP服务器),本案例是采用ubuntu的系统。具体的版本如下所示:
- 一台内网设备(用于部署FRP客户端),内网的机器我采用的是pve系统,具体版本如下所示:
2.服务器端(frps)安装与配置
FRP 服务端(frps)的安装方式多种多样,您可以选择使用二进制文件或 Docker 进行部署。
(1) 二进制部署
通过github获取最新版文件下载,如下图所示:
登录系统后,切换到指定目录。在本例中,我选择了opt目录。
下载frp文件,将wget后面的连接换下最新版本。
下载完成后执行下面的命令解压文件:
执行下面的命令对frp应用重命名:
文件介绍:
- frps:服务端启动文件。
- frps.toml:服务端的配置文件。
所以,服务端只需要留下 frps 和 frps.toml 即可。编辑 frps.toml ,完成的配置文件选项可访问官方模板[1]。
配置服务端systemd管理frp,执行下面的命令创建frps.service文件。
并在该文件写入如下内容:
执行下面的命令启用开机自器和启动服务。
检查服务是否正常,使用如下命令查看,如果服务异不是active请检查日志。
(2) 1Panel部署
如果觉得上面的二进制部署方式复杂,可以尝试使用 1Panel部署。由于我的VPS已经安装了 1Panel,可以直接通过 1Panel 轻松安装 frps。
打开1panel应用商店,直接找到frp服务端,安装:
部署完成如下图所示:
认证方式,默认是token,token的设置和获取,在应用市场、已安装,点进入安装目录按钮。
frps状态
frps配置文件
三、客户端安装配置
客户端只需要留下frpc和frpc.toml文件。编辑frpc.toml,并在该文件添加如下内容:
上述[[proxies]]代码块的意思是把本地的22端口,通过公网IP的1022端口进行转发。说明白一点就是通过公网的1022端口即可访问内网的本机的22端口。
注意:这个1022端口需要在VPS的防火墙上进行放通。
配置客户端systemd管理frpc,执行下面的命令创建frpc.service文件。
并在该文件添加如下内容:
执行下面的命令启用开机自器和启动服务。
执行下面的命令检查客户端状态是否正常,如果服务异不是active请检查日志。
frpc状态
四、访问管理web
默认看板只监听本地 127.0.0.1 地址,如果你通过内网地址请修改 webServer.addr = "x.x.x.x" 配置字段。
服务端看板
五、总结
通过本文的介绍,相信你已经对FRP有了较为全面的了解。从基本的安装配置到高级功能的使用,FRP都能满足你不同场景下的内网穿透需求。如果你正在寻找一款高效、易用的内网穿透工具,FRP无疑是一个非常不错的选择。赶快动手试试吧,让你的远程访问不再受限!