在 Centos-7 上使用 tproxy 设置 HAProxy 2.0.7 时出现问题

在 Centos-7 上使用 tproxy 设置 HAProxy 2.0.7 时出现问题

我正在尝试在 Centos-7 机器上设置带有透明代理的 HAProxy。环境:(2-http 服务器 ==>> HAProxy 服务器 ==>> ClientVM)

我已经使用普通 haproxy 配置了 http 服务器并且它运行良好。

当我配置 haproxy.cfg 文件如下时:

global
   log /dev/log local0
   log /dev/log local1 notice
   chroot /var/lib/haproxy
   stats timeout 30s
   #user haproxy
   #group haproxy
   user root
   group wheel
   daemon

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

frontend App_in
       **bind haproxy-ip:80 transparent**
       mode tcp
       default_backend App_out
    
backend App_out
       mode tcp
       log global
       **source 0.0.0.0 usesrc clientip**
       balance roundrobin
       server http-1 http-1-ip:80
       server http-2 http-2-ip:80

我可以启动 haproxy 服务器,并且从 haproxy 服务器的终端获取响应 curl,但是当我从 ClientVM curl 时,我得到的响应为curl:(52)服务器回复为空

我还执行了 iptables-rule.sh 脚本来在 HAProxy 服务器上配置 iptables,如下所示:

#!/bin/bash
iptables -F
iptables -F -t nat
iptables -t mangle -N DIVERT
iptables -t mangle -A PREROUTING -p tcp -m socket -j DIVERT
iptables -t mangle -A DIVERT -j MARK --set-mark 1
iptables -t mangle -A DIVERT -j ACCEPT
ip rule add fwmark 1 lookup 100
ip route add local 0.0.0.0/0 dev lo table 100

相关内容