FTP, или File Transfer Protocol, — это протокол передачи файлов, активно применяемый для пересылки файлов. FTP-адреса обычно имеют формат ftp://hostname, где hostname — доменное имя или IP-адрес, например mysite.ru или 127.0.0.1.
В данной статье мы рассмотрим основы работы протокола FTP и порекомендуем программы для подключения.
Для чего нужен FTP-сервер
FTP-сервер используется для файлового обмена между сервером и клиентами. Он дает возможность загружать или скачивать файлы, а также управлять ими. FTP-серверы хорошо подходят для прямого обмена файлами. При этом протокол поддерживает немало дополнительных функций, в том числе можно настроить ограничения, подключить различные алгоритмы шифрования.
Как работает FTP-протокол
FTP-протокол работает по принципу клиент-сервер: клиент выполняет подключение к серверу и производит различные действия с файлами и файловой структурой, добавляя новые файлы и папки или изменяя их. Технически FTP-протокол работает так:
- Клиент подключается к FTP-серверу, вводя URL и, если не настроен анонимный доступ, логин с паролем.
- Если всё введено верно и сервер при этом активен, выполняется соединение через порт 21 (через этот порт по умолчанию передаются команды управления файлами: например, rename — переименовать, get — получить, delete — удалить).
- Передача файлов выполняется через порт 20, поэтому он должен быть открыт на компьютере клиента, иначе передача не начнется.
- Соединение по данному порту закрывается, как только сеанс передачи одного или группы файлов завершен.
Также обмен данными с сервером по FTP-протоколу может вестись и пассивно, но для этого клиент должен открыть другие порты. Пассивный режим задействуется в том случае, если обычным способом выполнить соединение не удается (например, мешает брандмауэр). Также особые порты используются при организации защищенного SSL-соединения и ряда других протоколов (расширений протокола FTP, например FTPS).
Установка FTP-сервера в Windows
В популярных версиях Windows (7 и 10) открываем Панель управления — Программы и компоненты — Включение или отключение компонентов Windows.
Находим Службы IIS и делаем активными FTP-сервер и подчиненные каталоги (после установки галочки у папки-родителя все подчиненные каталоги также будут активными), а ниже включаем Средства управления веб-сайтом (все подпункты тоже будут активированы).
Выбираем вкладку Администрирование и находим там Диспетчер служб IIS, запускаем его двойным кликом или нажатием Enter.
Теперь в левом меню жмем ПКМ на Сайты, а там на Добавить FTP-сайт.
Задаем нужное название и путь до каталога, который будет предназначен для обмена с подключающимися пользователями.
Далее в IP-адрес можно указать Все свободные, выставить порт 21, ниже активировать автозапуск FTP-сайта и указать без SSL.
Далее выбираем тип подключения или проверку подлинности. При нажатии на Анонимный сервер не будет требовать от клиента данных для авторизации (пару логин-пароль), а значит, подключиться к нему сможет любой клиент. Если же вы планируете настроить доступ по логину и паролю, отметьте пункт Обычная. После этого нажмите кнопку Готово.
Установка FTP-сервера в Linux
Для Linux инструкция будет отличаться. Прежде всего пользователь должен обладать правами root. Далее действия следующие:
1. Устанавливаем утилиту VSftpd через терминал.
Если у вас Ubuntu или Debian, то введите:
apt-get install vsftpd
Пользователи CentOS, Fedora должны использовать такую команду:
yum install vsftpd
А тем, кто работает на Gentoo, нужно ввести:
emerge vsftpd
2. Далее следует открыть конфигурационный файл VSftpd (он находится по пути /boot/grub/grub.conf
) и прописать там следующие значения (остальное по желанию):
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
3. Если нужно добавить нового пользователя с произвольным именем, это можно сделать командой adduser
. Далее вводим пароль, после чего заполняем остальные необходимые данные.
4. Присвоение прав выполняется инструкцией sudo adduser new_user sudo
в терминале.
5. Далее, используя команду mkdir
, можно создать каталог для пользователя и даже сделать его владельцем этого каталога — chown new_user any_directory
, где new_user
нужно заменить на имя целевого пользователя, а any_directory
— на нужный каталог.
6. Вот и всё, осталось выполнить перезагрузку инструкцией systemctl vsftpd restart
.
FTP-сервер создан, теперь нужно его правильно настроить.
Настройка FTP-сервера
Открываем пункт Брандмауэр защитника Windows и далее Дополнительные параметры. Выбираем слева Правила для входящих подключений, а в центральном окне находим FTP-сервер и Трафик-FTP сервера и включаем их. Также настраиваем и исходящее подключение.
В уже знакомой вкладке Администрирование заходим в Управление компьютером, открываем Группы в разделе Локальные пользователи, кликаем ПКМ и жмём на создание группы:
Вводим желаемые данные, после чего ищем группу в списке и снова жмём по ней ПКМ. Здесь нас интересует пункт Свойства. Выбираем там вкладку Членство в группах и добавляем в нужную (у нас это ftpuser для примера).
Теперь переходим в директорию, которая будет использоваться для FTP, жмём ПКМ, выбираем Свойства, открываем Безопасность и затем Изменить. Находим пользователя и выдаём права на полный доступ и всё остальное.
Далее снова открываем Диспетчер служб IIS, там кликаем на Правила авторизации, жмём ПКМ и, выбрав разрешающее правило, настраиваем доступ на чтение и запись. Вот и всё, настройка выполнена.
Как подключиться к FTP-серверу
Первый способ — через командную строку. В Windows откройте Пуск и введите cmd, чтобы открыть командную строку (также вызывается комбинацией клавиш Win+R), в командной строке введите ftp. На Linux открыть консоль можно с помощью комбинации клавиш Ctrl+Alt+F1.
Теперь укажите адрес сервера, затем понадобится ввести логин и пароль (если заданы). Далее можно работать при помощи команд FTP или использовать один из файловых менеджеров (например, Total Commander, Norton Commander, Far Manager, Midnight Commander). Но проще установить одну из специальных программ для соединения через FTP-протокол, о которых мы и поговорим ниже.
Программы для FTP-соединения
- Наиболее популярным приложением для этих целей является Filezilla. Для описания всех возможностей этой мощной (и бесплатной) программы потребовалась бы отдельная статья, поэтому расскажем кратко. Filezilla имеет простой интерфейс, поддерживает шифрование данных, позволяет управлять множеством подключений, поддерживает очереди передачи файлов и многое другое. Ещё одно важное преимущество Filezilla в том, что это универсальный ftp-клиент — есть версии для всех основных ОС.
- Тем, кто работает под Windows, также может понравиться WinSCP. Его достоинство — в простоте. Однако при этом WinSCP поддерживает различные скрипты, облегчающие выполнение рутинных процессов, SSH-подключение и позволяет синхронизировать локальные каталоги с FTP-сервером, что очень удобно для поддержки актуальности данных на клиентском компьютере.
- Еще одно простое решение — Cyberduck, доступное для пользователей Windows и MacOS. Из достоинств этого ftp-клиента выделим возможность работы с облачными хранилищами (в том числе Dropbox и сервисами Google). Также у Cyberduck есть и свои инструменты для сквозного шифрования файлов, что значительно повышает безопасность данных.
- Одним из лучших ftp-клиентов для MacOS является Transmit, преимущество которого в поддержке передачи данных практически по любому протоколу. Также этот ftp-клиент несложный в освоении и при этом позволяет работать с разным количеством серверов, поддерживает передачу файлов увеличенного объема и их загрузку в облачные хранилища (включая S3). Из других полезных функций можно отметить возможность массового переименования файлов и каталогов. Правда, есть и минус — в отличие от трех конкурентов выше он платный.
- Следующий в нашем списке — CrossFTP. Это многофункциональный ftp-клиент, предлагающий широкий набор возможностей для удаленного управления. Он поддерживает протоколы FTP, SFTP, FTPS, WebDav и S3, что позволяет работать с различными типами серверов. У CrossFTP есть поддержка вкладок, что дает возможность одновременно работать с несколькими серверами. Также есть возможности синхронизации, передачи пакетов и шифрования файлов.
- Пользователям Linux следует присмотреться к программе Nautilus, которая, как и весь остальной софт для ОС этого семейства, бесплатная. Это файловый менеджер для графической среды рабочего стола GNOME, причем Nautilus уже интегрирован в систему, поэтому искать и устанавливать его не потребуется. Основные функции Nautilus включают просмотр файловой системы, создание новых папок и файлов, копирование, перемещение и удаление файлов, а также переименование файлов и папок. Он также предлагает функцию поиска файлов и папок, чтобы быстро найти нужные элементы. Nautilus также поддерживает интеграцию с облачными хранилищами, такими как Google Диск и Dropbox. Это позволяет пользователям легко получать доступ к своим файлам в облаке и управлять ими прямо из программы.
- Чтобы подключиться по FTP, не обязательно иметь компьютер — можно делать это и со смартфона или планшета. Если ваше мобильное устройство работает на Android, вам подойдет AndFTP. Функции AndFTP включают не только просмотр файлов и папок на удаленном сервере, но также загрузку и скачивание файлов с/на мобильное устройство и даже копирование и удаление файлов на удаленном сервере. AndFTP также предлагает функцию поиска файлов, а также позволяет создавать задания для автоматической загрузки или скачивания в определенное время или по расписанию. В платной версии доступна синхронизация и ряд других функций.
На этом всё: теперь вы знаете, чем полезны FTP-серверы, как их устанавливать и настраивать, а также подключаться к ним напрямую или через программы.