Я использую ubuntu 14.04 и vsftpd версии 3.0.2, и моя проблема связана с загрузкой файлов через FTP. Сервис отлично работал последние два года, и я смог загрузить тысячи файлов без ошибок. Однако в последнее время я больше не могу этого делать, если я попытаюсь загрузить, скажем, 1000 файлов, первые ~ 300 файлов будут работать нормально, но затем он начнет сбоить, пока постепенно все слоты загрузки не будут заблокированы, повторяя попытки для этих неудачных файлов 2 раз, ожидая тайм-аута, и в итоге я остаюсь с кучей неудачных передач.
Я использую Filezilla 3.33 в Windows в качестве клиента. Вот как это выглядит в Filezilla, когда он изначально не работает:
Status: Starting upload of C:\wamp64\www\system\themes\widget\html.php
Status: Retrieving directory listing of "/web/domain.com/public_html/system/themes/widget"...
Command: PASV
Response: 227 Entering Passive Mode (10,10,20,10,50,217).
Command: STOR icon_box.php
Response: 150 Ok to send data.
Error: Connection timed out after 10 seconds of inactivity
Error: File transfer failed
vsftp.log для неудачных передач выглядит так:
Sat Jun 2 10:17:00 2018 [pid 29163] [admin] FAIL UPLOAD: Client "ip", "/web/domain.com/public_html/system/themes/widget/html.php", 853 bytes, 0.00Kbyte/sec
Затем после нескольких попыток Filezilla показывает следующие ошибки:
Response: 421 There are too many connections from your internet address.
Error: Could not connect to server
Status: Disconnected from server
Status: Delaying connection for 5 seconds due to previously failed connection attempt...
Response: 421 There are too many connections from your internet address.
Error: Could not connect to server
Response: 421 There are too many connections from your internet address.
Error: Could not connect to server
после всех этих попыток vsftp.log теперь выглядит так:
Sat Jun 2 11:20:19 2018 [pid 3616] CONNECT: Client "ip", "Connection refused: too many sessions for this address."
Sat Jun 2 11:20:24 2018 [pid 3622] CONNECT: Client "ip", "Connection refused: too many sessions for this address."
Sat Jun 2 11:20:24 2018 [pid 3632] CONNECT: Client "ip", "Connection refused: too many sessions for this address."
Вот как выглядит мой /etc/vsftpd.conf:
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=002
anon_upload_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
dual_log_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=NO
tcp_wrappers=YES
force_dot_files=YES
ascii_upload_enable=YES
ascii_download_enable=YES
#allow_writable_chroot=YES
allow_writeable_chroot=YES
seccomp_sandbox=NO
pasv_enable=YES
pasv_max_port=14000
pasv_min_port=12000
netstat -napt | grep client_ip
tcp 0 0 server_ip:21 client_ip:54986 TIME_WAIT -
tcp 1 0 server_ip:21 client_ip:54648 CLOSE_WAIT 4632/vsftpd
tcp 0 0 server_ip:12533 client_ip:54757 ESTABLISHED 4702/vsftpd
tcp 1 0 server_ip:21 client_ip:54730 CLOSE_WAIT 4698/vsftpd
tcp 0 0 server_ip:12342 client_ip:54900 ESTABLISHED 4700/vsftpd
tcp 0 0 server_ip:12113 client_ip:54854 TIME_WAIT -
tcp 0 0 server_ip:21 client_ip:54994 TIME_WAIT -
tcp 0 0 server_ip:13151 client_ip:54852 TIME_WAIT -
tcp 2122 0 server_ip:13772 client_ip:54690 CLOSE_WAIT -
tcp 0 0 server_ip:22 client_ip:54382 ESTABLISHED 4294/0
tcp 6001 0 server_ip:12738 client_ip:54679 CLOSE_WAIT -
tcp 2122 0 server_ip:13316 client_ip:54658 CLOSE_WAIT -
tcp 0 0 server_ip:12107 client_ip:54846 ESTABLISHED
в общей сложности это продолжается около 180 строк, в то время как вся ситуация находится в той точке, где Filezilla говорит Ответ: 421 С вашего интернет-адреса слишком много подключений.
Согласно источник, это связано с предварительным входом. В значение по умолчанию похоже на 50; поскольку вы не изменили его в своем файле конфигурации.
Итак, я предполагаю, что это будет ваш FTP-клиент: я думаю, что вы можете указать верхнюю границу для пула соединений filezilla. Вы что-нибудь меняли? Посмотри там для конфигурации filezilla.