使用 Haproxy 代理一切

使用 Haproxy 代理一切

是否可以不在 Haproxy 配置中定义后端,以便为每个 TCP 连接创建代理?因此,如果我尝试通过 HAproxy 从主机 A(sftp、ssh、smtp) 进行连接,它将始终到达目的地。

答案1

我不知道在 HAProxy 中“代理”所有 TCP 连接的方法。

您应该设置一个前端并将其绑定到多个端口,例如:

bind 0.0.0.0:21
bind 0.0.0.0:22
bind 0.0.0.0:25

然后,根据端口,为每个感兴趣的端口/服务设置一个 ACL 和该 ACL 的后端:

acl is_ftp dst_port 21
acl is_ssh dst_port 22
acl is_smtp dst_port 25

use_backend ssh if is_ftp
use_backend ftp if is_ssh
use_backend smtp if is_smtp

答案2

也许我误解了这个问题,但如果你没有定义前端和后端的端口 - 那么所有流量都将停留在其当前端口上,即 WEB 80 -> 80 和 SMTP 25 -> 25

listen L7_TCP_ALLPORTS
bind 10.0.0.20
mode tcp 
balance leastconn 
server RS001 192.168.1.21 check port 80

注意:您需要指定检查端口(否则它不会知道)。

相关内容