FTP-клиенты в Linux. FTP клиенты в Ubuntu (1)
Этот документ был написан Matthew Borowski для Linux Documentation Project. Но он пока не закончен, т.к. еще не сделаны некоторые добавления. Вскоре должен появится раздел с информацией относительно работы сервера FTP.
3. Руководство начинающего по пользованию ftp
Быстрое руководство к использованию ftp.Стандартная ftp программа - настоящий ftp клиент. Она входит в большинство дистрибутивов Linux. Сначало появилась в 4.2BSD.3.1. Запуск ftp программы
Скажем, вы хотите соединится с FTP сайтом metalab.unc.edu, чтобы получить последние исходные тексты ядра Linux.В командной строке введите:$ ftp metalab.unc.edu
FTP программа попытается соединится с metalab.unc.edu. Другой способ сделать это - запустить ftp из командной строки без параметров, и использовать команду open с именем сайта в качестве аргумента:
$ ftp ftp> open metalab.unc.edu
3.2. Регистрация на FTP сервере
Когда вы соединитесь с FTP сайтом, система спросит ваш логин (нажмите Enter, и вы войдете под локальным именем, в данном случае под именем foo). Мы войдем как anonymous или ftp , чтобы получить доступ к общедоступному архиву.Рано или поздно многим из нас приходит мысль попробовать себя в новом направлении. Например, в создании своего сайта или сервера, а может быть, он у вас уже есть и вы просто перешли на линукс. Не важно. Главное, что во всех этих случаях нам надо как-то закачивать файлы на сервер. В случае, если сайт располагается на хостинге, можно воспользоваться онлайн-сервисами своего хостинга (которые, к слову сказать, не всегда столь удобны, как хотелось бы), а если у нас сервер? В данной ситуации нам нужен . Сегодня представляю вашему обозрению три ftp-клиента: Filezilla , gFTP и для любителей консоли - mc.
Так, думаю что в случае с сайтом вы определились и будете использовать какой-нибудь из Linux-хостингов, ведь зачастую хостинг на Linux дешевле, чем на Windows. А в случае со своим собственным сервером будем считать, что вы уже настроили на нем FTP.
Предлагаю установить сразу все и выбрать тот, который понравится.
В Ubuntu/Debian/Mint:
Sudo apt-get install filezilla mc gftp
Sudo yum install filezilla mc gftp
Sudo pacman -S filezilla mc gftp
Ну вот. Теперь можно начинать и сам обзор. Начнем с mc. Этот консольный файловый менеджер малый, но удалый. Кроме как производить действия с файлами на локальной машине, он может еще и подключаться к серверу по FTP, устанавливать Shell-соединение и SMB-соединение. Сегодня он нас интересует только как FTP-клиент. Выбираете сверху правую или левую панель, как вам больше нравится, разницы нет, -> ftp-соединение... -> появляется окно, в нем вводим адрес сервера в виде ip-адреса или url (если хотите установить анонимное соединение с сервером) или в виде login@адрес_сервера (если хотите войти на на сервер под своим логином). После чего жмете Enter, появляется еще одно окошко, в нем вводите пароль, готово.
Дальше разберем gFTP. Однако он самый простой из графических FTP-клиентов. Простенькое оформление, нетребовательность к ресурсам, свободность. Поддерживает SSL. Снизу расположилась консоль, в которой отображаются все события, а сверху панелька для ввода данных.
И третий клиент - Filezilla. Особых отличий у него нет, разве что консоль сверху, а не снизу. Особенно порадовало наличие дерева каталогов. Да и кнопочек с различными функциями у него побольше, например, синхронизированный просмотр, или рекурсивный поиск файлов, а также сравнение каталогов и другие. Может закачивать файлы более двух гигабайт.
P.S. В данной подборке только свободные и бесплатные FTP-клиенты. Есть, конечно, и другие не менее привлекательные клиенты для подключения по протоколу FTP, но о них в следующих статьях. Не забываем голосовать за статью.
Программа ftp доступна на большинстве систем (даже Win32 идет с ftp программой).
Существует большое количество других консольных ftp клиентов. Список, приведенный здесь, далеко не полный, но включает наиболее популярные из них. Ищите их на FreshMeat , чтобы найти больше.
NcFTP
NcFTP - общеизвестный ftp клиент для пользователей Unix. Он поставляется с большинством дистрибутивов Linux, и обладает расширенными функциями, такими, как автозавершение по tab и создание закладок. Версия 2 программы NcFTP имела проблемы при работе в полноэкранном режиме. Это исправлено в версии 3 (сейчас в бета).
Он не на все 100% совместим по стандартным ftp командам. Например, get и put в NcFTP подобны mget и mput в стандартном ftp. Так, если вы хотите сохранить удаленный файл под другим именем на локальном диске, вы должны ввести get -z remotename localname . NcFTP имеет отличную помощь, которая поможет изучить вам команды.
Последняя версия NcFTP доступна по адресу http://www.ncftp.com .
lukemftp
lukemftp имеет расширенные возможностеи, которые включают: редактирование командной строки, выбор в командной строке FTP и HTTP адреса, контекстно-зависимое завершение строки, линейку продвижения процесса, поддержка IPv6, изменение времени сохранения, страничный просмотр локальных и удаленных файлов, поддержка пассивного режима (с перходом в активный режим), поддержка SOCKS и регулировка скорости передачи.
Последняя версия lukemftp находится по адресу ftp://ftp.netbsd.org/pub/NetBSD/misc/lukemftp/ .
lftp
lftp-клиент является расширенной командной строкой, основанной на FTP клиенте. Подобно bash , он имеет управление заданиями. Использует библиотеку readline GNU для ввода. Вы имеете возможность редактирования в командной строке и автозавершение ввода. lftp также имеет поддержку закладок, использование зеркал сайтов, и передачу нескольких файлов одновременно.
Вы можете получить последнюю версию lftp по адресу http://ftp.yars.free.net/projects/lftp/ .
cftp
Удобный FTP клиент, работающий в полноэкранном режиме. Возможностей у него не очень много, но это восполняется легкостью в работе. Просмотр каталогов осуществляется при помощи клавиш управления курсором и Enter.
Вы можете получить последнюю версию cftp по адресу http://ftp.giga.or.at/pub/nih/cftp/ .
yafc
Yafc очень приятный в использовании ftp клиент, с возможностями, включающими кеширование каталогов, автозавершение при вводе удаленного имени файла, элиасы (aliases), раскраску файлов, рекурсивное исполнение get/put/ls/rm, организацию очереди, множественные соединения, поддержку proxy и другие.
FTP (File Transfer Protocol) – протокол передачи файлов. Протокол FTP позволяет передавать и скачивать файлы с сервера. На сегодняшний день данный протокол не является особо популярным, так как он не поддерживает шифрование данных. Вместо FTP используют протокол SFTP (передача данных по SSH), а также протокол SCP . В этой статье рассмотрена настройка обычного FTP-сервера на базе Ubuntu.
Протокол FTP работает в режиме клиент-сервер. Сервер постоянно слушает запросы от удаленных клиентов на 21 порту. При получении запроса он управляет входом и устанавливает соединение. На протяжении сессии сервер выполняет любые команды, переданные клиентом FTP. В качестве протокола транспортного уровня используется TCP. Для передачи данных FTP использует два типа соединения:
- Управляющее соединение (порт 21)
- Соединение данных (в активном режиме порт 20, в пассивном любой порт больше 1024)
Разделение на управляющее соединение и соединение для передачи данных является эффективным. Это позволяет передавать команды и файлы независимо друг от друга.
FTP поддерживает два типа аутентификации:
- Анонимный (логин ftp или anonymous, пароль – электронная почта)
- Авторизованный (логин и пароль у каждого пользователя свой)
При работе по протоколу FTP между клиентом и сервером может быть установлено два режима: активный и пассивный. Управляющее соединение одинаково для Активного и Пассивного режима. Клиент инициирует TCP-соединение с динамического порта (1024 – 65535) к порту номер 21 на FTP-сервере, после чего происходит аутентификация. Дальнейшие действия зависят от того какой режим выбран.
В активном режиме, после аутентификации, клиент сообщает серверу также номер своего порта (из динамического диапазона 1024 – 65535) для того, чтобы сервер мог подключиться к клиенту для установки соединения передачи данных. FTP-сервер подключается к заданному номеру порта клиента используя со своей стороны номер TCP-порта 20 для передачи данных.
В пассивном режиме, после аутентификации, сервер сообщает клиенту номер TCP-порта (из динамического диапазона 1024 – 65535), к которому можно подключиться для установки соединения передачи данных.
Таким образом, в активном режиме инициатором соединения является сервер, так как он подключается к клиенту. В пассивном режиме инициатор соединения – клиент.
Активный режим “вреден” для клиента в том плане, что когда к нему по случайному порту подключается сервер, такое соединение будет скорее всего блокировано брандмауэром на стороне клиента. Таким образом, необходимо открывать порты на стороне клиента, что приводит к “дырам” в безопасности. С другой стороны, для сервера такой режим будет полезен, так как для передачи данных используется общеизвестный порт 20.
Пассивный режим “вреден” в свою очередь для сервера, но “выгоден” для клиента. Клиент будет делать оба соединения к серверу, но одно из них будет к случайному высокому порту, такое соединение будет блокировать брандмауэром на стороне сервера.
Пассивный режим используется, как правило, когда между клиентом и сервером находится межсетевой экран.
Наиболее популярные команды FTP:
Команда | Описание |
USER | Указать имя пользователя |
PASS | Указать пароль |
LIST | Просмотр содержимого каталога |
CWD | Смена текущего каталога |
RETR | Передать файл с сервера на клиент |
STOP | Передать файл с клиента на сервер |
TYPE | Установить режим передачи |
DELE | Удалить файл |
MDK | Создать каталог |
RMD | Удалить каталог |
PASV | Использовать пассивный режим |
QUIT | Выход и разрыв соединения |
FTP имеет три режима передачи:
- Поточный – непрерывная передача данных в виде потока (без обработки, обработка выполняется TCP)
- Блочный – FTP делит данные на блоки (заголовок, поле данных, размер файла в байтах) и передает их TCP
- Режим сжатия единым алгоритмом
FTP-сервер – “библиотека” файлов на хостинге, используется для хранения файлов разных форматов. Самые популярные ftp-сервера это vsftpd и proftpd. FTP-сервера нужны для того, чтобы размещать на них для публичного и приватного скачивания больших объемов данных. Часто сервера используются для анонимного (гостевого) доступа к размещенным в открытом виде дистрибутивов ПО, музыки и фото. Доступ для анонимов позволяет, как правило, только просматривать каталоги и скачивать необходимую информацию, но на некоторых серверах наоборот – есть спецкаталоги, куда любой пользователь может загрузить файл для совместного пользования.
При неанонимном доступе возможностей больше, но они ограничены тем каталогом, куда предоставлен доступ.
Перейдем к настройке сервера. Работать будем с такой схемой.
Доступ к FTP-серверу будут иметь как администратор, так и пользователь. Администратор и пользователь имеют авторизованный доступ. При этом необходимо настроить права доступа таким образом, чтобы администратор имел неограниченный доступ, а пользователь имел доступ только к своей домашней директории. Также необходимо настроить анонимный доступ.
В Ubuntu для DHCP сервера доступен демон vsftpd. Устанавливаем DHCP-сервер, это выполняется командой:
testServer$ sudo apt-get install vsftpd
По умолчанию, анонимная загрузка запрещена. Необходимо изменить конфигурацию в файле /etc/vsftpd.conf.
testServer$ sudo nano /etc/vsftpd.conf
Находим там строку “anonymous_enable” и присваиваем ей значение “Yes”. Данная строка отвечает за доступ к FTP-серверу для анонимных пользователей.
Также необходимо раскоментировать две строки: “write_enable” и “chroot_local_user”. Первая строка отвечает за возможность записи на сервер, вторая строка блокирует возможность локальных пользователей подниматься на каталог выше, чем их домашняя папка.
В конце файла конфигурации добавляем две настройки:
Данные настройки устанавливают домашние папки для анонимных и локальных пользователей.
Сохраняем конфигурацию файла сочетанием клавиш Ctrl + X (при предложении заменить текущий файл выбираем Yes). Далее необходимо перезагрузить сервер FTP командой
testServer$ sudo service vsftpd restart
Следующий этап – это создание пользователей.
Создаем суперпользователя командой:
testServer$ sudo adduser superuser
Задаем ему пароль:
testServer$ sudo passwd superuser
Даем ему неограниченные права:
testServer$ sudo adduser superuser sudo
Создаем обычного пользователя:
testServer$ sudo adduser user
Задаем ему пароль:
testServer$ sudo passwd user
Enter new UNIX password: 12345
Создаем группу пользователей для управления папками:
testServer$ sudo addgroup groupl
testServer$ sudo nano /etc/group
Находим строчку “groupl” с помощью Ctrl + W.
В эту строчку добавляем наших пользователей superuser и user.
Создаем папки для пользователей:
testServer$ sudo mkdir /srv/ftp/upload
testServer$ sudo mkdir /srv/ftp/superuser
testServer$ sudo mkdir /srv/ftp/user
Задаем права доступа для папок:
testServer$ sudo chmod 700 /srv/ftp/superuser
testServer$ sudo chmod 770 /srv/ftp/user
testServer$ sudo chmod 575 /srv/ftp/upload
Меняем владельцов папок:
testServer$ sudo chown superuser: /srv/ftp/superuser
testServer$ sudo chown user:groupl /srv/ftp/user
testServer$ sudo chown:groupl /srv/ftp/upload
Таким образом, у нас получается следующая картина:
- К папке superuser имеет доступ только пользователь superuser, он же является владельцем этой папки
- К папке user имеет доступ как user, так и superuser. Это из-за того, что мы выставили права 77 0. Вторая семерка устанавливает полные права для группы пользователей groupl, в которую мы добавили superuser.
- К папке upload полный доступ имеют как user, так и superuser. Для всех остальных установлены только права на чтение и выполнение 5 75 . 5 = 101 (в двоичной системе). 101 ~ r-x. То есть остальные пользователи (а к ним относится анонимный) не могут ничего записывать в папке upload.
Проверяем права доступа и владельцев командой:
testServer$ ls -l /srv/ftp
Для того, чтобы проверить доступ к FTP-серверу, необходимо в любом браузере в адресной строке набрать:
ftp://172.16.1.2
В данном случае мы попадаем как анонимный пользователь, так как не вводим имя и пароль.
Видим три папки superuser/, upload/, user/. Так как мы зашли под анонимным пользователем доступ есть только к папке upload/.
Для того, чтобы войти под именем суперпользователя вводим:
ftp://[email protected]
Вводим имя пользователя: superuser , пароль: 12345 . Под superuser’ом мы получаем доступ ко всем папкам.
Проверим напоследок обычного пользователя. Чтобы не вводить имя и пароль каждый раз при входе, можно в адресной строке написать следующее:
ftp://user:[email protected]
Под user’ом мы можем попадать только в папки upload/ и user/ . К папке superuser/ доступ закрыт.
Подписывайтесь на нашу
    FileZilla - один из лучших бесплатных FTP-менеджеров с открытым исходным кодом (open source), обладающий впечатляющими возможностями:
Кроссплатформенность. Работает на Windows, Linux, *BSD, Mac OS X и других ОС
Поддержка множества прикладных протоколов передачи данных - FTP, FTP поверх SSL/TLS (FTPS) и SSH File Transfer Protocol (SFTP), HTTP, SOCKS и FTP-Proxy
Поддержка протокола IPv6
Поддержка drag & drop
Мультиязычность
Имеется удобный мастер настройки сетевого подключения
Возможность настройки скорости передачи
Возобновление передачи файлов при обрыве соединения (докачка), а также поддержка больших файлов.
Поддержка очереди закачек.
Удаленный поиск и редактирование файлов.
Удобный менеджер сайтов.
и много других возможностей, которыми не обладают даже платные аналоги.
Программа обладает удобным и приятным интерфейсом, в ней присутствует множество поддерживаемых языков, и кроме того, существует переносимая (portable) версия, которую можно установить на флэш-диск и пользоваться ей на других компьютерах без установки.
После установки, Filezilla FTP клиент готов к работе без необходимости изменения каких-либо настроек. Для подключения к FTP - серверу достаточно ввести его адрес или имя, учетные данные и, при необходимости, номер порта. В программе используются всплывающие окна с подсказками при наведении курсора на поле, в которое выполняется ввод данных:
Окно программы разделено на несколько частей - журнал состояния сеанса в верхней части, слева окно ”Локальный сайт”, где отображаются файлы и каталоги локального компьютера, окно ”Удаленный сайт”, где отображается файловая структура удаленного сервера, и в нижней части, окно, где отображается ход выполнения текущей передачи файлов.
Контекстное меню, вызываемое правой кнопкой мышки на файлах и каталогах в окне ”Локальный сайт” позволяет выполнять определенные действия по отношению к объектам локального компьютера:
Пункты меню позволяют выполнять перемещения по структуре каталогов, удалять и переименовывать файлы и папки и либо сразу передавать данные на сервер, при выборе пункта ”Закачать на сервер”, либо добавить выбранный объект в задание для закачки, которое можно будет выполнить позже.
Аналогичное контекстное меню используется и по отношению к файлам и папкам в окне ”Удаленный сайт”
Также, как и для локальной файловой системы, контекстное меню позволяет либо сразу передать выбранный объект на локальный компьютер при выборе пункта ”Скачать”, либо добавить его в задание, которое можно будет выполнить позже. Можно, например выбрать несколько файлов и папок в разных каталогах сервера, добавив их в задание и затем нажать комбинацию клавиш Ctrl+P или выбрать пункт меню ”Передача - Выполнить задание”. Для отмены выполняющегося задания используется повторное нажатие CTRL+P . Прерванное задание можно продолжить.
Задания на прием и передачу данных сохраняются, даже если прервать сеанс связи с сервером или перезапустить программу. Для управления заданиями используется свое контекстное меню:
Имеется возможность выполнить отмеченное задание, отменить все задания, установить приоритеты и поведение при необходимости перезаписи существующих файлов и каталогов.
Filezilla устанавливается с настройками, которые являются оптимальными для наиболее распространенных случаев обмена файлами между локальным компьютером и серверами в локальной сети или в Интернет, однако, при необходимости настройки можно изменить, через меню ”Редактирование - Настройки”
При плохом качестве канала связи, можно, например увеличить количество попыток соединения с сервером и время ожидания между попытками. Однако, подавляющая часть настроек уже выполнена таким образом, чтобы обеспечивать работу типовой конфигурации FTP-клиента, и их изменение без достаточной квалификации, могут лишь ухудшить работоспособность программы и удобство ее использования.