LINUX.ORG.RU
решено ФорумAdmin

Постоянно отваливается FTP

 , ,


0

1

Итак, всё тот же сервер на Gentoo 3.7.10-r1 x86_64. FTP-сервер работает как надо, но довольно часто без объяснения причин при передаче уходит в таймаут и отваливается.

Лог FileZilla обычно такой:

...
Статус:	Начинаю закачивать ...\kusabax_0.9.3_full\dwoo\templates\oek_post_box.tpl
Команда:	PASV
Ответ:	227 Entering Passive Mode (5,xx,xx,xx,197,25)
Команда:	STOR oek_post_box.tpl
Ошибка:	Превышено время ожидания соединения
Ошибка:	Передача файла потерпела неудачу
Статус:	Соединяюсь с 5.xx.xx.xx:21...
Статус:	Соединение установлено, ожидание приглашения...
Ответ:	220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
Ответ:	220-You are user number 4 of 60 allowed.
Ответ:	220-Local time is now 10:43. Server port: 21.
Ответ:	220-IPv6 connections are also welcome on this server.
Ответ:	220 You will be disconnected after 5 minutes of inactivity.
Команда:	USER test
Ответ:	331 User test OK. Password required
Команда:	PASS ********
Ответ:	230 OK. Current restricted directory is /
Статус:	Server does not support non-ASCII characters.
Статус:	Соединение установлено
Статус:	Начинаю закачивать ...\kusabax_0.9.3_full\dwoo\templates\oek_post_box.tpl
Команда:	CWD /test/kusabax_0.9.3_full/dwoo/templates
Ответ:	250 OK. Current directory is /test/kusabax_0.9.3_full/dwoo/templates
Статус:	Получение списка каталогов...
Команда:	TYPE I
Ответ:	200 TYPE is now 8-bit binary
Команда:	PASV
Ответ:	227 Entering Passive Mode (5,xx,xx,xx,197,26)
Команда:	MLSD
Ответ:	150 Accepted data connection
Ответ:	226-Options: -a -l 
Ответ:	226 20 matches total
Команда:	TYPE A
Ответ:	200 TYPE is now ASCII
Команда:	PASV
Ответ:	227 Entering Passive Mode (5,xx,xx,xx,197,27)
Команда:	STOR oek_post_box.tpl
Ответ:	150 Accepted data connection
Ответ:	226-File successfully transferred
Ответ:	226 0.006 seconds (measured here), 1.00 Mbytes per second
Статус:	Файл передан успешно, передан 5 998 байт в 1 секунда
...

Причём, подобная ошибка была и у proftpd, но после замены на pure-ftpd она никуда не делась. Сейчас стоит последний.

Конфиг у него самый стандартный:

IS_CONFIGURED="yes"
SERVER="-S 21"
MAX_CONN="-c 60"
MAX_CONN_IP="-C 30"
DISK_FULL="-k 90%"
AUTH="-l unix"
TIMEOUT="-I 5"
MISC_OTHER="-A -j -Z"
TMPFS_MOUNT="false"
При этом по SFTP (OpenSSH) всё работает безупречно.

В какую сторону рыть?

Коннект отваливается по таймауту. Смотри роутеры-файрволлы и т.п. ФТП сервер тут не причем я думаю.

blind_oracle ★★★★★ ()
Ответ на: комментарий от blind_oracle

Любопытно, что схожую проблему я припоминаю ещё когда у меня была другая комплектуха и стоял Archlinux. Значит, дело действительно может быть в роутере. Но, вот незадача, почему по SFTP копируются десятки тысяч файлов без проблем?

Le_Raux ()
Ответ на: комментарий от Le_Raux

это другой протокол, если не можешь разобраться как работает FTP, запусти tcpdump и посмотри что куда ходит, вероятно у тебя часть пассивных портов закрыта, нужно задать диапазон в конфиге ftp севера или найти дефолтные параметры, и открыть их на роутере/фаерволе/etc

да и еще попробуй диапазон пассивных портов повыше подвинуть, выше 1024 хотя бы

dGhost ★★★ ()
Последнее исправление: dGhost (всего исправлений: 1)

При этом по SFTP (OpenSSH) всё работает безупречно.

А при чем здесь это? Ты бы еще удивился тому, что на той же машине успешно работает, например, вебсервер.
Посмотри настройки keep-alive на клиенте, если не поможет, тогда, видимо, действительно глюки.

ЗЫ. Возможно, ты таки путаешь SFTP (SSH) и FTPS (FTP+TLS|SSL)

thesis ★★★★★ ()
Последнее исправление: thesis (всего исправлений: 1)
Ответ на: комментарий от blind_oracle

Да, любопытно. Дело, похоже, действительно не в сервере. Ибо когда подключаюсь по 192.168.1.хх, всё работает как надо. Как только через внешний IP — отвалы.

Роутер как только сейчас ни настраивал: и полностью защиту отрубал, и брендмауэр отключал — бесполезно.

Le_Raux ()
Ответ на: комментарий от dGhost

Посмотрел с помощью tcpdump'a, дисконнекту по таймауту предшествуют такие пакеты:

...
12:18:03.368674 IP 5.xx.xx.xx.17191 > 192.168.1.x.ftp: Flags [P.], seq 8431:8437, ack 48950, win 16414, length 6
12:18:03.370740 IP 5.xx.xx.xx.17191 > 192.168.1.x.ftp: Flags [P.], seq 8437:8460, ack 48950, win 16414, length 23
12:18:03.807866 IP 5.xx.xx.xx.17191 > 192.168.1.x.ftp: Flags [.], ack 48950, win 16414, length 0
12:18:04.693466 IP 5.xx.xx.xx.17191 > 192.168.1.x.ftp: Flags [.], ack 48950, win 16414, length 0
12:18:06.464908 IP 5.xx.xx.xx.17191 > 192.168.1.x.ftp: Flags [.], ack 48950, win 16414, length 0
thesis, нет, я написал всё верно — по 22 порту у меня идёт OpenSSH с возможностью подключения по нему SFTP\PuTTY.

Le_Raux ()

Если у тебя роутер снаружи пробрасывает порты, то возможно для пассивных соединений он это делает криво. Что за роутер?

Pinkbyte ★★★★★ ()
Ответ на: комментарий от Le_Raux

Ну тогда я тоже написал то, что хотел: непонятно, какую ценность представляет информация о работающем демоне SSH в контексте рассматриваемой проблемы о неработающем FTP.
Ну да неважно.
Я предполагал у тебя такой сценарий: сервер оценивает активность клиента по движаниям на управляющем порту, поэтому, пока идет пересылка данных, сервер успевает решить, что клиент отвалился. Раньше такое встречалось. Если у тебя мелкие файлы и / или высокая скорость передачи / настрены частые keep-aliv'ы, то это не твой случай, но я бы перепроверил, перед тем, как окончательно обвинить роутер.

thesis ★★★★★ ()
Ответ на: комментарий от Pinkbyte

Роутер — NetGear WNR3500L (v1), прошивка стандартная, версия ПО V1.2.2.44_35.0.53.

Порт 21 открыт (переадресован на машину) через TCP.

Le_Raux ()
Ответ на: комментарий от Deleted

Нет у меня /etc/services, а некоторое луркание показало, что его использует демон inetd, которого у меня, опять же, нет.

Le_Raux ()
Ответ на: комментарий от Deleted

На какие? 20 и 21 порты у меня так и так открыты по TCP\UDP.

Pure-FTPD, кстати, на 20 порту отказывается пахать как надо.

Или я что-то не понимаю?

Le_Raux ()
Ответ на: комментарий от Le_Raux

Про двадцатый ты упомянул впервые, заметь. ftp-сервер за nat’ом как я понимаю? И ты коннектишься к нему из интернета?

Deleted ()
Ответ на: комментарий от Deleted

FTP-сервер, да, за NAT'ом роутера, но внешний IP абсолютно белый и статичный.

Коннекчусь из интернета — каждые 100-200 файлов обрывы (кстати, на SFTP они тоже есть! просто нет таймаута и заметно это только по логам), как только подключаю по внутреннему адресу внутри своей сети — всё пучком.

Да, предупреждая закономерный вопрос, я попробовал вновь раскомментить

## If your FTP server is behind a NAT box, uncomment this ##
USE_NAT="-N"
Отвалы по таймауту всё равно остались, но стали много реже и менее предсказуемы.

Le_Raux ()
Ответ на: комментарий от Le_Raux

Если файлы всё-таки идут в инет, значит форвардинг пакетов работает. Я прочитал статью по ссылке beastie и задался вопросом, а не блокирует ли файерволл на клиенте порты для сокетов файлзиллы? Ей может потребоваться около пятидесяти, если верить тому, что там написано. Я так недавно nfs настраивал, думал-думал, почему клиент по таймауту отваливается, оказалось, порты.

Deleted ()
27 января 2014 г.

Вся проблема была в роутере.

Le_Raux ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.