FRP部署流程实现内网穿透(windows)


前言

上一篇文章我们简单的介绍了负载均衡和我搭服务器的目的,这篇文章将为大家详细介绍怎么使用FRP实现内网穿透,把业务端的端口映射到负载均衡服务器上,实现负载均衡服务器与业务服务器关联,各位看官可以根据自己的需求模拟一些搭建,流程都大同小异。以下的所有步骤和说明是以我自己的环境进行叙述的。


部署环境

  • 服务端:windows 10,这里可以根据条件选择各种服务器作为服务端,一般选用nginx充当服务端,即负载均衡服务器。
  • 客户端:android 10,这里是为了hook某宝的签名,封装成接口选用的手机当业务服务器。

第一步:下载所需要的软件包

  • 下载地址:https://github.com/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)

猜你喜欢

转载自blog.csdn.net/xiaoxin_OK/article/details/120772247