File Transfer Protocol — протокол передачи файлов

Особенности работы протокола FTP

File Transfer Protocol  - протокол передачи файлов

Протокол FTP применяется давно и на первый взгляд предельно прост. Однако эта простота кажущаяся и многие начинают испытывать проблемы с установлением FTP-соединения, особенно когда сервер или клиент находятся за брандмауэром или NAT'ом. Поэтому сегодня мы поговорим об особенностях работы протокола FTP в различных режимах.

Протокол FTP является старейшим сетевым протоколом (создан в 1971 году), но, тем не менее, широко используется по сей день.

Важной особенностью протокола является то, что он использует несколько соединений: одно для управляющих команд, остальные для данных.

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

В зависимости от способа установления соединения для передачи данных различают активный и пассивный режимы работы FTP. В активном режиме сервер сам устанавливает соединение передачи данных к клиенту, в пассивном наоборот. Рассмотрим эти режимы более подробно.

Активный режим

В активном режиме клиент устанавливает управляющее соединение на порт 21 сервера и передает специальную команду PORT, в которой указывает свой адрес и порт для передачи данных. Получив данную команду, сервер устанавливает соединение с 20 порта на указанный в команде порт клиента.

Внимательный читатель сразу заметит недостаток данного метода: для работы в активном режиме клиенту требуется выделенный IP-адрес. Также определенные сложности будут возникать при нахождении клиента за брандмауэром или NAT'ом.

Пассивный режим

Для установления соединения в пассивном режиме клиент передает серверу команду PASV. В ответ сервер передает адрес и порт, на который следует устанавливать соединение для передачи данных. Получив эту информацию, клиент устанавливает подключение к серверу и начинает передачу данных.

Как видим, в пассивном режиме все соединения инициирует клиент и поэтому к нему нет никаких требований, он может находиться за NAT и брандмауэром, а также не иметь выделенного IP-адреса. Поэтому на сегодняшний день основным режимом работы FTP является пассивный.

Проблема брандмауэра

В активном режиме основная проблема возникает у клиента. Если брандмауэр настроен отбрасывать не инициированные изнутри входящие соединения, то сервер не сможет установить соединение для передачи данных.

А так как порт для данных является динамическим, то возникают определенные сложности с настройкой брандмауэра.

Наиболее правильным будет указать в клиенте диапазон используемых портов и создать для них разрешающее правило брандмауэра.

В пассивном режиме с такой проблемой может столкнуться сервер. Решение аналогичное: указываем в настройках сервера используемый диапазон портов и создаем для него разрешающее правило.

Проблема NAT

На первый взгляд может показаться, что для нормальной работы FTP-сервера через NAT требуется только правильно настроить форвардинг портов. Однако это не так.

Если вы внимательно читали про работу протокола в начале статьи, то должны были запомнить, что в зависимости от режима сервер или клиент передают адрес и порт для соединения.

А теперь задумаемся, какой адрес передаст сервер, находящийся за NAT? Правильно, внутренний и, несмотря на правильный проброс портов, клиент не сможет подключиться к такому серверу.

К счастью, большинство современных реализаций NAT умеют отслеживать управляющий канал FTP-соединения и заменяют внутренний адрес сервера адресом внешнего интерфейса. Однако, несмотря на это большинство FTP-серверов имеют опцию, позволяющую указать адрес внешнего интерфейса, который следует указывать в командах управляющей сессии.

В большинстве случаев для нормальной работы FTP-сервера за NAT достаточно будет пробросить 21 порт для управляющей сессии, 20 — для активного режима (если используется), а также указать и пробросить диапазон динамических портов для передачи данных.

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

Почему? Потому что номер порта передается сервером в управляющей команде и ничего не знает о форвардинге, если номер порта, переданный сервером, не совпадет с номером порта на внешнем интерфейсе, то клиент не сможет установить соединение.

В то время как управляющий порт и порт активного режима можно форвардить на любые внешние порты.

Надеемся, что данная статья поможет вам лучше понять механизм работы протокола FTP и осознанно подойти к процессу настройки и диагностики.

Источник: https://interface31.ru/tech_it/2013/10/osobennosti-raboty-protokola-ftp.html

Что такое FTP и зачем оно нужно

File Transfer Protocol  - протокол передачи файлов

Это очень надёж­но, но очень небез­опас­но.

Когда интер­нет толь­ко зарож­дал­ся, но уже были ком­пью­тер­ные сети, воз­ник­ла потреб­ность пере­да­вать фай­лы от одно­го ком­пью­те­ра к дру­го­му. В 1971 году кана­лы пере­да­чи дан­ных были не такие надёж­ные (и не такие быст­рые), как сей­час, поэто­му нужен был инстру­мент, кото­рый помо­жет обме­ни­вать­ся доку­мен­та­ми друг с дру­гом на рас­сто­я­нии.

Основ­ные тре­бо­ва­ния были такие: про­сто­та рабо­ты и надёж­ность при отправ­ке и полу­че­нии. Таким инстру­мен­том стал FTP-протокол.

Принцип работы

FTP рас­шиф­ро­вы­ва­ет­ся как File Transfer Protocol — про­то­кол пере­да­чи фай­лов.

Он отли­ча­ет­ся от дру­гих про­то­ко­лов тем, что если в про­цес­се пере­да­чи воз­ни­ка­ет какая-то ошиб­ка, то про­цесс оста­нав­ли­ва­ет­ся и выво­дит­ся сооб­ще­ние для поль­зо­ва­те­ля.

Если оши­бок не было, зна­чит, поль­зо­ва­тель полу­чил имен­но тот файл, кото­рый нужен, в цело­сти и без недо­ста­ю­щих эле­мен­тов.

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

В кор­по­ра­тив­ной сре­де FTP исполь­зу­ет­ся для орга­ни­за­ции локаль­но­го хра­ни­ли­ща внут­рен­них доку­мен­тов и фай­лов для рабо­ты. Напри­мер, там могут хра­нить­ся видео­лек­ции или архив­ные ска­ны доку­мен­тов. Ещё FTP поз­во­ля­ет загру­жать свои фай­лы на сер­вер, что­бы их мог ска­чать любой жела­ю­щий.

Про­грам­ми­сты ино­гда исполь­зу­ют такие сер­ве­ры для обме­на фай­ла­ми и для бэка­пов кода, хотя мно­гие для это­го пред­по­чи­та­ют GIT. Про него ещё пого­во­рим отдель­но.

Клиент и сервер

Для рабо­ты по FTP нуж­ны двое: FTP-сервер и FTP-клиент. Что дела­ет сер­вер:

  • обес­пе­чи­ва­ет доступ по логи­ну и паро­лю к нуж­ным фай­лам;
  • пока­зы­ва­ет поль­зо­ва­те­лю толь­ко те фай­лы и пап­ки, кото­рые он может про­смат­ри­вать или загру­жать в них;
  • сле­дит за каче­ством пере­да­чи и смот­рит, что­бы не было оши­бок;
  • управ­ля­ет пара­мет­ра­ми соеди­не­ния в пас­сив­ном режи­ме.

Так как FTP при­шёл к нам из вре­мён UNIX-систем, то любое соеди­не­ние тре­бу­ет логи­на и паро­ля. Если у поль­зо­ва­те­ля его нет, сер­вер его не про­пу­стит. Но что­бы сде­лать фай­лы доступ­ны­ми для всех, исполь­зу­ют ано­ним­ный режим.

В нём логи­ном будет сло­во anonymous, а паро­лем — любой адрес элек­трон­ной почты. Совре­мен­ные бра­у­зе­ры уме­ют сами захо­дить на ано­ним­ные FTP-серверы и под­став­лять почту.

Со сто­ро­ны это выгля­дит так, как буд­то ника­ко­го логи­на и паро­ля нет, но они есть.

Когда запус­ка­ет­ся FTP-сервер, ему гово­рят: «Ува­жа­е­мый сер­вер, вот спи­сок фай­лов и папок, кото­рые нуж­но пока­зы­вать на сер­ве­ре.

Если к тебе посту­чит­ся поль­зо­ва­тель с таким-то логи­ном и паро­лем, то пока­жи ему всё, а если с вот таким логи­ном — то дай ему одну толь­ко эту пап­ку. Ано­ни­мов не пус­кать».

Ещё один обя­за­тель­ный пара­метр — адрес сер­ве­ра и порт, по кото­ро­му будет идти пере­да­ча фай­лов.

Что­бы под­клю­чить­ся к сер­ве­ру, нуж­на спе­ци­аль­ная про­грам­ма, их ещё назы­ва­ют FTP-клиентами. Для каж­дой опе­ра­ци­он­ной систе­мы есть мно­го сво­их кли­ен­тов, напри­мер, FileZilla или CuteFTP. Те, кто рабо­та­ет в Linux-подобных систе­мах, часто исполь­зу­ют команд­ную стро­ку.

Интер­фейс CuteFTP для MacOS.Рабо­та с FTP в команд­ной стро­ке.

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

В чем смысл вообще

Ну и каза­лось бы — что меша­ет пере­да­вать фай­лы, как обыч­но, через сай­ты по про­то­ко­лу HTTP? Пол­но же сай­тов и фору­мов, на кото­рых лежат фай­лы, и их мож­но спо­кой­но ска­чать.

А раз­ни­ца вот в чем:

  • Для FTP не нужен сайт, то есть веб-интерфейс. Не нуж­но запус­кать веб-сервер, настра­и­вать шаб­ло­ны выво­да спис­ка фай­лов и под­ни­мать отдель­ную про­грам­му, кото­рая будет нам отда­вать эти фай­лы (типа Ворд­прес­са). FTP — это как доступ к уда­лен­ной пап­ке: ты сра­зу видишь фай­лы и можешь их качать, без посред­ни­ков. А в вебе нуж­на какая-то про­грам­ма, кото­рая «нари­су­ет» тебе фай­ло­вую систе­му и поста­вит ссыл­ки на фай­лы.
  • В FTP уже реа­ли­зо­ва­ны вопро­сы авто­ри­за­ции и прав. А в вебе их нуж­но созда­вать: напри­мер, ста­вить тот же Ворд­пресс и к нему при­кру­чи­вать пла­ги­ны с систе­мой досту­па. Или настра­и­вать Apache, гене­ри­ро­вать клю­чи досту­па, рас­кла­ды­вать кон­фи­гу­ра­ци­он­ные фай­лы по пап­кам — это гораз­до менее эле­гант­но, чем настрой­ка FTP.
  • В FTP мож­но раз­ре­шить или запре­тить отдель­ным поль­зо­ва­те­лям загру­жать фай­лы на FTP-сервер. В вебе загруз­ка фай­лов от поль­зо­ва­те­ля на сер­вер — это на поря­док более слож­ная зада­ча.

Уязвимости и надёжность

Сам по себе FTP-протокол надё­жен и гаран­ти­ро­ван­но достав­ля­ет поль­зо­ва­те­лю нуж­ные фай­лы, если с соеди­не­ни­ем всё в поряд­ке.

Про­бле­ма в том, что про­то­кол изна­чаль­но был неза­щи­щён­ный, и пред­по­ла­га­лось, что канал пере­да­чи дан­ных все­гда надё­жен. Поэто­му в FTP всё пере­да­ёт­ся в откры­том виде: фай­лы, паро­ли, име­на поль­зо­ва­те­лей и любые дан­ные.

Сей­час по умол­ча­нию пред­по­ла­га­ет­ся, что каж­дый канал — нена­дёж­ный, и что дан­ные нуж­но допол­ни­тель­но шиф­ро­вать. FTP это­го не под­дер­жи­ва­ет. Если кто-то будет пере­хва­ты­вать ваш Wi-Fi-трафик или под­клю­чит­ся к вашей локаль­ной сети, то он смо­жет пере­хва­тить все эти дан­ные и ска­чать их себе, парал­лель­но с вами.

Ещё есть вопрос без­опас­но­сти вхо­да: по умол­ча­нию у FTP-протокола нет защи­ты от под­бо­ра паро­ля и попы­ток вхо­да, поэто­му кто-то может про­сто пере­брать доступ­ные паро­ли, что­бы полу­чить доступ к пап­кам. Если вы виде­ли в филь­мах про хаке­ров, как они там пере­би­ра­ют паро­ли при вхо­де — это вполне веро­ят­ная ситу­а­ция для FTP.

  • С точ­ки зре­ния совре­мен­ной без­опас­но­сти пра­виль­ным реше­ни­ем будет исполь­зо­вать одну из реа­ли­за­ций шиф­ро­ван­но­го FTP (FTPS, SFTP) или поль­зо­вать­ся FTP через VPN.

Подписывайтесь на наш канал, чтобы разбираться в технологиях!

Источник: https://zen.yandex.ru/media/code/chto-takoe-ftp-i-zachem-ono-nujno-5d95f0b623bf4800b2830a3e

Как работает протокол FTP, разберем на примере

File Transfer Protocol  - протокол передачи файлов

FTP (File Transfer Protocol) — протокол передачи файлов. FTP придумали в 1971 году, еще до того, как появились протоколы TCP/IP. Сначала FTP работал поверх протокола NCP. Версия на основе TCP/IP появилась в 1980 году. А в 1985 году была принята спецификация FTP, которой пользуются до сих пор, позже в неё были добавлены полезные расширения, такие как, пассивный режим и поддержка IPv6.

Место протокола FTP в стеке TCP/IP

В стеке TCP/IP протокол находится на прикладном уровне.

Принцип работы протокола FTP

Протокол FTP работает в режиме клиент сервер. На сервере есть файловая система, это структура каталогов в которой находятся файлы.

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

Протокол FTP, также как и HTTP для адресации файлов использует url. Например, ftp://ftp-server.ru/pub/documents/latex/example1.tex.

URL состоит из 3-х частей:

  1. первая часть ftp — идентификатор протокола;
  2. вторая часть ftp-server.ru — имя сервера, здесь может быть DNS имя либо IP адрес; 
  3. третья часть pub/documents/latex/example1.tex — путь к файлу, файловой системе и само имя файла. 

В отличии от других протоколов прикладного уровня, протокол FTP использует два отдельных соединения. Первое соединение управляющее, второе соединение для передачи данных.

Взаимодействие с транспортным уровнем

FTP использует протокол транспортного уровня TCP, а для управляющего соединения на сервере используется порт 21. Соединение для данных может быть установлено в двух режимах: в активном и пассивном, при этом используются разные номера портов. 

В активном режиме FTP инициатором установки соединения для передачи данных является сервер. В этом случае используется порт 20 на сервере, а со стороны клиента порт больше 1024. 

Однако, если между сервером и клиентом находится межсетевой экран или устройство трансляции сетевых адресов NAT, то сервер установить соединение с клиентом не сможет. В этом случае используется пассивный режим, при котором соединение для передачи данных устанавливает клиент. В пассивном режиме и на клиенте и на сервере используются порты с номерами больше, чем 1024. 

Аутентификация в FTP

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

Специальный тип пользователя FTP — анонимный пользователь. Для анонимного пользователя в качестве логина используется ftp, или anonymus, а в качестве пароля  может использоваться все, что угодно, но рекомендуется использовать свой email. Как правило анонимный пользователь имеет ограниченные права, обычно он может только скачивать файлы и записывать файлы в один определенный каталог. 

Команды протокола FTP

Протокол FTP, как и многие протоколы прикладного уровня работает в текстовом режиме. Команды FTP похожи на команды протокола POP3. Большинство из них состоит из 4-х символов, команды:

  • Команды USER и PASS используются для аутентификации;
  • LIST позволяет посмотреть содержимое текущего каталога;
  • CWD поменять текущий каталог;
  • RETR позволяет загрузить файл с сервера на клиент;
  • STOR позволяет сохранить файл на сервере;
  • Протокол FTP может передавать данные в двух режимах, текстовом и бинарном. В текстовом режиме возможна отправка управляющих символов, которые будут обработаны специальным образом. В бинарном режиме, обработка специальных символов не производится. Для выбора режима, который будет использоваться для передачи файлов, служит команда TYPE; 
  • DELE позволяет удалить файлы;
  • Команды MKD и RMD используются для создания и удаления каталога;
  • По умолчанию FTP сервер работает в активном режиме, т.е. соединение для передачи данных устанавливает сервер. Команда PASV служит для перехода в пассивный режим;
  • Команда QUIT используется для корректного закрытия соединения FTP после того, как все необходимые операции с файлами и каталогами были завершены. 

Пример сеанса FTP

Мы подключились к серверу на порт 21, создали управляющее соединение, сервер нам выдал ответ. 

Ответ FTP сервера, также как и ответы серверов многих прикладных протоколов состоят из двух частей, первая 220 статус, а вторая поясняющее сообщение Welcome to the FTP Server. Статус ответа 220, коды которой начинаются с 2, говорят об успешном выполнении команды, поясняющее сообщение содержит приветствие “Добро пожаловать на FTP сервер”. 

Сначала необходимо пройти аутентификацию. Для этого используется команда USER anonymous и мы хотим подключиться, как анонимный пользователь. 

Сервер отвечает сообщением со статусом 331. Код, который начинается с 3 говорит о том, что предыдущая команда была выполнена успешно и ожидается продолжение выполнения связанных действий. 

331 Guest login ok, send your complete e-mail address as password. В данном случае сервер говорит, что он принимает гостевой логин, т.е. идентификатор анонимного пользователя и просит прислать ваш e-mail в качестве пароля. 

В данном случае это отрывок из FTP сессии, который используется для загрузки файлов из браузера Chrome. Chrome в качестве пароля отправляет строку PASS chrome@examole.com, которая похожа на e-mail. 

Сервер никак не анализирует e-mail, который ему передали, говорит, что аутентификация прошла успешно, но права доступа ограничены 230 Guest login ok, access restrictions apply

Устанавливаем бинарный режим передачи файлов с помощью команды TYPE 1. Сервер отвечает, что тип передачи данных успешно установлен в 1. 200 Type set to 1

Мы хотим загрузить сервера в файл, показан путь /pud/tex/latex/llncs2e.zip, но перед тем как загрузить, мы хотим узнать его размер, для этого выдаем команду SIZE /pud/tex/latex/llncs2e.zip. Сервер в ответ выдает размер файла в байтах 213 230229

Переходим в пассивный режим с помощью команды PASV

В ответ сервер говорит, что он перешел в пассивный режим 227 Entering Passive Mod (213, 71, 6, 142, 35, 141) и передает нам 6 чисел, которые нужно использовать для установки соединения для передачи данных. Первые 4 числа это IP-адрес, вторые два числа используются, чтобы узнать порт на который нужно установить соединение. Первое число 35 нужно умножить на 256 и прибавить второе число 141, так мы узнаем порт. 

Для того, чтобы загрузить нужный нам файл используем команду RETR/pud/tex/latex/llncs2e.zip. После того, как мы выдали эту команду сервер ждет, что мы установим соединение с IP-адресом и портом, которые он нам указал. 

После того, как соединение для передачи данных установлено, сервер сообщает нам об этом в управляющем соединении. 150 Opening BINARY mode data connection for /pud/tex/latex/llncs2e.zip (230229 bytes). Также сервер говорит, что передача данных ведется в бинарном режиме. 

После того, как передача файла закончена, сервер сообщает нам об этом 226 Transfer complete. Клиент выдает команду QUIT чтобы разорвать соединение.

 Сервер сообщает нам некоторую статистику, сколько было передано байт и файлов. 221 You have transferred 239229 bytes in 1 file. И говорит до свидания 221 Goodbye.

На этом сеанс работы по протоколу FTP завершен. 

Заключение

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

Протокол FTP использует два соединения управляющее соединение и соединение для передачи данных.

Использование отдельного соединения для передачи данных, приводят к проблемам в работе FTP с межсетевыми экранами и устройствами NAT.

Для решения этой проблемы был придуман пассивный режим FTP при котором соединение для передачи данных устанавливается со стороны клиента. Еще одна проблема низкая безопасность. 

Сейчас все чаще вместо FTP используются протоколы на основе SSH. 

Источник: https://ZvonDoZvon.ru/tehnologii/protokoli/ftp

FTP

File Transfer Protocol  - протокол передачи файлов

Что такое FTP? File Transfer Protocol – протокол, используемый для передачи файлов по TCP/IP-сетям между клиентским компьютером и сервером. Это одна из самых популярных технологий обмена данными с серверами, расположенными по всему миру. Сам протокол был разработан в 1971 году, задолго до HTTP и TCP/IP.

Схема работы

Технически FTP-сервер представляет собой компьютер, к которому подключаются внешние пользователи. Они запускают на своих компьютерах специальный FTP-клиент, который делает попытку подключения. Клиент позволяет загружать и скачивать файлы с сервера.

Клиентские FTP-программы могут быть встроены в операционную систему, web-браузер, HTML-редактор, файловые менеджеры, а также быть отдельными программами (FileZilla, Total Commander и другими).

Взаимодействие между сервером и пользовательским компьютером выглядит следующим образом:

  • для связи, как правило, используется порт 21, который по умолчанию открыт на серверном компьютере. Клиент подключается к нему и выходит на управляющий канал;
  • после подключения FTP-клиент подает определенные команды интерпретатору;
  • после согласования команд для передачи данных необходимо дождаться получения номера канала, по которому будет осуществляться передача файлов для скачивания или загрузки на сервер. Эта операция осуществляется не через порт 21;
  • после передачи или приема файлов канал закрывается, оставляя открытым порт 21 для обработки новых команд.

Подключение к FTP-серверу

Чтобы получить доступ к содержимому сервера, необходимо пройти аутентификацию в системе. Существуют также ресурсы, которые не подразумевают обязательную регистрацию, но ее отсутствие накладывает ограничения на возможности пользователя.

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

Также нужно указать порт соединения (21), если тот не указан автоматически.

Программы для работы с FTP-серверами

FTP-клиенты, как уже было сказано, могут быть предоставлены вместе с программным обеспечением, а могут представлять собой отдельные программы. Рассмотрим наиболее популярные клиенты.

FileZilla. Одна из самых популярных бесплатных программ. Поддерживается практически всеми операционными системами, имеет русифицированную версию и понятный интерфейс. Возможности клиента:

  • поддержка FTP через SSL/TLS (FTPS) и SSH File Transfer Protocol (SFTP);
  • поддержка IDN, IPv6, Drag-and-drop;
  • удаленное редактирование файлов;
  • работа с вкладками;
  • возможность приема и передачи больших объемов информации (более 4 Гб);
  • менеджер сайтов и очередь загрузки.

Total Commander. Свободно распространяемое программное обеспечение, использование которого в качестве FTP-клиента имеет большую популярность у пользователей.

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

Подключение к серверу производится по стандартной схеме: через ввод логина и пароля, а также указание хоста.

Far Manager. Также является свободно распространяемым ПО. Российская разработка, отличающаяся узнаваемым интерфейсом, выполненным в сине-белых цветах. Управление осуществляется посредством ввода команд с клавиатуры. Доступ к FTP-серверам производится через различные типы прокси-серверов. Присутствует функция автоматической докачки файлов.

WinSCP. Свободно распространяемый графический клиент. Обмен файлами производится в защищенном режиме. Также клиент может сохранять настройки, чтобы пользоваться ими для будущих соединений, синхронизировать папки по определенным алгоритмам и имеет возможность редактировать файлы.

FTP-архивы

Посредством протокола передается достаточно большое количество информации, поэтому для удобства работы были созданы FTP-архивы. Они представляют собой глобальное медиахранилище, в котором содержатся файлы различных типов. Для их хранения используются разные серверы. Условно информацию, содержащуюся в архивах, можно разделить на три категории:

  • свободно распространяемую. Доступ к файлам такого типа можно получить без специальной регистрации. Это может быть документация, программное обеспечение и другие файлы. При этом стоит учесть, что программное обеспечение, распространяемое таким образом, не обладает сертификатом качества, но и не скрывает своих разработчиков;
  • ограниченного пользования. К этой категории могут относиться ресурсы с ограниченным временем действия, например программы категории shareware, которые предоставляют определенное время для использования, после чего предлагают приобрести полную версию ПО;
  • защищенную информацию. Степень доступа к подобным файлам устанавливают их владельцы и предоставляют их пользователям только по определенной договоренности. Это может быть информация о частных благотворительных фондах, коммерческих архивах и других документах с закрытым доступом.

Поиск в FTP-архивах осуществляется посредством системы Archie. Она сканирует все хранилища, предоставляя затем ссылку на нужный сервер, с которым необходимо установить соединение.

Источник: https://www.SEOnews.ru/glossary/ftp/

Что такое FTP и как с ним работать в клиенте Filezilla

File Transfer Protocol  - протокол передачи файлов

FTP (File Transfer Protocol) – это протокол, который используется для передачи файлов.

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

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

Для того чтобы воспользоваться FTP, вам только нужно убедиться, что сеть поддерживает TCP/IP (по этому протоколу, например, работает Интернет).

Особенности подключения по FTP

Нужно отметить, что протокол FTP появился давно – в 1971 году. Для сравнения – протокол HTTP был создан почти через двадцать лет, в 1992 году, и в плане работы с файлами FTP до сих пор является предпочтительным протоколом.

Почему? Причин много. Например, при обрыве соединения – а бывает, как мы знаем, всякое – FTP позволит вам потом докачать файл, а не начинать его скачивание заново. Да и само скачивание происходит не по одному, а сразу по нескольким потокам параллельно. Для маленьких файлов это не очень важно, а вот если вы собираетесь загружать массивные файлы, то передача по FTP будет очень кстати.

При этом HTTP протокол тоже может быть полезен он используется для передачи веб-страниц, которые представляют собой не что иное, как текстовые файлы с кодом, а также небольших файлов.

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

Что такое FTP-клиент

FTP-клиент – это файловый менеджер, который осуществляет подключение к удаленному серверу для передачи данных. Существует много разных FTP-клиентов, но я советую использовать именно Filezilla. 

Для подключения клиента к удаленному серверу нужны следующие данные:

  • логин, 
  • пароль, 
  • хост (имя сервера), 
  • номер порта (по умолчанию 21 для FTP-соединения).

Если вам неудобно пользоваться FTP-клиентом, то есть альтернатива: вы можете загружать и скачивать файлы с удаленного сервера прямо в браузере с помощью файлового менеджера в панели управления хостингом Timeweb. Такая технология называется WebFTP.

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

Если речь идет о личных данных (логинах, паролях), то вы можете представить, чем это может вам обернуться. Поэтому для того, чтобы обезопасить свои данные от кражи, необходимо использовать безопасные протоколы FTPS или SFTP.

Filezilla отличается тем, что поддерживает эти протоколы (для того чтобы использовать безопасный протокол, в программе необходимо выбрать «Файл» -> «Менеджер сайтов» -> во вкладке «Общие» изменить протокол с FTP на SFTP).

Другими преимуществами Filezilla являются бесплатное использование, поддержка русского языка и кроссплатформенность (можете установить это ПО на машины с Linux, Windows или даже Mac OS X). Чуть подробнее почитать можно на русскоязычном сайте. Там же вы найдете и документацию клиента, а также полезные статьи.

Как работать с FTP на примере Filezilla

Работать с FTP-клиентом намного проще, чем может показаться на первый взгляд. Зачастую пользователи предпочитают проверенные пути вместо того, чтобы потратить несколько минут на изучение новой технологии. Поэтому постараюсь в этой статье максимально понятно рассказать о том, как же правильно использовать Filezilla в своих целях.

Установить Filezilla вы можете прямо с официального сайта.

Настройка Filezilla

Для того чтобы настроить Filezilla, вам необходимо знать свой логин и пароль от панели управления, а также название хоста. Timeweb присылает эту информацию после регистрации в приветственном письме (там отдельно будут указаны данные для использования FTP), а также на главной странице панели управления (смотрим блок «Доступ по FTP»):

Теперь открывайте Filezilla и вводите все эти данные в соответствующие строки:

В поле «Порт» напишите 21 (этот порт использует FTP). Затем нажимайте «Быстрое соединение».

Внимание! Иногда на этом этапе у вас может возникнуть ошибка ENETUNREACH (Сеть недоступна), из-за которой соединение не будет установлено. Решается данная проблема легко – выключением (или временным приостановлением) антивирусной программы.

Если соединение установлено правильно, то в блоке справа внизу вы увидите список файлов, которые доступны на вашем аккаунте (по сути, то же самое вы увидите, если зайдете в раздел «Файловый менеджер» панели управления хостингом).

Но каждый раз при запуске Filezilla заново вводить эти данные, согласитесь, неудобно, поэтому мы сделаем следующее:

  1. Открываем «Менеджер сайтов».
  2. Нажимаем «Новый сайт» (по желанию переименовываем его).
  3. Тип входа: вместо «Анонимный» ставим «Нормальный».
  4. Вводим все данные.
  5. Нажимаем «ОК» или «Соединиться»

Теперь после запуска программы вы можете просто нажать на стрелку вниз рядом со значком «Менеджер сайтов», выбрать аккаунт и подключиться к нему. Это особенно удобно, если у вас несколько сайтов на разных серверах.

Кстати, во вкладке «Дополнительно» вы можете указать путь к какой-то конкретной папке на сервере (строка «Удаленный каталог по умолчанию), и тогда при каждом подключении вы будете попадать не в корневой каталог, а в заданную папку.

Управление файлами

Я думаю, что интуитивно вы уже разобрались, что папки слева – это то, что есть на вашем компьютере. А справа – то, что находится на хостинге.

Вы можете заходить в них, смотреть и т.д. – в общем, как на обычном компьютере. Точно так же осуществляется и перенос файлов/папок между вашим компьютером и сервером – просто перетащите нужный вам элемент из одной области в другую (drag-and-drop). Типичный файловый менеджер.

Также вы можете кликом правой кнопки мыши по файлу закачать его на сервер – элемент будет загружен в открытую справа папку на сервере. При этом если файл не загрузился мгновенно (имеет большой вес), то внизу, во вкладке «Файлы в задании», вы увидите зеленую полосу загрузки:

Чтобы создать папку на сервере, нажмите правую кнопку мыши в области справа, где отображены папки и файлы сервера, далее выберите «Создать каталог» и присвойте ему любое название (но обязательно латинскими символами!).

Хотите удалить или переименовать? Все точно так же, щелчком правой кнопки мыши.

Аналогично вы можете и перейти к редактированию файлов (пункт «Просмотр/Правка»), при этом можно использовать как программу по умолчанию, так и выбрать какой-нибудь редактор.

Чтобы настроить автоматическое открытие файлов другим редактором, выберите пункт «Редактирование» в верхнем меню, затем «Формат файлов» – и сделайте активным пункт «Использовать следующий редактор» (с последующим выбором нужной вам программы):

FTP-клиент позволяет настраивать и права доступа: для этого на элемент нужно нажать правой кнопкой мыши и выбрать «Права доступа к файлу».

Работать с файлами можно и в отложенном режиме: допустим, вы выбрали файлы, которые вам нужно перенести на сервер – выберите их, нажмите правую кнопку мыши и строчку «Добавить файлы в задание» (даже в том случае, если вы не подключены к серверу). Они отобразятся в блоке ниже. Затем подключитесь к серверу, снова кликните правой кнопкой по ним и выберите «Выполнить задание» — все файлы будут перенесены на сервер.

Отдельно стоит рассказать о синхронизированном просмотре. Для того чтобы его активировать, вам нужно нажать соответствующий значок чуть ниже верхнего меню (под надписью «Закладки»):

Зачем это использовать? Допустим, у вас на компьютере есть папка с файлами вашего сайта – точно такими же, как и на хостинге.

Файлов, как и папок, может быть очень много – и вот для удобства ориентирования в них и был добавлен такой режим: переходя из папки в папку в одном окне (допустим, серверном), вы будете точно так же, синхронно переходить в окне, где отображается содержимое вашего компьютера.

Режим позволит вам не запутаться во множестве этих папок. Но, естественно, действует он лишь в том случае, если названия директорий полностью совпадают.

Заключение

FTP-соединение превращает ваш сервер в директорию, с которой удобно работать при помощи специального файлового менеджера, т.е. FTP-клиента. Освоить такую программу вы сможете за 10 минут! 

Самый главный недостаток FTP – это уязвимость перед взломами и DDoS-атаками. Не советую хранить на таком сервере конфиденциальную информацию.

Надеюсь, моя статья оказалась вам полезной. Если остались вопросы по работе FTP-сервера или FTP-клиента, спрашивайте – обязательно отвечу!

Источник: https://timeweb.com/ru/community/articles/chto-takoe-ftp-i-kak-rabotat-v-filezilla-1

Передача файлов по FTP

File Transfer Protocol  - протокол передачи файлов

FTP — это один из самых популярных способов передачи файлов на сервер серди веб-мастеров и пользователей. File Transfer Protocol — довольно давняя технология, которая применялась для передачи файлов между компьютерами еще на заре зарождения интернета. Но она до сих пор сохранила свою популярность из-за простоты и надежности.

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

Как работает FTP?

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

Важно заметить, что для передачи файлов и обработки команд используются два разных соединения. Команды передаются на порт 21, а когда нужно передать файл, сервер FTP сообщает на какой порт нужно начать отправлять информацию.

Не будем вдаваться в подробности, скажу только, что существует два режима передачи файлов. Это активный, когда сервер подключается к компьютеру и начинает считывать файл и пассивный, когда компьютер передает файл на сервер.

Сейчас в большинстве случаев применяется пассивный режим, потому что большинство пользователей используют NAT, что не позволяет серверу самому подключаться к портам клиента.

А теперь перейдем ближе к практике и рассмотрим как выполняется передача файлов по FTP.

Передача файлов по FTP через терминал

Мы могли бы использовать telnet для передачи файлов по FTP через терминал, но это слишком сложно и не нужно. Существует консольный клиент FTP с более простым синтаксисом и достаточными возможностями. Сначала рассмотрим общий синтаксис и команды утилиты:

$ ftp опции адрес_сервера

Опций у утилиты всего несколько, но нам нужно их рассмотреть, потому что они могут быть вам очень полезны:

  • -A — использовать активный режим во время передачи файлов;
  • -p — использовать пассивный режим, используется по умолчанию;
  • -i — отключать интерактивный режим во время передачи файлов;
  • -n — попытаться использовать автоматический вход;
  • -e — отключить историю команд;
  • -v — максимально подробный вывод;
  • -d — включить режим отладки.

Дальше рассмотрим команды интерактивного режима, которые вы будете использовать для подключения к серверу и управления файлами:

  • account — отправить серверу свой пароль для авторизации;
  • append — добавить локальный файл в конец удаленного файла на сервере;
  • ascii — передавать файлы в кодировке ASCII;
  • binary — передавать файлы в бинарном формате;
  • bye — завершить сессию;
  • cd — перейти в папку;
  • cdup — перейти в папку уровнем выше;
  • chmod — изменить права на файл;
  • delete — удалить файл с сервера;
  • dir — посмотреть список файлов в папке;
  • get — скачать файл из сервера на локальную машину;
  • hash — отображать статус передачи файла;
  • lcd — сменить рабочую директорию на локальной машине;
  • ls — список файлов в папке;
  • mdelete — удалить несколько файлов;
  • mget — скачать несколько файлов;
  • mkdir — создать папку;
  • mput — передать несколько файлов на сервер;
  • open — подключится к удаленному FTP серверу;
  • put — передать файл на сервер;
  • pwd — вывести текущую папку;
  • recv — то же самое что и get;
  • rename — переименовать файл на сервере;
  • rmdir — удалить папку;
  • size — узнать размер файла;
  • user — авторизоваться на сервере.

Это далеко не все команды, которые вы можете использовать для передачи файлов, но здесь перечислено все самое основное, и вам их точно хватит для решения простых задач.

Сначала подключаемся к нашему серверу, команде нужно передать адрес сервера:

ftp localhost

Затем авторизуемся на сервере, нужно передать логин и пароль:

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

ftp> cd FTPftp> ls

ftp> pwd

Перейдем в папку documents на удаленном сервере и посмотрим ее содержимое:

ftp> cd documents
ftp> ls

Чтобы скачать файл по FTP с удаленного сервера нам нужно использовать команду get. Просто передайте команде имя файла:

ftp> get document2.odt

Теперь файл находится на нашей локальной машине. Мы можем выполнять команды на локальной машине если перед ними добавить символ «!». Например, посмотрим содержимое домашней папки чтобы убедиться, что файл был загружен:

ftp> !dir

Загрузка файлов по FTP на сервер выполняется с помощью команды put, причем, здесь, как и в предыдущей команде можно задать имя создаваемого файла:

ftp> put document2.odt document3.odt

Также можно управлять файлами на удаленном сервере. Переименуем файл doument1.pdf, так чтобы он назывался правильно:

ftp> rename doument1.pdf document1.pdf

Затем удалим document3:

ftp> delete document3.odt

Для завершения сеанса FTP наберите Bye:

ftp> bye

Сейчас многие FTP серверы используют шифрование на основе ssl сертификатов. Это необходимая мера, которая позволяет обезопасить данные пользователей. Для подключения к таким серверам необходимо использовать утилиту sftp, в остальном же процесс и команды не отличаются.

Передача файлов по FTP в графическом интерфейсе

Передача файлов на FTP через графический интерфейс может выполняться с помощью различных графических клиентов. Один из самых популярных из них — это Filezilla. Его можно использовать в Linux, Windows или MacOS. Например, для установки в Ubuntu используйте такую команду:

sudo apt install filezilla

Вот так выглядит главное окно утилиты. Для подключения к серверу необходимо ввести данные аутентификации в поля, которые находятся в верхней части окна:

Затем нажмите кнопку «Быстрое соединение». Если программа удачно подключится к серверу, то вы увидите список файлов на правой панели. На левой панели находится ваша локальная файловая система:

Чтобы передать файл достаточно его перетащить в нужную часть окна:

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

Выводы

Источник: https://losst.ru/peredacha-fajlov-po-ftp

Все термины
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: