一文打尽端口复用 VS Haproxy端口复用

本文作者:Spark(Ms08067内网安全小组成员)

Spark微信(欢迎骚扰交流):

1.概述


Haproxy是一个使用c语言开发的高性能负载均衡代理软件,提供tcp和http的应用程序代理,免费、快速且可靠。

类似frp,使用一个配置文件+一个server就可以运行。

优点:

  • 大型业务领域应用广泛

  • 支持四层代理(传输层)以及七层代理(应用层)

  • 支持acl(访问控制列表),可灵活配置路由

  • windows使用cygwin编译后可运行(可跨平台)

访问控制列表(Access Control Lists,ACL)是应用在路由器接口的指令列表,这些指令列表用来告诉路由器哪些数据包可以接受,哪些数据包需要拒绝。

2.配置


官方配置手册:

https://cbonte.github.io/haproxy-dconv/2.2/configuration.html

配置文件由全局配置和代理配置组成:

全局配置(global):

    • 定义haproxy进程管理安全及性能相关的参数

代理设定(proxies):

    • defaults

      • 为其他配置段提供默认参数,默认配置参数可由下一个"defaults"重新设定

    • frontend

      • 定义一系列监听的套接字,这些套接字可接受客户端请求并与之建立连接

    • backend

      • 定义"后端"服务器,前端代理服务器将会把哭护短的请求调度至这些服务器

    • listen

      • 定义监听的套接字和后端的服务器,类似于将frontend和backend段放在一起

示例:

global
defaults
  log global
  mode tcp
  option dontlognull
  timeout connect 5000
  timeout client 50000
  timeout server 50000


frontend main
  mode tcp
  bind *:8888
  option forwardfor except 127.0.0.1
  option forwardfor header X‐Real‐IP


# 配置acl规则
  acl is‐proxy‐now urlp_reg(proxy) ^(http|https|socks5)$
# 分发到对应的backend
  use_backend socks5 if is‐proxy‐now
  use_backend http
backend socks5
  mode tcp
  timeout server 1h
  server ss 127.0.0.1:50000
backend http
  mode tcp
  server http 127.0.0.1:80

重点关注frontend和backend。

Frontend中需要编写acl规则,配置转发。比如,当http流量

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值