我想用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-client 得到一个保留的端口时(e.g. 20101),但是ftp-proxy-server可能会映射到另一个端口(例如20109),这不是ftp-server分配给ftp-client的端口。
我想到了一种配置100个监听,一个监听一个端口的解决方案,但是编写配置文件很复杂。是否有一个简单的配置选项来一一映射端口?就像 10.0.1.1:20001 -> 172.126.1.1:20001, 10.0.1.1:20002 -> 172.126.1.1:20002。
欢迎任何回答:)
最佳答案
您必须从服务器定义中删除端口范围。 haproxy 文档显示来自源的相同端口用于目标。
listen ftp-proxy-server 10.0.1.1:20100-20199
mode tcp
server ftp-server 172.126.1.1
关于networking - 如何将 haproxy 端口范围配置为一一范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26794547/