FRP-反向代理服务-设计及实现

阿里云反向代理服务-设计及实现报告文档

一、技术需求产生背景

​ 限于TCP/IP协议中IP寻址协议限制,未映射到公共网络的网络设备,其它网络设备无法穿透公有网络对其进行访问。

​ 如需对其访问,需要经过其它公网设备对其流量数据进行转发或代理。

二、业务实施需求

1、支撑“易过磅”项目,映射非公共网络服务到中央节点
  • 提供“易过磅”项目HTTP、Websocket两种协议的流量映射
2、其它客户端映射业务,提供子节点数据主动感知技术支撑
  • 提供映射扩展,允许后续其它非公网节点通过反向代理服务向公共网络提供业务支撑

三、技术选型

方案比较:

NETTY:

Netty 是 “一个异步事件驱动的网络应用程序框架”,用于快速开发可维护的高性能协议服务器和客户端。

FRP:

frp 采用 C/S 模式,将服务端部署在具有公网 IP 的机器上。 客户端部署在内网或防火墙内的机器上,通过访问暴露在服务器上的端口,反向代理到处于内网的服务。 在此基础上,frp 支持 TCP, UDP, HTTP, HTTPS 等多种协议,提供了加密、压缩,身份认证,代理限速,负载均衡等众多能力。

      NETTYFRP
是否需要二次开发
部署难度简单简单
业务匹配度需要二次开发匹配
可用性需要开发、测试匹配业务官方参考资料完整,已经市面大量业务实战检验
综上

本次我们将选用FRP作为反向代理中间件以探索支撑反向代理业务

四、FRP代理示意图

FRP代理示意图

在这里插入图片描述

项目应用代理路径示意图

在这里插入图片描述

五、FRP代理配置

服务器配置

测试使用FRP版本:V0.43.0

1、容载业务及实际配置设计
  • 服务器端口设计容载数:50
    • 依据业务从小到大开放映射范围:[9100-9150)
    • FRP服务搭载端口:9190
    • FRP管理WEB界面搭载端口:9191
  • 客户端默认映射端口:8893 --> 申请的服务端口
2、云服务配置说明
  • 服务器中间件软件包

    • frp_0.43.0_linux_amd64.rar
  • 配置文件:frps.ini

    • [common]
      # 云主的内网IP
      bind-addr = x.x.x.x
      # 与客户端绑定端口
      bind_port = port
      # dashboard 用户名
      dashboard_user = xxusername
      # dashboard 密码
      dashboard_pwd = xxpasswd
      # dashboard 绑定的端口,启动成功后通过浏览器IP+端口访问
      dashboard_port = dashport
      # 设置客户端token
      token  = 8n262f2b-6daa-4g8d-85ee-8ad3d1x4uiy7
      
  • 启动命令

    • ./frps -c ./frps.ini
  • 注意事项:

    • 每个代理会占用一个服务器端口,配置本地代理服务时,需确保对应服务端口可用
3、windows客户端配置说明
  • 客户端代理中间件软件包

    • frp_0.43.0_windows_amd64.rar
  • 配置示例文件:frpc.ini

    • [common]
      # 服务器IP 地址
      server_addr = xx.xx.xx.xx
      # 服务器端口号
      server_port = 7000
      
      # 链接服务所需token
      token = 8n262f2b-6daa-4g8d-85ee-8ad3d1x4uiy7
      # 连接池数量
      pool_count = 5
      
      # 代理名
      [laptop88935]
      # tcp 代理
      type = tcp
      # 本地IP地址
      local_ip = 127.0.0.1
      # 本地映射端口
      local_port = 8893
      # 代理端口
      remote_port = 8895
      
  • 启动命令

    • ./frpc -c ./frpc.ini
4、FRP参考资料
  • 开源地址
    • https://github.com/fatedier/frp
  • 官方地址
    • https://gofrp.org/
  • 部署参考资料
    • http://app.myzaker.com/news/article.php?pk=60ec675d8e9f094f4554b4b8
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

*crzep

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值