FTP mini-HOWTO

Аннотация

Как использовать ftp клиенты и серверы


Содержание
Преамбула
Об FTP
Руководство начинающего по пользованию ftp
Консольные FTP клиенты
Клиенты для X Window
Серверы FTP

Преамбула

Этот документ был написан Matthew Borowski для Linux Documentation Project. Но он пока не закончен, т.к. еще не сделаны некоторые добавления. Вскоре должен появится раздел с информацией относительно работы сервера FTP.


Связь со мной

Пожалуйста, свяжитесь со мной, если у вас есть добавления или изменения к этому документу. Пожалуйста, не просите у нас технической поддержки -- вы можете получить консультацию и поддержку по Unix через мою компанию, WorldServe, или просите помощи в группах новостей, таких как comp.os.linux.*. Имейте в виду, что я владею английским и фарси.


Legalities and Distribution

This document is Copyright 1999 by Matthew Borowski. You may freely distribute this document as long as the copyright notice remains unaltered. If you distribute this HOWTO as part of a commercial product, I would like to recieve a copy, but this is not required. If you wish to distribute a modified or translated version of this document, please contact me first for permission.


Авторские права

Авторские права на русский перевод этого текста принадлежат ╘ 2000 ASPLinux Все права зарезервированы.

Этот документ является частью проекта Linux HOWTO.

Авторские права на документы Linux HOWTO принадлежат их авторам, если явно не указано иное. Документы Linux HOWTO, а также их переводы, могут быть воспроизведены и распространены полностью или частично на любом носителе физическом или электронном, при условии сохранения этой заметки об авторских правах на всех копиях. Коммерческое распространение разрешается и поощряется; но так или иначе автор текста и автор перевода желали бы знать о таких дистрибутивах.

Все переводы и производные работы, выполненные по документам Linux HOWTO должны сопровождаться этой заметкой об авторских правах. Это делается в целях предотвращения случаев наложения дополнительных ограничений на распространение документов HOWTO. Исключения могут составить случаи получения специального разрешения у координатора Linux HOWTO с которым можно связаться по адресу приведенному ниже.

Мы бы хотели распространить эту информацию по всем возможным каналам. Но при этом сохранить авторские права и быть уведомленными о всех планах распространения HOWTO. Если у вас возникли вопросы, пожалуйста, обратитесь к координатору проекта Linux HOWTO по электронной почте: , или к координатору русского перевода Linux HOWTO компании ASPLinux по адресу


История этого документа

  • 991203: FTP HOWTO первыя редакция. Работа продолжается.


Об FTP

FTP (File Transfer Protocol - Протокол передачи файлов) - клиент-серверный протокол, протокол, который позволяет пользователю передавать и получать файлы с удаленного сайта. Он работает с TCP, и обычно используется в сети Internet, хотя может использоваться и в локальной сети.

FTP сайт - компьютер, на котором запущена программа FTP сервера (FTP демон или ftpd). Общедоступные FTP сайты обычно доступны любому, зашедшему под именем anonymous или ftp. Имеется много отличных FTP сайтов, на которых есть архивы свободно распространяемого программного обеспечения для Unix. Узнав, как использовать FTP, вы откроете себе доступ к огромным ресурсам.

Частные FTP сайты требуют имя пользователя и пароль. Если вы имеете учетную запись у вашего провайдера, вы можете обращаться к вашим файлам через FTP (свяжитесь с вашим системным администратором, чтобы проверить это).

FTP клиент - пользовательское приложение, которое обеспечивает доступ к FTP серверам. Существует множество FTP клиентов. Одни из них работают в графическом режиме, другие в текстовом.

FTP был впервые разработан в калифорнийском университете для включения в 4.2BSD (Berkeley Unix). RFC находится по адресу ftp://nic.merit.edu/documents/rfc/rfc0959.txt..


Руководство начинающего по пользованию ftp

Быстрое руководство к использованию ftp.

Стандартная ftp программа - настоящий ftp клиент. Она входит в большинство дистрибутивов Linux. Сначало появилась в 4.2BSD.


Запуск ftp программы

Скажем, вы хотите соединится с FTP сайтом metalab.unc.edu, чтобы получить последние исходные тексты ядра Linux.

В командной строке введите:

$ ftp metalab.unc.edu

FTP программа попытается соединится с metalab.unc.edu. Другой способ сделать это - запустить ftp из командной строки без параметров, и использовать команду open с именем сайта в качестве аргумента:

$ ftp
ftp> open metalab.unc.edu


Регистрация на FTP сервере

Когда вы соединитесь с FTP сайтом, система спросит ваш логин (нажмите Enter, и вы войдете под локальным именем, в данном случае под именем foo). Мы войдем как anonymous или ftp, чтобы получить доступ к общедоступному архиву.

220 helios.oit.unc.edu FTP server (Version wu-2.6.0(2) Wed Nov 17 14:44:12
EST 1999) ready.
Name (metalab.unc.edu:foo):

Далее, мы введем наш адрес электронной почты в качестве пароля (этого требуют большинство FTP сайтов).

331 Guest login ok, send your complete e-mail address as password.
Password:

После успешного входа, вам выдается следующая информация:

Remote system type is UNIX.            (Удаленная система - UNIX)
Using binary mode to transfer files.   (Используется двоичный режим для передачи файлов)
ftp>


Режимы передачи файлов

После входа на FTP сайт, ftp выдаст тип передачи файлов. В данном случае - двоичный (бинарный) тип передачи. Двоичный режим передачи файлов - передача файлов в том виде, в котором они хранятся на FTP сервере. Режим Ascii (текстовый) используется для передачи только тектовых файлов. Вы можете вводить ascii или binary для переключения между режимами передачи.

Поскольку вы хотите получить исходные тексты ядра, оставьте двоичный режим передачи. Бинарный режим необходимо использовать для всех нетекстовых типов файлов - таких как графика, архивы, программы и т.п. Если сомневаетесь - используйте бинарный режим.


Навигация и просмотр каталогов

Введите команду ls, чтобы просмотреть список файлов. Команда ls выполняется на FTP сервере. Опции этой команды, которые вы можете использовать, отличаются на разных серверах. Большинство основных опций, в общем, везде доступны, смотрите страницы руководства (manpage) по ls для уточнения подробностей.


ftp> ls
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
total 33590
-r--r--r--   1 root     other    34348506 Dec 03 03:53 IAFA-LISTINGS
lrwxrwxrwx   1 root     other           7 Jul 15  1997 README -> WELCOME
-rw-r--r--   1 root     other         890 Nov 15 13:11 WELCOME
dr-xr-xr-x   2 root     other         512 Jul 15  1997 bin
dr-xr-xr-x   2 root     other         512 Jul 15  1997 dev
dr-xr-xr-x   2 root     other         512 Jul 18  1997 etc
drwxrwxrwx  11 ftp      20           4608 Nov 28 16:00 incoming
lrwxrwxrwx   1 root     other          13 Jun 04  1998 ls-lR -> IAFA-LISTINGS
dr-xr-xr-x  17 root     root          512 Jun 08 11:43 pub
dr-xr-xr-x   3 root     other         512 Jul 15  1997 unc
dr-xr-xr-x   5 root     other         512 Jul 15  1997 usr
226 Transfer complete.

Если по команде ls выдается большой список файлов, вы можете использовать клавиши Shift-PageUp для прокрутки к началу списка. Это работает в консоли Linux, а также в xterm или rxvt.

На общедоступных FTP архивах, ресурсы обычно хранятся в каталоге /pub. На этом примере вы уже поняли, что исходники ядра находятся в каталоге /pub/Linux/kernel, так что введите следующее, чтобы войти в каталог:

ftp> cd pub/Linux/kernel
250-README for kernel
250-
250-What you'll find here: kernel sources and patches
250-
250-
250 CWD command successful.

Вы видите сообщения, которые начинаются с "250", эти сообщения посылаются сервером. В данном случае, FTP сервер сконфигурирован, чтобы автоматически посылать вам файл README, когда вы входите в каталог.


Загрузка и закачивание файлов

Введите ls, и найдите файл, который хотите загрузить с FTP. Это linux-2.2.13.tar.gz. Введите следующую команду:

ftp> get linux-2.2.13.tar.gz
local: linux-2.2.13.tar.gz remote: linux-2.2.13.tar.gz
200 PORT command successful.
150 Opening BINARY mode data connection for linux-2.2.13.tar.gz (15079540
bytes).

FTP программа начнет сохранять удаленный файл linux-2.2.13.tar.gz на локальный диск под именем linux-2.2.13.tar.gz

Если вы хотите сохранить файл под именем foo.tar.gz, вы должны ввести следующее:


ftp> get linux-2.2.13.tar.gz foo.tar.gz
local: foo.tar.gz remote: linux-2.2.13.tar.gz
200 PORT command successful.
150 Opening BINARY mode data connection for linux-2.2.13.tar.gz (15079540
bytes).

Если вы хотите загрузить более одного файла за раз, используйте команду mget (multiple get). Вы можете использовать mget вместе со списком файлов, предназначенных для загрузки, разделенных запятыми, или использовать подстановочные знаки с командой mget. Например, команда:

ftp> mget linux*

Получает все файлы, начинающиеся со строки "linux". Обычно, mget запрашивает вас относительно каждого файла перед тем, как загрузить его. Вы можете выключить это, используя команду prompt.

Допустим, вы написали программу и хотите закачать ее на сервер MetaLab. Сначала перейдите в каталог /incoming (большинство FTP серверов имеют этот каталог, обычно он называется incoming или uploads, туда можно поместить файлы), затем используйте команду put:

ftp> cd /incoming
ftp> put foo.tar.gz
local: foo.tar.gz remote: foo.tar.gz
200 PORT command successful.
150 Opening BINARY mode data connection for foo.tar.gz.
226 Transfer complete.
10257 bytes sent in 0.00316 secs (3.2e+03 Kbytes/sec)

Вы можете использовать put, чтобы поместить на сервер несколько файлов одновременно. Есть возможность размещать локальные файлы на сервер под другими именами.

Что если файл foo.tar.gz не в текущей локальной директории? Переключите локальную директорию, используя команду lcd (local change directory):

ftp> lcd /home/foo/
Local directory now /home/foo


Запуск команд среды

FTP клиент поддерживает использование знака (!), чтобы исполнять локальные команды. Например, вывести список файлов текущей локальной директории:

ftp> !ls

Так вы можете запускать любые команды, работающие в вашей системе. Пожалуйста, помните, что !cd не работает, поэтому существует команда lcd.


Метки hash и tick

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

ftp> hash
Hash mark printing on (1024 bytes/hash mark).

Программа ftp будет печатать знак диеза для каждых полученных 1024 байт данных.

Имеется опция tick. (но не во всех ftp программах)

ftp> tick
Tick counter printing on (10240 bytes/tick increment).

This will print something to this effect as you download a file:

Bytes transferred: 11680


Другие команды ftp

Существуют и другие команды ftp. Если у вас есть права, вы можете создавать каталоги на удаленном сервере, используя команду mkdir. Вы можете удалять файлы на сервере, используя команду delete, или rmdir, для удаления каталогов. Также, вы можете изменять права доступа к файлам, используя команду chmod.

Для получения большего количества информации, смотрите помощь в ftp программе (введите help (без параметров) для вывода списка всех команд или help <имя_команды> для помощи по конкретной команде). Прочитайте страницы руководства (введите man 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 клиента, но при этом жаждущим получить широкие возможности.

Последняя версия lukemftp находится по адресу ftp://ftp.netbsd.org/pub/NetBSD/misc/lukemftp/.


lftp

lftp-клиент является расширенной командной строкой, основанной на FTP клиенте. Подобно bash, он имеет управление заданиями. Использует библиотеку readline GNU для ввода. Вы имеете возможность редактирования в командной строке и автозавершение ввода. lftp также имеет поддержку закладок, использование зеркал сайтов, и передачу нескольких файлов одновременно.

Вы можете получить последнюю версию lftp по адресу http://ftp.yars.free.net/projects/lftp/.

Debian пакет доступен здесь ftp://ftp.freshmeat.net/pub/debs/lftp/.


cftp

Удобный FTP клиент, работающий в полноэкранном режиме. Возможностей у него не очень много, но это восполняется легкостью в работе. Просмотр каталогов осуществляется при помощи клавиш управления курсором и Enter.

Вы можете получить последнюю версию cftp по адресу http://ftp.giga.or.at/pub/nih/cftp/.


yafc

Yafc очень приятный в использовании ftp клиент, с возможностями, включающими кеширование каталогов, автозавершение при вводе удаленного имени файла, элиасы (aliases), раскраску файлов, рекурсивное исполнение get/put/ls/rm, организацию очереди, множественные соединения, поддержку proxy и другие.

Последнюю версию yafc вы можете получить с http://www.stacken.kth.se/~mhe/yafc/.

Debian пакет доступен по адресу http://members.home.com/decklin/experimental/. http://members.home.com/decklin/experimental/.

Redhat пакет можно получить по адресу http://lz.freeservers.com/linux/yafc.html.


Клиенты для X Window

Имеется несколько графических FTP клиентов, разработанных для работы в X Window. Эти клиенты просты в работе для пользователей, использующих графическую среду, и предлагают некоторые возможности, которые было бы трудно использовать в тектовых ftp клиентах.


gFTP

gFTP - FTP клиент для X Windows, написанный с использованием Gtk. Интерфейс, подобен популярному программному продукту WS_FTP.

gFTP показывает одновременные закачки, продолжает прерванные закачки, организует очередь, имеет возможность загружать полные каталоги, поддерживает proxy, имеет кеширование удаленных каталогов, пассивный и активный режим, поддержка drag-n-drop, диспетчер подключения и многое другое.

Если у вас установлен Red Hat Linux и графическая оболочка GNOME, тогда у вас, вероятно, уже есть gFTP. Если нет, вы можете найти gFTP на домашней страничкеhttp://gftp.seul.org/.


WXftp

WXftp - FTP клиент, разработанный для X Windows, чтобы использоваться, главным образом, на рабочей станции Linux. Написан с использованием WXWindows toolkit и может быть откомпилирован с использованием Motif или GTK+.

WXftp включает интуитивно понятный пользовательский интерфейс (подобный WS_FTP), диспетчер сеансов, помощь, линейку процесса закачки, и многое другое.

WXftp можно найти на домашней страничке http://www.wxftp.seul.org.


LLNL XDIR и XFTP

LLNL XFTP был одним из первых графических FTP клиентов для Linux. Он поддерживает FXP (передачу файлов между двумя удаленными сайтами) и имеет Motif интерфейс.

Подробная информация доступна на http://www.llnl.gov/ia/xdir_xftp/.


guiftp

Guiftp - простой ftp клиент, написаный с помощью GTK+. Используйте его, если у вас нет необходимости использовать особые возможности, и вы хотите получить простой клиент.

Домашняя страничка Guiftp http://www.altern.org/ldufresne/guiftp/.


Серверы FTP

Как работает FTP сервер

Традиционный FTP сервер (ftpd) запускается через inetd (internet superserver daemon). Стандартный FTP порт - 21. Когда пользователь пытается войти, FTP сервер использует стандартный системный вызов для проверки имени и пароля пользователя, используя файл паролей или таблицу NIS, если вы ее используете. Если вход успешный, то пользователь получает доступ к системе.

Анонимный FTP работает по-другому. Пользователь входит под именем anonymous или the ftp (это может быть определено в файле конфигурации). Он получает доступ к публичным каталогам и не может получить доступ к каталогам, к которым ему запрещен доступ (напр. bin/, etc/, и lib/). Файлы для загрузки обычно содержатся в каталоге pub/.

FTP демон запускает внутренние команды для запроса ls. Вы можете помещать дополнительные программы в каталог bin, и пользователь сможет запускать их в своем ftp клиенте. Например, FTP из Red Hat включает команду RPM (пользователь сможет работать с пакетами RPM на сайте).

Некоторые серверы FTP работают по-другому. Например, позволяют установить учетные записи для пользователей, независимо от системного файла паролей (только учетные записи для FTP). Некоторые серверы (напр. ProFTPD и NcFTPd) имеют встроенную команду ls и не нуждаются в специальном дереве каталогов. Другие серверы ftp не следуют стандартным правилам ftp. FTP4ALL, например, не использует системный файл паролей. Использует свой файл пользователей и групп, и имеет особенности типа коэффицент закачка/загрузка и настраиваемые сообщения сервера.


Помощь по FTP серверам

WU-FTPD

WU-FTPD - ftp демон включен во многие дистрибутивы Linux, в том числе в Red Hat и Caldera. Вы можете больше узнать о WU-FTPD здесь http://www.wu-ftpd.org.


ProFTPD

ProFTPD мощный FTP сервер с конфигурацией в стиле Apache, он поддерживает виртуальные хосты, и внутренний ls.

Полный справочник по командам и файлы дистрибутива можно найти по адресу A complete command reference and downloads can be found at http://www.proftpd.org