我想使用haproxy部署一个ftp代理服务器。这是场景:
ftp客户端< ---> ftp-proxy-server(ip:10.0.1.1)< ---> FTP服务器(IP:172.126.1.1)
ftp服务器在端口21上侦听控制命令,数据端口范围[20100-20199]
我在ftp-proxy-server上有haproxy配置:
listen ftp-proxy-server 10.0.1.1:21
mode tcp
server ftp-server 172.126.1.1:21
listen ftp-proxy-server 10.0.1.1:20100-20199
mode tcp
server ftp-server 172.126.1.1:20100-20199
这是问题,我可以从ftp-client成功登录ftp服务,但无法执行输出“连接被拒绝”消息的ls命令。我想原因是从ftp-proxy-server到ftp-server的端口映射是随机的。所以当ftp-client获得一个保留端口时(例如20101),但ftp-proxy-server可能会将其映射到另一个端口(例如20109),这不是分配给ftp-client的端口ftp-server。
我想到一个配置100个侦听的解决方案,一个侦听一个端口,但编写配置文件很复杂。是一个简单的配置选项来逐个映射端口?就像10.0.1.1:20001 - > 172.126.1.1:20001,10.0.1.1:20002 - > 172.126.1.1:20002。
欢迎任何回答:)
答案 0 :(得分:5)
您必须从服务器定义中删除端口范围。 haproxy文档显示来自源的相同端口用于目标。
listen ftp-proxy-server 10.0.1.1:20100-20199
mode tcp
server ftp-server 172.126.1.1
答案 1 :(得分:0)
对于以代理货币为单位的haproxy 1.5,
listen web *:8080-8090
mode tcp
server worker1 10.0.0.1
server worker2 10.0.0.2
对于debian上的haproxy 1.7,
listen web
bind *:8080-8090
mode tcp
server worker1 10.0.0.1
server worker2 10.0.0.2