Раздел FTP: Протокол FTP, серверы, клиенты FTP для Linux и Windows

Протокол FTP (File Transfer Protocol — протокол передачи файлов) предназначен для передачи файлов по сети.

FTP описывается RFC 959 и определен только для транспортного протокола TCP; UDP -реализации, в отличие от TFTP, нет. В RFC 2428 описаны расширенные режимы FTP, которые позволяют работать в сетях IPv6. В расширенных режимах вместо команд PORT и PASV используются EPRT и EPSV соответственно.

Характерной отличительной особенностью FTP от других протоколов является то, что он для своей работы задействует два порта – порт данных и порт управления. Порт управления используется для установления соединения между клиентом и сервером, для управления режимами работы и т. д. В то время как порт данных служит для передачи запрашиваемой информации. Протоколом определены два режима взаимодействия: активный и пассивный, понимание которых крайне важно в случае использования в сети брандмауэров.

С помощью ftp можно передавать очень большой объем данных, указав /dev/zero в качестве ввода и /dev/null в качестве вывода (или mkfifo /tmp/mypipe). Это позволяет избежать использования дисков (ограничивающих пропускную способность) и кэширования всего передаваемого файла в памяти. Подобным способом можно нагрузить сетевые интерфейсы проверяемых серверов, чтобы проверить пропускную способность (проще использовать Iperf).

Протокол не шифруется, при аутентификации передаются логин и пароль открытым текстом. Чтобы предотвратить перехват трафика, необходимо использовать протокол шифрования данных SSL, который поддерживается многими современными FTP-серверами и некоторыми FTP-клиентами.

220 FTP server ready.
USER ftp //Анонимус
230 Login successful.
PASV
227 Entering Passive Mode (192,168,254,253,233,92)//Клиент должен открыть соединение на переданный  IP
LIST
150 Here comes the directory listing. //Сервер передает список файлов в директории
226 Directory send OK.
CWD incoming
250 Directory successfully changed.
PASV
227 Entering Passive Mode (192,168,254,253,207,56)
STOR gyuyfotry.avi
150 Ok to send data. //Клиент передает содержимое файла
226 File receive OK.
QUIT
221 Goodbye.

Аргумент 192,168,254,253,207,56 означает, что соединение от сервера ожидается на узле с IP-адресом 192.168.254.253 на порту 207*256+56=53048.

Windows:

  • SmartFTP
  • WinSCP доступен бесплатно и имеет открытый исходный код. WinSCP больше, чем просто защищённый FTP-клиент, поскольку это также сервер FTPS, SCP и SFTP с открытым исходным кодом.
  • CuteFTP
  • Total Commander имеет в своем арсенале встроенный FTP-клиент с поддержкой HTTP и FXP прокси.
  • Cyberduck поддерживает FTP, Amazon S3, WebDAV, SFTP и OpenStack Swift.

Linux:

  • NcFTP - это бесплатный кроссплатформенный FTP-клиент и первая в истории альтернатива стандартной программе FTP, разработанная для упрощения использования и нескольких улучшений функциональности и производительности FTP. Его функции включают в себя повторный набор номера, фоновую работу, автоматическое возобновление загрузки, завершение имени файла, индикаторы выполнения, поддержку других утилит, таких как ncftpput и ncftpget.

NcFTP доступен для установки из репозиториев по умолчанию с помощью диспетчера пакетов, как показано ниже.

$ sudo apt install ncftp  [On Debian/Ubuntu]
$ sudo yum install ncftp  [On CentOs/RHEL]
$ sudo dnf install ncftp  [On Fedora]

Пример использования NcFTP для переноса сайтов c виртуального хостинга на VPS. Копируется весь аккаунт рекурсивно (первая пример синтаксиса ncftpget):

ncftpget [flags] remote-host local-dir remote-path-names
 
ncftpget -R -v -u LOGIN -p PASSWORD 10.10.0.83 ./  /*
  • LFTP - это бесплатная утилита командной строки с открытым исходным кодом, разработанная для использования нескольких протоколов передачи файлов (например, sftp, fish, torrent) в Unix и аналогичных операционных системах. Она включает такие функции, как закладки, управление заданиями, поддержку библиотеки readline, встроенную команду зеркалирования и поддержку параллельной передачи нескольких файлов. lftp доступна для установки из репозиториев по умолчанию с помощью диспетчера пакетов.
  • Yafc - это FTP-клиент с открытым исходным кодом, разработанный для замены стандартной программы FTP в системах Linux, с поддержкой POSIX-совместимых систем. Он полностью бесплатен и имеет богатый набор функций, который включает в себя рекурсивные get/put/fxp/ls/rm, организацию очередей, автодополнение по tab, псевдонимы и поддержку SSH2 и прокси. Yafc доступен для установки из репозиториев по умолчанию, используя менеджер пакетов.
PQ VPS сервера в 28+ странах.