Содержание

Раздел 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-клиентами.

Пример 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.

Список клиентов FTP

Windows:

Linux:

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 ./  /*