我想使用haproxy来部署一个ftp代理服务器。这是一个场景:
ftp客户端<-> ftp-proxy-server(ip:10.0.1.1) <-> ftp-server(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客户端获得保留端口(例如20101)时,但是ftp代理服务器可以将其映射到另一个端口(例如20109),该端口不是分配给ftp客户端的ftp服务器端口。
我在想一种解决方案,配置100个监听,一个监听一个端口,但编写配置文件很复杂。是否有一个简单的配置选项来逐个映射端口?就像10.0.1.1:20001 -> 172.126.1.1:20001,10.0.1.1:20002 -> 172.126.1.1:20002。
欢迎任何回答:)
发布于 2015-10-30 21:18:57
您必须从服务器定义中删除端口范围。haproxy文档显示,来自源的相同端口用于目标。
listen ftp-proxy-server 10.0.1.1:20100-20199
mode tcp
server ftp-server 172.126.1.1发布于 2020-06-04 10:05:38
对于centos上的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.2https://stackoverflow.com/questions/26794547
复制相似问题