Различия

Показаны различия между двумя версиями страницы.


ftp [2022/07/08 02:23] (текущий) – создано - внешнее изменение 127.0.0.1
Строка 1: Строка 1:
 +====== Раздел FTP: Протокол FTP, серверы, клиенты FTP для Linux и Windows ======
 +{{ ::ftp_download_upload_files.jpg?nolink&600 |}}
 +Протокол **FTP** (File Transfer Protocol — протокол передачи файлов) предназначен для передачи файлов по сети.
 +
 +FTP описывается [[RFC]] 959 и определен только для транспортного протокола TCP; [[UDP]] -реализации, в отличие от TFTP, нет. В [[RFC]] 2428 описаны расширенные режимы FTP, которые позволяют работать в сетях IPv6. В расширенных режимах вместо команд PORT и PASV используются EPRT и EPSV соответственно.
 +
 +
 +<panel type="success" title="Все о протоколе FTP">
 +  * [[ftpd]] - FTP сервер, входящий в состав [[FreeBSD|FreeBSD]]
 +  * [[tftpd]] - установка в Ubuntu.
 +  * [[Pure-FTPd]]
 +  * [[ProFTPD]]
 +  * [[vsFTPd]]
 +  * [[Правила iptables для FTP]]
 +</panel>
 +
 +Характерной отличительной особенностью FTP от других протоколов является то, что он для своей работы задействует два порта – порт данных и порт управления. Порт управления используется для установления соединения между клиентом и сервером, для управления режимами работы и т. д. В то время как порт данных служит для передачи запрашиваемой информации. Протоколом определены два режима взаимодействия: активный и пассивный, понимание которых крайне важно в случае использования в сети брандмауэров.
 +
 +
 +<note tip>С помощью ftp можно передавать очень большой объем данных, указав /dev/zero в качестве ввода и /dev/null в качестве вывода (или mkfifo /tmp/mypipe). Это позволяет избежать использования дисков (ограничивающих пропускную способность) и кэширования всего передаваемого файла в памяти. Подобным способом можно нагрузить сетевые интерфейсы проверяемых серверов, чтобы проверить пропускную способность (проще использовать [[Iperf|Iperf]]).</note>
 +
 +Протокол не шифруется, при аутентификации передаются логин и пароль открытым текстом. Чтобы предотвратить перехват трафика, необходимо использовать протокол шифрования данных [[SSL|SSL]], который поддерживается многими современными FTP-серверами и некоторыми FTP-клиентами.
 +===== Пример FTP сессии =====
 +
 +<file bash>
 +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.
 +</file>
 +Аргумент 192,168,254,253,207,56 означает, что соединение от сервера ожидается на узле с IP-адресом 192.168.254.253 на порту 207*256+56=53048.
 +
 +===== Список клиентов FTP =====
 +Windows:
 +  * [[filezilla]]
 +  * SmartFTP
 +  * WinSCP доступен бесплатно и имеет открытый исходный код. WinSCP больше, чем просто защищённый FTP-клиент, поскольку это также сервер FTPS, SCP и SFTP с открытым исходным кодом.
 +  * CuteFTP
 +  * Total Commander имеет в своем арсенале встроенный FTP-клиент с поддержкой HTTP и FXP прокси.
 +  * Cyberduck поддерживает FTP, Amazon S3, WebDAV, SFTP и OpenStack Swift.
 +Linux:
 +  * [[https://www.ncftp.com|NcFTP]] - это бесплатный кроссплатформенный FTP-клиент и первая в истории альтернатива стандартной программе FTP, разработанная для упрощения использования и нескольких улучшений функциональности и производительности FTP. Его функции включают в себя повторный набор номера, фоновую работу, автоматическое возобновление загрузки, завершение имени файла, индикаторы выполнения, поддержку других утилит, таких как ncftpput и ncftpget.
 +
 +NcFTP доступен для установки из репозиториев по умолчанию с помощью диспетчера пакетов, как показано ниже.
 +<file bash>
 +$ sudo apt install ncftp  [On Debian/Ubuntu]
 +$ sudo yum install ncftp  [On CentOs/RHEL]
 +$ sudo dnf install ncftp  [On Fedora]
 +</file>
 +
 +Пример использования NcFTP для переноса сайтов c [[https://dieg.info|виртуального хостинга]] на VPS. Копируется весь аккаунт рекурсивно (первая пример синтаксиса ncftpget):
 +<file bash>
 +ncftpget [flags] remote-host local-dir remote-path-names
 +
 +ncftpget -R -v -u LOGIN -p PASSWORD 10.10.0.83 ./  /*
 +</file>
 +
 +  * **LFTP** - это бесплатная утилита командной строки с открытым исходным кодом, разработанная для использования нескольких протоколов передачи файлов (например, sftp, fish, torrent) в Unix и аналогичных операционных системах. Она включает такие функции, как закладки, управление заданиями, поддержку библиотеки readline, встроенную команду зеркалирования и поддержку параллельной передачи нескольких файлов. lftp доступна для установки из репозиториев по умолчанию с помощью диспетчера пакетов.
 +  * **Yafc** - это FTP-клиент с открытым исходным кодом, разработанный для замены стандартной программы FTP в системах Linux, с поддержкой POSIX-совместимых систем. Он полностью бесплатен и имеет богатый набор функций, который включает в себя рекурсивные get/put/fxp/ls/rm, организацию очередей, автодополнение по tab, псевдонимы и поддержку SSH2 и прокси. Yafc доступен для установки из репозиториев по умолчанию, используя менеджер пакетов.
 +
 +<panel type="primary" title="Читайте также">
 +  * [[sftp]]
 +  * [[ssh_klienty]]
 +  * [[Монтирование удалённой папки]] sftp, sshfs.
 +</panel>
  

📌 Удобный подбор VPS по параметрам доступен на DIEGfinder.com - официальном инструменте проекта DIEG. Это часть единой экосистемы, созданной для того, чтобы помочь быстро найти подходящий VPS/VDS сервер для любых задач хостинга.

📌 Для тестирования скриптов, установщиков VPN и Python-ботов рекомендуем использовать надежные VPS на короткий срок. Подробнее о быстрой аренде VPS для экспериментов - читайте здесь.

💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!