I have a machine, which is the Host and has HAProxy installed in it and working. Then I have a Guest KVM virtual machine running inside the Host with an IP 192.168.122.152. I installed an FTP server in the Guest machine with VSFTPD.
From the Host, if I try the command $ ftp -p 192.168.122.152, works perfectly and I can connect to the Guest FTP. I need to remark that this FTP is configured as passive, but both passive and active connections are working from the Host.
This is an extract of part of /etc/vsftpd.conf in the Guest:
# Passive mode
connect_from_port_20=NO
tcp_wrappers=YES
listen_address=192.168.122.152
pasv_enable=YES
pasv_promiscuous=NO
port_enable=YES
port_promiscuous=NO
pasv_max_port=10000
pasv_min_port=10250
Now it's time to make it accessible from outside, so I configure /etc/haproxy/haproxy.cfg like this:
listen FTP_Default *:21
server ftp01 192.168.122.152 check port 21 inter 10s rise 1 fall 2
listen FTP_Range *:10000-10250
server ftp01 192.168.122.152 check port 21 inter 10s rise 1 fall 2
But if I try to connect from other machine in internet $ ftp -p $PUBLICIP, it only responds: Connected to <PUBLICIP>, but it doesn't ask for the login and password.
Something in the HAProxy config must be wrong, because it's the only point where it fails. By the way, I tried to adapt my configuration to this one in this blog.
Thanks.