ProFTPD - служба для передачи файлов по протоколу ftp. Данная служба широко применяется на Linux серверах для работы с файлами.
FTP сервера могут работать в двух режимах:
-
Активный - PORT клиент определяет порт соединения.
-
Пассивный - PASV сервер определяет порт соединения.
Помимо 21 порта по умолчанию идет процесс согласования на открытие дополнительных портов и в зависимости от режима работы сервера инициатором дальнейшего согласования выступает либо клиент либо сервер.
Недостатки активного режима:
-
Не работает, если клиент за NAT/фаерволом (сервер не может достучаться до клиента).
-
Для каждого файла открывается новый порт, что приводит к большому росту сессий
Преимущества пассивного режима:
-
Работает через NAT/фаервол (инициатива исходит от клиента).
-
Можно ограничить диапазон портов на сервере (PassivePorts в ProFTPD).
Для того чтобы ограничить количество соединений, необходимо внести настройки в файл конфигурации службы:
/etc/proftpd.conf
MaxInstances 30 # Максимальное количество процессов (включая служебные), которые может запустить ProFTPD.
MaxClients 20 # Максимальное количество одновременных подключений (пользователей)
MaxClientsPerHost 3 # Ограничивает число подключений с одного IP-адреса
Также можно принудительно включить пассивный режим:
/etc/proftpd.conf
Passive on
PassivePorts 50000 50100 # Ограничит диапазон портов (макс. 100 соединений)
Пассивный режим может работать не у всех, проверьте работу NAT и фаервола.
Проверьте файл конфигурации на ошибки и если он работает как служба перезапустите его, если как inetd то нужно только убедиться в отсутствии ошибок в файле конфигурации.
proftpd -t # Проверка конфига
systemctl restart proftpd # Перезапуск
ftp протокол имеет ряд недостатков и работает иногда с неким "лагом" в отличие от HTTP/S или SFTP (SSH File Transfer Protocol) по причине необходимости согласовывать действия и ожидать от клиента-сервера подтверждения.
При необходимости передать большое количество маленьких файлов рекомендуется делать это в архиве и потом распаковать его на самом сервере.