У меня простая конфигурация HAProxy; frontend на порт 21, backend на один ftp-сервер. ftp-сервер находится в пассивном режиме, поэтому, как только контрольное соединение установлено, соединение данных обрабатывается внутренним сервером.
Теперь проблема: если я использую порт 21 в интерфейсе это не работает. Если я использую порт 23 это работает. На порту 21 больше ничего не прослушивается (netstat -tulpn | grep: 21)
вот моя конфигурация haproxy, я заменил свой IP-адрес сервера на
global
log 127.0.0.1 local0 debug
chroot /var/lib/haproxy
# user haproxy
# group haproxy
maxconn 2000
defaults
log global
mode tcp
option tcplog
option dontlognull
timeout connect 5000
timeout client 50000
timeout server 50000
frontend haproxy_in
bind *:21
default_backend haproxy_ftp
backend haproxy_ftp
balance roundrobin
mode tcp
server ftp1 <serverip>:21 check
статус: активен (работает)
системный журнал после перезапуска:
Dec 16 08:28:40 hostname systemd[1]: Stopping HAProxy Load Balancer...
Dec 16 08:28:40 hostname haproxy-systemd-wrapper[21314]: haproxy-systemd-wrapper: SIGTERM -> 21316.
Dec 16 08:28:40 hostname haproxy-systemd-wrapper[21314]: haproxy-systemd-wrapper: exit, haproxy RC=143
Dec 16 08:28:40 hostname systemd[1]: haproxy.service: main process exited, code=exited, status=143/n/a
Dec 16 08:28:40 hostname systemd[1]: Unit haproxy.service entered failed state.
Dec 16 08:28:40 hostname systemd[1]: Starting HAProxy Load Balancer...
Dec 16 08:28:40 hostname systemd[1]: Started HAProxy Load Balancer.
Dec 16 08:28:40 hostname haproxy-systemd-wrapper[22090]: haproxy-systemd-wrapper: executing /usr/sbin/haproxy -f /etc/haproxy/haproxy.cfg -p /run/haproxy.pid -Ds
Я перезагрузил систему. Это очень неудовлетворительный ответ. Там, вероятно, открываются соединения с портом 21, где раньше слушал ftp-сервер.