文章目录
- 前言
- 部署环境
- 第一步:下载所需要的软件包
- 第二步:服务端的配置及启动
- 第三步:检测服务端配置是否成功
- 第四步:将客户端需要的文件推送到手机上并解压
- 第五步:客户端的配置及启动
- 第七步:检测frp服务端客户端是否配置成功且可以通信
- 结束
前言
上一篇文章我们简单的介绍了负载均衡和我搭服务器的目的,这篇文章将为大家详细介绍怎么使用FRP实现内网穿透,把业务端的端口映射到负载均衡服务器上,实现负载均衡服务器与业务服务器关联,各位看官可以根据自己的需求模拟一些搭建,流程都大同小异。以下的所有步骤和说明是以我自己的环境进行叙述的。
部署环境
- 服务端:windows 10,这里可以根据条件选择各种服务器作为服务端,一般选用nginx充当服务端,即负载均衡服务器。
- 客户端:android 10,这里是为了hook某宝的签名,封装成接口选用的手机当业务服务器。
第一步:下载所需要的软件包
- 下载地址:https://github/fatedier/frp/releases
- 根据自己环境和需求下载对应的版本包,我的环境和需要下载了frp_0.37.1.windows_amd64.zip用于服务端,frp_0.37.1_linux_arm64.tar.gz用于客户端
第二步:服务端的配置及启动
- 配置如下:
[common]
#绑定服务端IP地址
bind_addr = 0.0.0.0
#绑定服务端端口,即预留给客户端连接的通道
bind_port = 7000
#登陆后台账号
dashboard_user = admin
#登录后台密码
dashboard_pwd = 123456
#后台端口,启动成功后可通过浏览器访问如http://ip:7500
dashboard_port = 7500
#设置客户端token,对应的客户端有,也需要配置
token = dqonW98WEQW0snd0-098321*ds
- 说明:如果需要更强大或者更详细的配置可以查看下载来了的软件包中的frps_full.ini的详细说明。
- 启动:打开cmd,进入到下载的软件包frp_0.37.1.windows_amd64.zip的解压目录,执行./frps -c .\frps.ini 这个指令启动frp服务端,启动成功出现如下提示:
第三步:检测服务端配置是否成功
打开浏览器访问:http:127.0.0.1:7500,即就是上面配置文件中的dashboard_port端口,如果可以打开管理页面,说明服务的配置已完成:
在这里可以看到绑定的业务服务器的详细信息。
第四步:将客户端需要的文件推送到手机上并解压
- 1.将软件包推送到服务端
adb push ./frp_0.37.1_linux_arm64.tar.gz(软件包下载位置) /data/local/tmp(手机上暂存位置) - 2.进入手机控制台
adb shell - 3.获取最高权限
su - 4.进入软件包暂存位置
cd /data/local/tmp - 5.解压软件包
tar -zxvf frp_0.37.1_linux_arm64.tar.gz - 6.关注的文件
服务端:frps,frps.ini
客户端:frpc,frpc.ini
第五步:客户端的配置及启动
- 配置如下:
[common]
#服务端的IP地址
server_addr = 172.26.11.22
#服务端的端口
server_port = 7000
#设置客户端的token,对应服务端
token = dqonW98WEQW0snd0-098321*ds
#提前连接数
pool_count = 5
[range:TBsign911]
#通信类型
type = tcp
#本地地址
local_ip = 127.0.0.1
#本地(客户端)映射端口
local_port = 6010-6020,6022,6024-6028,8134
#远程(服务端)映射端口
remote_port = 6010-6020,6022,6024-6028,8134
- 说明:如果需要更强大或者更详细的配置可以查看下载来了的软件包中的frpc_full.ini说明
- 启动:
./frpc
./frpc -c frpc.ini - 出现如同所示提示说明所有的端口都成功映射:
客户端:
当客户端连接上服务端时:
服务端:
- 后台运行指令:./frpc -c frpc.ini >/data/null 2>&1 &
第七步:检测frp服务端客户端是否配置成功且可以通信
-
服务端的管理页面:
如果Proxies–>TCP下是否可以看到所有的映射端口,可以说明配置没问题(tcp是客户端配置的通信类型):
-
正常访问,尝试用服务端去访问手机(客户端)上的某个程序:
比如我某个手机上(客户端)部署了某宝签名接口,开放的端口号是8134,然后我用postman创建一个正常的请求如下:
-
当用FRP实现内网穿透后,在服务端创建一个请求访问本地端口,它会自动转发到手机(客户端)上的接口:
由第五步的客户端配置中的端口映射,我们可以看到手机上的端口映射到服务端上面的端口有:6010-6020,6022,6024-6028,8134,其中正在被淘宝签名的端口是8134,映射到服务端也是(如果服务端的该端口已经被占用了,可以映射到其他端口上,并不需要和客户端一样),OK,在服务端创建一个POST请求访问某宝签名接口:
结束
OK,以上就是本次的搭建流程了,其实手机当业务服务器和普通服务器或云服务器部署流程都差不多。这里最重要的其实就是FRP的配置文件,把业务服务器的端口映射到负载均衡服务器上,进来的请求都会被转发到业务服务器上,后面负载均衡服务器要对外开放,供客户使用,客户的所有请求都会经过负载均衡服务器,经负载均衡算法分摊到业务服务器,由业务服务器实现业务流程,而本文说白了就是把业务服务器和负载均衡服务器关联起来。下篇文章:使用cygwin编译haproxy(Windows)
更多推荐
FRP部署流程实现内网穿透(windows)
发布评论