Здравствуйте сообщество!
Есть проблема, FTP сервер не может передать/или клиент не может получить список файлов которые находятся на сервере FTP (команда "ls"). Подозреваю, что не открываются порты для пассивного режима работы в связке клиент-сервер-клиент, когда клиентом является командная строка Windows. Чтобы было понятно делаю два опыта.
Опыт первый №1
Соединение с сервером при помощи программы FileZilla Client в режиме "Пассивного" подключения.
Как видно из лога порт открывается и все хорошо, лог с сервера:
16.01.2015 11:15:34 - (not logged in) (77.xx.xx.xx)> Connected on port 21, sending welcome message.
16.01.2015 11:15:34 - (not logged in) (77.xx.xx.xx)> 220 Please visit http://ru/
16.01.2015 11:15:34 - (not logged in) (77.xx.xx.xx)> AUTH TLS
16.01.2015 11:15:34 - (not logged in) (77.xx.xx.xx)> 502 SSL/TLS authentication not allowed
16.01.2015 11:15:34 - (not logged in) (77.xx.xx.xx)> AUTH SSL
16.01.2015 11:15:34 - (not logged in) (77.xx.xx.xx)> 502 SSL/TLS authentication not allowed
16.01.2015 11:15:34 - (not logged in) (77.xx.xx.xx)> USER user
16.01.2015 11:15:34 - (not logged in) (77.xx.xx.xx)> 331 Password required for user
16.01.2015 11:15:34 - (not logged in) (77.xx.xx.xx)> PASS connect
16.01.2015 11:15:34 - user (77.xx.xx.xx)> 230 Logged on
16.01.2015 11:15:34 - user (77.xx.xx.xx)> SYST
16.01.2015 11:15:34 - user (77.xx.xx.xx)> 215 UNIX emulated by FileZilla
16.01.2015 11:15:34 - user (77.xx.xx.xx)> FEAT
16.01.2015 11:15:34 - user (77.xx.xx.xx)> PWD
16.01.2015 11:15:34 - user (77.xx.xx.xx)> 257 "/" is current directory.
16.01.2015 11:15:34 - user (77.xx.xx.xx)> TYPE I
16.01.2015 11:15:34 - user (77.xx.xx.xx)> 200 Type set to I
16.01.2015 11:15:34 - user (77.xx.xx.xx)> PASV
16.01.2015 11:15:34 - user (77.xx.xx.xx)> 227 Entering Passive Mode (213,хх,хх,хх,195,187)
16.01.2015 11:15:34 - user (77.xx.xx.xx)> MLSD
16.01.2015 11:15:34 - user (77.xx.xx.xx)> 150 Opening data channel for directory listing of "/"
16.01.2015 11:15:34 - user (77.xx.xx.xx)> 226 Successfully transferred "/"
Опыт первый №2
Соединение с сервером при помощи командной строки Windows (cmd) перевод в пассивный режим подключения осуществляем командой "quote pasv".
Лог с сервера FTP:
16.01.2015 11:02:09 - (not logged in) (77.хх.хх.хх)> Connected on port 21, sending welcome message.
16.01.2015 11:02:09 - (not logged in) (77.хх.хх.хх)> 220 Please visit http://ru/
16.01.2015 11:02:12 - (not logged in) (77.хх.хх.хх)> USER user
16.01.2015 11:02:12 - (not logged in) (77.хх.хх.хх)> 331 Password required for edu
16.01.2015 11:02:16 - (not logged in) (77.хх.хх.хх)> PASS connect
16.01.2015 11:02:16 - user (77.хх.хх.хх)> 230 Logged on
16.01.2015 11:02:30 - user (77.хх.хх.хх)> PASV
16.01.2015 11:02:30 - user (77.хх.хх.хх)> 227 Entering Passive Mode (213,хх,хх,хх,195,186)
16.01.2015 11:02:38 - user (77.хх.хх.хх)> TYPE I
16.01.2015 11:02:38 - user (77.хх.хх.хх)> 200 Type set to I
16.01.2015 11:02:46 - user (77.хх.хх.хх)> TYPE A
16.01.2015 11:02:46 - user (77.хх.хх.хх)> 200 Type set to A
16.01.2015 11:02:46 - user (77.хх.хх.хх)> PORT 77,хх,хх,хх,165,254
16.01.2015 11:02:46 - user (77.хх.хх.хх)> 200 Port command successful
16.01.2015 11:02:46 - user (77.хх.хх.хх)> NLST
16.01.2015 11:02:46 - user (77.хх.хх.хх)> 150 Opening data channel for directory listing of "/"
16.01.2015 11:02:57 - user (77.хх.хх.хх)> 425 Can't open data connection for transfer of "/"
16.01.2015 11:08:58 - user (77.хх.хх.хх)> 421 Connection timed out.
Лог с клиента:
C:\Users\AMD>ftp 213.хх.хх.хх
Связь с 213.хх.хх.хх.
220 Please visit http://ru/
Пользователь (213.хх.хх.хх:(none)): user
331 Password required for user
Пароль:
230 Logged on
ftp> quote PASV
227 Entering Passive Mode (213,хх,хх,хх,195,186)
ftp> bin
200 Type set to I
ftp> hash
Вывод метки хеширования Вклftp: (2048 байт/хеш-метка).
ftp> ls
200 Port command successful
150 Opening data channel for directory listing of "/"
425 Can't open data connection for transfer of "/"
421 Connection timed out.
Подключение разорвано удаленным узлом.
Лог с фаерволла:
Вывод: в командной строке Windows что-то работает не так...и FileZilla Client как-то по-другому (иначе) передает команду "PASV" на открытие пассивного порта.
Фаерволлы и Брандмауэры не причем, проверял без них)
Используемый сервер FTP: FileZilla Server
Клиент для FTP сервера в опыте №1: FileZilla client
Клиент для FTP сервера в опыте №2: командная строка Windows 8.1