1.frp 是什么?
frp 是一款高性能的反向代理应用,专注于内网穿透。它支持多种协议,包括 TCP、UDP、HTTP、HTTPS 等,并且具备 P2P 通信功能。使用 frp,您可以安全、便捷地将内网服务暴露到公网,通过拥有公网 IP 的节点进行中转。
2.为什么使用 frp
通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括:
- 客户端服务端通信支持 TCP、QUIC、KCP 以及 Websocket 等多种协议。
- 采用 TCP 连接流式复用,在单个连接间承载更多请求,节省连接建立时间,降低请求延迟。
- 代理组间的负载均衡。
- 端口复用,多个服务通过同一个服务端端口暴露。
- 支持 P2P 通信,流量不经过服务器中转,充分利用带宽资源。
- 多个原生支持的客户端插件(静态文件查看,HTTPS/HTTP 协议转换,HTTP、SOCK5 代理等),便于独立使用 frp
客户端完成某些工作。 - 高度扩展性的服务端插件系统,易于结合自身需求进行功能扩展。
- 服务端和客户端 UI 页面。
FRP(Fast Reverse Proxy)是一个高性能的反向代理应用,主要用于内网穿透。它可以将内网中的TCP、UDP、HTTP、HTTPS等协议类型的服务发布到公网,并支持Web服务根据域名进行路由转发。FRP因其小巧方便和部署简单的特点而受到欢迎。
3.FRP搭建准备工作
搭建FRP的准备工作主要包括以下几点:
- 准备一台云服务器或有公网IP的机器作为外网服务器,用于部署FRP服务端。
- 准备一台内网服务器,用于部署需要穿透的内网服务。
- 下载FRP的脚本部署文件,这些文件包括FRP服务端和客户端的可执行文件。
- 熟悉基本的Linux操作命令,因为FRP通常在Linux环境下部署和运行。
请注意,进行内网穿透和搭建FRP时应确保网络安全,避免未经授权的访问和数据泄露。如果对网络配置和安全设置不熟悉,建议咨询专业人士或参考官方文档进行操作。
4.安装(参考官方文档)
官方文档地址: https://gofrp.org/zh-cn/docs/setup/
1.从 GitHub 的 Release 页面中下载最新版本的客户端和服务器
下载地址: https://github.com/fatedier/frp/releases
wget https://github.com/fatedier/frp/releases/download/v0.54.0/frp_0.54.0_linux_amd64.tar.gz
2.解压
tar -zxvf frp_0.54.0_linux_amd64.tar.gz
3.进入目录配置文件:
服务端
//编辑frps.toml
vi frps.toml
//增加下面内容
indPort = 7000 # 服务运行端口号
auth.method = "token" # 认证方式
auth.token = "xxxx" # 认证密钥
webServer.addr = "0.0.0.0" # 不限制IP访问
webServer.port = 7500 # dashboard端口
webServer.user = "xxx" # dashboard登录账号
webServer.password = "xxxx" # dashboard登录密码
客户端(我的客户端是window系统)
解压客户端压缩包
//编辑frpc.toml
serverAddr = "118.xx.xx.xx"
serverPort = 7000
auth.method = "token" # 认证方式
auth.token = "xxxx" # 认证密钥
[[proxies]]
name = "test-tcp"
type = "tcp"
localIP = "127.0.0.1"
localPort = 3306
remotePort = 3306
4. 防火墙 放行7000、7500等你需要映射的端口段
firewall-cmd --zone=public --add-port=7000/tcp --permanent
firewall-cmd --zone=public --add-port=7500/tcp --permanent
firewall-cmd --zone=public --add-port=3306/tcp --permanent
5.后端服务运行
方式1:
systemd方式参考: https://gofrp.org/zh-cn/docs/setup/systemd/
方式2:
./frps -c frps.ini &
6.客户端运行
frpc程序不能直接双击运行!
//进入文件目录执行命令
frpc.exe -c ./frpc.toml
访问: http://服务器ip:7500/static/#/proxies/tcp
输入用户名:xx 密码:xx