如何逐个配置haproxy端口范围?

nei*_*eil 3 ftp networking haproxy

我想使用haproxy部署一个ftp代理服务器.这是场景:

ftp client <---> 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
Run Code Online (Sandbox Code Playgroud)

这是问题,我可以从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一样.

欢迎回答:)

kir*_*ann 6

您必须从服务器定义中删除端口范围.haproxy文档显示源的相同端口用于目标.

listen ftp-proxy-server 10.0.1.1:20100-20199
    mode tcp
    server ftp-server 172.126.1.1
Run Code Online (Sandbox Code Playgroud)