Некорректная работа FTP — пассивный режим и как с ним бороться?

Схема работы FTP
File Transfer Protocol — один из самых первых (1971) протоколов передачи данных и по сей день остается основным клиент-серверным звеном. Удобство FTP трудно переоценить — быстрее и проще способа передать файлы в TCP/IP среде, наверное, не найти. Как и множество других протоколов он использует модель двойного соединения, что, в свое время было очень важно — экономился дорогой трафик.

Даже те, кто владеют дешевым ftp сервером, знают про два основных режима работы. Пассивный — В этом режиме клиент должен сам начать работу с сервером. Активный — Сервер сам предлагает клиенту начать работу, отправляя приветствие. В связи с этим у некоторых пользователей возникает забавная проблема — клиент (Filezilla, WinSCP) автоматически «уходит» в пассивный режим — чтение каталогов и передача файлов при этом становятся невозможны:

Лог программы Filezilla:

 

`Некорректная

Многие предлагают пассивный режим работы, когда вы работаете за NAT-ом, т.е. не имеете постоянного IP-адреса. Но проблема возникает даже у пользователей провайдера ТТК, который предоставляет эту возможность. Что делать? Как обойти навязчивый пассивный режим? Как известно, стандартный порт для подключения к серверу — 21. Мне помогло изменение этого значения — мы изменим порт для подключения (авторизации) со стороны сервера, например на 2121. Если вы самостоятельно не можете этого сделать и/или у вас нет прав для редактирования такой информации — лучше обратиться к администратору хостинга.

 

Если ваш сервер работает под управлением Ubuntu Linux, то смена порта происходит следующим образом:

В случае, если ваш FTP-сервер запущен в нормальном режиме с с использованием суперсервера xinetd, и вы хотите изменить порт по умолчанию на 2121, найдите в файле /etc/services строку FTP и замените 21 на 2121, после чего перезапустите xinetd.

$ sudo service xinetd restart
Теперь, как вы можете убедиться, FTP-сервер слушает порт 2121:

$ netstat -ant | grep 2121
tcp 0 0 0.0.0.0:2121 0.0.0.0:* LISTEN

Теперь проверим изменения в действии и подключимся к серверу по новому порту 2121:

Status: Connecting to 149.154.69.76:2121
Status: Connection established, waiting for welcome message…
Status: Insecure server, it does not support FTP over TLS.
Status: Connected
Status: Retrieving directory listing…
Status: Directory listing of «/» successful

Готово, работает:

`Некорректная

Именно этот способ помог от постоянного подключения через пассивный режим. В таких случаях также советуют использовать SFTP.