Telnet и пассивный FTP

У меня проблема с моим тестовым FTP-сервером. Я установил и настроил сервер FileZilla, он прослушивает управляющее соединение на порту 21, а затем может обеспечить соединение для передачи данных в пассивном режиме на портах между 50100 и 51100.

Я пытаюсь установить локальное соединение 127.0.0.1:21 и получить СПИСОК файлов и папок в корневом каталоге FTP.

Клиент FileZilla: Работает
FTP в MS-DOS: Работает
TELNET в MS-DOS: Управляет соединением и аутентификацией пользователя. ОК, затем я переключаюсь в пассивный режим, и когда я пытаюсь получить файлы и папку с СПИСОК команд. Он отвечает "Не удается открыть соединение для передачи данных" / "".

Я пробовал устанавливать правила брандмауэра для портов 50100-51100 и сервера FileZilla. Это все еще не работает.


person Giorgio.dev    schedule 29.05.2015    source источник
comment
Почему вы хотите использовать telnet для подключения к FTP-серверу? Вам понадобится как минимум два экземпляра telnet, одно командное соединение и одно соединение для передачи данных. После команды PASV FTP-сервер сообщает, к какому IP-адресу и порту вы должны подключиться, чтобы получить ответ данных следующей команды. Во всяком случае, оффтоп для SO и отсутствие подробностей того, что именно вы пытаетесь сделать и что вы пробовали.   -  person CodeCaster    schedule 29.05.2015
comment
@CodeCaster Это для дидактического использования, я изучаю протокол FTP. Итак, telnet после команды PASV не может создать соединение для передачи данных, мне нужно установить его вручную, не так ли?   -  person Giorgio.dev    schedule 29.05.2015
comment
Если вы используете WireShark, вы можете изучать данные, передаваемые между клиентом и сервером. Таким образом, вы можете изучить случай с ftp-клиентами и попытаться продублировать его, используя 2 соединения Telnet.   -  person Robert Jacobs    schedule 29.05.2015
comment
Протестировано и работает !!! Спасибо   -  person Giorgio.dev    schedule 29.05.2015


Ответы (1)


Вы не можете получать файлы по протоколу FTP с помощью клиента Telnet.

Хотя вы можете имитировать FTP-клиент, вводя команды FTP на консоли Telnet, вы не можете передавать файлы таким образом. Это связано с тем, что для передачи файлов вам необходимо отдельное соединение для передачи данных, чего не может сделать клиент Telnet.

Вот почему FTP-сервер выходит из строя. В активном режиме он не может подключиться к вашей клиентской машине, потому что ничего не слушает. В пассивном режиме это таймауты, ожидающие подключения клиента к его порту данных.

person Martin Prikryl    schedule 01.06.2015