В Docker FTP сервер после запуска или простоя теряет/не получает часть данных от клиента
У меня есть Docker, в docker есть контейнер FTP stilliard/pure-ftpd (на самом деле пробовал и другие garethflowers/ftp-server, bogem/ftp - ситуация аналогичная). Есть клиент, который передает jpeg и csv. Пассивный режим. При первом запуске контейнера и после какого-то времени 1-2 передачи файлов не проходят, после работает все ок. Клиент не умеет буферизировать данные, в случае неудачной передачи. Подключил в docker drakkan/sftpgo, вручную добавил клиента FTP, потери данных нет, все работает как часы. Может кто подсказать, почему так происходит?
Конфигурация docker-compose:
ftp:
image: stilliard/pure-ftpd
hostname: ftp
container_name: ftp
restart: always
env_file:
- _project_/settings/env/.env.dev
volumes:
- ftp-data:/home/test
ports:
- "21:21/tcp"
- "30000-30009:30000-30009/tcp"
depends_on:
db:
condition: service_healthy
ENV файл:
FTP_USER_NAME=test
FTP_USER_PASS=test
FTP_USER_HOME=/home/test
FTP_PASSIVE_PORTS=30000:30009
PUBLICHOST=10.10.10.10
ADDED_FLAGS=-d
log контейнера FTP:
2025-03-12 09:37:54 rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
2025-03-12 09:37:54 rsyslogd: activation of module imklog failed [v8.1901.0 try https://www.rsyslog.com/e/2145 ]
2025-03-12 09:37:54 tail: cannot open '/var/log/pure-ftpd/pureftpd.log' for reading: No such file or directory
2025-03-12 09:38:50 tail: '/var/log/pure-ftpd/pureftpd.log' has appeared; following new file
2025-03-12 09:37:54 Log enabled, see /var/log/messages
2025-03-12 09:37:54 Creating user...
2025-03-12 09:37:54 Password:
2025-03-12 09:37:54 Enter it again:
2025-03-12 09:37:54 Setting default port range to: 30000:30009
2025-03-12 09:37:54 Setting default max clients to: 5
2025-03-12 09:37:54 Setting default max connections per ip to: 5
2025-03-12 09:37:54 Starting Pure-FTPd:
2025-03-12 09:37:54 pure-ftpd -l puredb:/etc/pure-ftpd/pureftpd.pdb -E -j -R -P 10.10.10.10 -d -p 30000:30009 -c 5 -C 5
<!-- 1 Попытка получения данных, данные не пришли и утеряны -->
2025-03-12 09:38:51 Mar 12 02:38:50 ftp pure-ftpd: ([email protected]) [INFO] New connection from 172.18.0.1
2025-03-12 09:38:51 Mar 12 02:38:50 ftp pure-ftpd: ([email protected]) [INFO] Logout.
2025-03-12 09:38:51 Mar 12 02:38:51 ftp pure-ftpd: ([email protected]) [INFO] New connection from 172.18.0.1
2025-03-12 09:38:51 Mar 12 02:38:51 ftp pure-ftpd: ([email protected]) [INFO] Logout.
<!-- 2 Попытка получения данных, 1 файл утерян, csv файл обновился-->
2025-03-12 09:39:13 Mar 12 02:39:12 ftp pure-ftpd: ([email protected]) [INFO] New connection from 172.18.0.1
2025-03-12 09:39:13 Mar 12 02:39:12 ftp pure-ftpd: ([email protected]) [INFO] Logout.
2025-03-12 09:39:14 Mar 12 02:39:13 ftp pure-ftpd: ([email protected]) [INFO] New connection from 172.18.0.1
2025-03-12 09:39:14 Mar 12 02:39:13 ftp pure-ftpd: ([email protected]) [DEBUG] Command [user] [test]
2025-03-12 09:39:14 Mar 12 02:39:13 ftp pure-ftpd: ([email protected]) [DEBUG] Command [pass] [<*>]
2025-03-12 09:39:14 Mar 12 02:39:13 ftp pure-ftpd: ([email protected]) [INFO] test is now logged in
2025-03-12 09:39:14 Mar 12 02:39:13 ftp pure-ftpd: ([email protected]) [DEBUG] Command [syst] []
2025-03-12 09:39:14 Mar 12 02:39:13 ftp pure-ftpd: ([email protected]) [DEBUG] Command [cwd] [/10.10.10.11/]
2025-03-12 09:39:14 Mar 12 02:39:13 ftp pure-ftpd: ([email protected]) [DEBUG] Command [type] [I]
2025-03-12 09:39:14 Mar 12 02:39:13 ftp pure-ftpd: ([email protected]) [DEBUG] Command [pasv] []
2025-03-12 09:39:14 Mar 12 02:39:13 ftp pure-ftpd: ([email protected]) [DEBUG] Command [appe] [20250312.csv]
2025-03-12 09:39:14 Mar 12 02:39:13 ftp pure-ftpd: ([email protected]) [NOTICE] /home/test//10.10.10.11/20250312.csv uploaded (34 bytes, 29.20KB/sec)
2025-03-12 09:39:14 Mar 12 02:39:13 ftp pure-ftpd: ([email protected]) [DEBUG] Command [cwd] [/]
2025-03-12 09:54:14 Mar 12 02:54:13 ftp pure-ftpd: ([email protected]) [INFO] Timeout - try typing a little faster next time
<!-- 3 Попытка получения данных, через время, 1 файл утерян, csv файл обновился-->
2025-03-12 10:00:06 Mar 12 03:00:06 ftp pure-ftpd: ([email protected]) [INFO] New connection from 172.18.0.1
2025-03-12 10:00:06 Mar 12 03:00:06 ftp pure-ftpd: ([email protected]) [INFO] Logout.
<!-- 4 Попытка получения данных, оба файла получены-->
2025-03-12 10:00:14 Mar 12 03:00:13 ftp pure-ftpd: ([email protected]) [INFO] New connection from 172.18.0.1
2025-03-12 10:00:14 Mar 12 03:00:13 ftp pure-ftpd: ([email protected]) [DEBUG] Command [user] [test]
2025-03-12 10:00:14 Mar 12 03:00:13 ftp pure-ftpd: ([email protected]) [DEBUG] Command [pass] [<*>]
2025-03-12 10:00:14 Mar 12 03:00:13 ftp pure-ftpd: ([email protected]) [INFO] test is now logged in
2025-03-12 10:00:14 Mar 12 03:00:13 ftp pure-ftpd: ([email protected]) [DEBUG] Command [syst] []
2025-03-12 10:00:14 Mar 12 03:00:13 ftp pure-ftpd: ([email protected]) [DEBUG] Command [cwd] [/10.10.10.11/ng/]
2025-03-12 10:00:14 Mar 12 03:00:13 ftp pure-ftpd: ([email protected]) [INFO] Can't change directory to /10.10.10.11/ng/: No such file or directory
2025-03-12 10:00:14 Mar 12 03:00:13 ftp pure-ftpd: ([email protected]) [DEBUG] Command [mkd] [10.10.10.11]
2025-03-12 10:00:14 Mar 12 03:00:13 ftp pure-ftpd: ([email protected]) [ERROR] Can't create directory: File exists
2025-03-12 10:00:14 Mar 12 03:00:13 ftp pure-ftpd: ([email protected]) [DEBUG] Command [cwd] [10.10.10.11]
2025-03-12 10:00:14 Mar 12 03:00:13 ftp pure-ftpd: ([email protected]) [DEBUG] Command [mkd] [ng]
2025-03-12 10:00:14 Mar 12 03:00:13 ftp pure-ftpd: ([email protected]) [DEBUG] Command [cwd] [ng]
2025-03-12 10:00:14 Mar 12 03:00:13 ftp pure-ftpd: ([email protected]) [DEBUG] Command [type] [I]
2025-03-12 10:00:14 Mar 12 03:00:13 ftp pure-ftpd: ([email protected]) [DEBUG] Command [pasv] []
2025-03-12 10:00:14 Mar 12 03:00:13 ftp pure-ftpd: ([email protected]) [DEBUG] Command [stor] [250312_104151815-.jpg]
2025-03-12 10:00:14 Mar 12 03:00:13 ftp pure-ftpd: ([email protected]) [NOTICE] /home/test//10.10.10.11/ng/250312_104151815-.jpg uploaded (42667 bytes, 8472.18KB/sec)
2025-03-12 10:00:14 Mar 12 03:00:13 ftp pure-ftpd: ([email protected]) [DEBUG] Command [cwd] [/]
2025-03-12 10:00:14 Mar 12 03:00:13 ftp pure-ftpd: ([email protected]) [DEBUG] Command [cwd] [/10.10.10.11/]
2025-03-12 10:00:14 Mar 12 03:00:13 ftp pure-ftpd: ([email protected]) [DEBUG] Command [type] [I]
2025-03-12 10:00:14 Mar 12 03:00:13 ftp pure-ftpd: ([email protected]) [DEBUG] Command [pasv] []
2025-03-12 10:00:14 Mar 12 03:00:13 ftp pure-ftpd: ([email protected]) [DEBUG] Command [appe] [20250312.csv]
2025-03-12 10:00:14 Mar 12 03:00:13 ftp pure-ftpd: ([email protected]) [NOTICE] /home/test//10.10.10.11/20250312.csv uploaded (34 bytes, 29.18KB/sec)
2025-03-12 10:00:14 Mar 12 03:00:13 ftp pure-ftpd: ([email protected]) [DEBUG] Command [cwd] [/]
log клиента, на UDP не обращайте внимание, не подключен контроллер пока:
<!--1 передача данных после запуска сервера, оба файла утеряны-->
[03-12 14:00:14:0802] | Info | FTP :0464: transType:2, result: 1
[03-12 14:00:14:0802] | Info | FORMATTER :0256: str1: , str_len1: 0
[03-12 14:00:14:0802] | Info | FORMATTER :0259: str2: , str_len2: 0
[03-12 14:00:14:0805]| Info | SYNC_IF -L0424: sync if get result . release imgid = 0. ret = 0. debug_idx = 9.
[03-12 14:00:14:0835] | Info | BIOP :1400: udp output bcr info is NoRead|
[03-12 14:00:14:0846] | Error | BIOP :1469: check udp connection error,recreate socket!
[03-12 14:00:15:0838] | Error | FTPCLI :0869: error: recv, Resource temporarily unavailable
[03-12 14:00:15:0838] | Error | FTPCLI :0406: get response failed.
[03-12 14:00:15:0838] | Error | FTPCLI :0174: ret: 3
[03-12 14:00:15:0838] | Error | FTP :0141: upload file failed: 10.10.10.11/ng/250312_140014801-.jpg
[03-12 14:00:16:0862] | Error | FTPCLI :0869: error: recv, Resource temporarily unavailable
[03-12 14:00:16:0862] | Error | FTPCLI :0406: get response failed.
[03-12 14:00:16:0862] | Error | FTPCLI :0174: ret: 3
[03-12 14:00:16:0862] | Error | FTP :0141: upload file failed: 10.10.10.11/20250312.csv
[03-12 14:00:16:0862] | Info | BUFFERPOOL :0159: start:388325 end:434529 totalLen:157286392
<!--2 передача данных после запуска сервера, передался CSV только, jpg утерян-->
[03-12 14:10:02:0288] | Info | FTP :0464: transType:2, result: 1
[03-12 14:10:02:0289] | Info | FORMATTER :0256: str1: , str_len1: 0
[03-12 14:10:02:0289] | Info | FORMATTER :0259: str2: , str_len2: 0
[03-12 14:10:02:0289]| Info | SYNC_IF -L0424: sync if get result . release imgid = 1. ret = 0. debug_idx = 10.
[03-12 14:10:02:0356] | Info | BIOP :1400: udp output bcr info is NoRead|
[03-12 14:10:02:0367] | Error | BIOP :1469: check udp connection error,recreate socket!
[03-12 14:10:03:0294] | Error | FTPCLI :0869: error: recv, Resource temporarily unavailable
[03-12 14:10:03:0294] | Error | FTPCLI :0406: get response failed.
[03-12 14:10:03:0294] | Error | FTPCLI :0174: ret: 3
[03-12 14:10:03:0294] | Error | FTP :0141: upload file failed: 10.10.10.11/ng/250312_141002287-.jpg
[03-12 14:10:04:0336] | Info | FTPCLI :0282: FTP getResponse:
[03-12 14:10:04:0336] | Info | FTPCLI :0299: FTP cut Response:
[03-12 14:10:04:0336] | Info | FTPCLI :0300: port of data link: 30002
[03-12 14:10:04:0341] | Info | BUFFERPOOL :0159: start:434529 end:481282 totalLen:157286392
[03-12 14:10:17:0113] | Info | GVCP :0503: write register addr: 0x30950 name: DirZipCmd val: 0x1
<!--3 передача данных после запуска сервера, оба файла переданы-->
[03-12 14:13:59:0526] | Info | FTP :0464: transType:2, result: 1
[03-12 14:13:59:0526] | Info | FORMATTER :0256: str1: , str_len1: 0
[03-12 14:13:59:0526] | Info | FORMATTER :0259: str2: , str_len2: 0
[03-12 14:13:59:0527]| Info | SYNC_IF -L0424: sync if get result . release imgid = 2. ret = 0. debug_idx = 11.
[03-12 14:13:59:0529] | Error | FTPCLI :0640: change directory failed, /10.10.10.11/ng/
[03-12 14:13:59:0531] | Error | FTPCLI :0677: create directory failed, 10.10.10.11
[03-12 14:13:59:0539] | Info | FTPCLI :0282: FTP getResponse:
[03-12 14:13:59:0539] | Info | FTPCLI :0299: FTP cut Response:
[03-12 14:13:59:0539] | Info | FTPCLI :0300: port of data link: 30008
[03-12 14:13:59:0553] | Info | FTPCLI :0282: FTP getResponse:
[03-12 14:13:59:0553] | Info | FTPCLI :0299: FTP cut Response:
[03-12 14:13:59:0553] | Info | FTPCLI :0300: port of data link: 30001
[03-12 14:13:59:0558] | Info | BUFFERPOOL :0159: start:481282 end:527946 totalLen:157286392
[03-12 14:13:59:0608] | Info | BIOP :1400: udp output bcr info is NoRead|
[03-12 14:13:59:0619] | Error | BIOP :1469: check udp connection error,recreate socket!
[03-12 14:14:19:0004] | Info | GVCP :0503: write register addr: 0x30950 name: DirZipCmd val: 0x1