一、FRP介绍
FRP(Fast Reverse Proxy) 是一款高效的反向代理工具,专为将内网服务安全稳定地穿透至公网而设计。它通过在拥有公网IP的节点上部署FRP服务端,提供了一系列强大且实用的功能特性,包括但不限于:
-
多协议支持:客户端和服务端均支持TCP、QUIC、KCP及Websocket等多种网络协议,适应不同的网络环境和需求。
-
高效连接管理:利用TCP连接流式复用技术,在单个连接中处理更多请求,减少连接建立时间,降低延迟,提升传输效率。
-
智能负载均衡:实现跨代理组的负载均衡,自动分配流量,保证服务的高可用性和稳定性。
-
端口复用功能:允许多个服务共享同一个服务端口,有效节约端口资源,简化配置。
-
P2P通信支持:直接在客户端之间建立连接进行数据交换,无需经过服务器中转,最大限度利用带宽,提高传输速度。
-
丰富的插件生态:内置多种实用插件,如静态文件浏览、HTTPS/HTTP协议转换、HTTP/SOCKS5代理等,便于用户根据需要独立使用FRP客户端完成特定任务。
-
可扩展的服务端插件系统:易于结合具体应用场景进行定制化开发,满足用户的个性化需求。
FRP不仅简化了内网穿透的过程,还通过其强大的功能集和灵活的配置选项,成为开发者和运维人员的理想选择。无论是用于开发测试还是生产环境,FRP都能提供可靠的服务保障。
二、当前服务器系统与本地电脑系统
服务器
本地电脑是 win1064位
三、安装frp
frp地址为:Releases · fatedier/frp · GitHubA fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet. - Releases · fatedier/frphttps://github.com/fatedier/frp/releases最新版本的客户端和服务端二进制文件在Release页面中。本文使用的v0.61.1。
把他分别下载下来windows是客户端 linux是服务端
上传服务端到 linux服务器,进行解压:
解压命令:
tar -zxvf frp_0.61.1_linux_amd64.tar.gz
我上传的目录是:
进入解压的文件夹后,可以看到有5个文件,其中frpc
为客户端程序,frpc.toml
为客户端配置文件。frps
为服务端程序,frps.toml
为服务端配置文件。由于文件夹名称太长 我改为了frp_0.61.1 所以后续都是在frp_0.61.1 里面进行配置修改。
四、服务端配置
服务端配置时修改frps.toml
文件
vim frps.toml
配置文件如下:
#当前ip地址,默认
bindAddr = "0.0.0.0"
# 隧道端口,服务端通过此端口与客户端通信
bindPort = 7100
# 用于KCP协议的UDP端口,可以与“bindPort”相同。
# 如果未设置,frps 中的 kcp 将被禁用。
kcpBindPort = 7100
#界面ip
webServer.addr = "0.0.0.0"
#界面端口
webServer.port = 7500
#账号
webServer.user = "user"
#登录密码
webServer.password = "password"
#打印日志
log.to = "/frpslog/frps.log"
log.level = "info"
log.maxDays = 3
#token 客户端设置一致才能修改 这token
auth.method = "token"
# 设置token值
auth.token = "tokentoken"
#开放 客户端映射的端口范围
allowPorts = [
{ start = 6000, end = 7000},
]
其他配置看官网的完整配置文件frp/conf/frps_full_example.toml at dev · fatedier/frp · GitHub。
或者安装 | frp
启动服务端
./frps -c frps.toml
配置开机启动
使用vim
编辑器创建并编辑frps.service
文件。
[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
# 启动frps的命令,需修改为您的frps的安装路径
ExecStart = /usr/local/ftp/frp_0.61.1/frps -c /usr/local/ftp/frp_0.61.1/frps.toml
[Install]
WantedBy = multi-user.target
使用
# 启动frp
systemctl start frps
# 停止frp
systemctl stop frps
# 重启frp
systemctl restart frps
# 查看frp状态
systemctl status frps
启动后查看当前运行状态
表示服务器运行成功,由于我们配置看web可视化界面打开配置端口进行登录
frp穿透服务已经成功了,我们再查看下frp面板,浏览器地址栏输入:服务器公网IP+7500
五、客户端配置
解压在电脑的下载文件 解压后如下
修改frpc.toml
#公网ip
serverAddr = "xx.xx.xx.xx"
#服务器端口
serverPort = 7100
loginFailExit = true
log.to = "./frpc.log"
log.level = "info"
log.maxDays = 3
auth.method = "token"
auth.token = "tokentoken"
[[proxies]]
name = "Factorio"
type = "tcp"
localIP = "127.0.0.1"
#本地端口
localPort = 80
#远程端口
remotePort = 6100
[[proxies]]
name = "Minecraft"
type = "tcp"
localIP = "127.0.0.1"
localPort = 8500
remotePort = 6200
配置bat启动文件
bat配置如下:你需要根据你的实际需求制作
.\frpc.exe -c .\frpc.toml
双击运行bat文件
已经运行成功!在服务器web界面查看
关闭 cmd运行窗口,在看服务器
frp配置成功:
六、查看映射情况
刚才绑定了6100
能成功访问本地运行的代码!到此部署成功!如果各位有啥其他后续需要的 留言我会出哦!