1 added
1 removed
Original
2026-01-01
Modified
2026-02-21
1
<p><a>#статьи</a></p>
1
<p><a>#статьи</a></p>
2
<ul><li>19 май 2023</li>
2
<ul><li>19 май 2023</li>
3
<li>0</li>
3
<li>0</li>
4
</ul><p>Объясняем простым языком, что это за протокол для передачи данных, и запускаем собственный сервер на нём.</p>
4
</ul><p>Объясняем простым языком, что это за протокол для передачи данных, и запускаем собственный сервер на нём.</p>
5
<p>Иллюстрация: Оля Ежак для Skillbox Media</p>
5
<p>Иллюстрация: Оля Ежак для Skillbox Media</p>
6
<p>Любитель научной фантастики и технологического прогресса. Хорошо сочетает в себе заумного технаря и утончённого гуманитария. Пишет про IT и радуется этому.</p>
6
<p>Любитель научной фантастики и технологического прогресса. Хорошо сочетает в себе заумного технаря и утончённого гуманитария. Пишет про IT и радуется этому.</p>
7
<p>Когда интернет только превращался в глобальную сеть, появилась новая потребность - передавать файлы с одного компьютера на другой на расстоянии. Тогда ещё не было варианта просто загрузить их в условный телеграм и скинуть другу. Поэтому в 1971 году придумали протокол FTP.</p>
7
<p>Когда интернет только превращался в глобальную сеть, появилась новая потребность - передавать файлы с одного компьютера на другой на расстоянии. Тогда ещё не было варианта просто загрузить их в условный телеграм и скинуть другу. Поэтому в 1971 году придумали протокол FTP.</p>
8
<p>FTP решал главную проблему - быстро и надёжно передавать файлы по Сети. А большую популярность он приобрёл из-за своей простоты: для доступа к другому компьютеру нужны были только логин и пароль.</p>
8
<p>FTP решал главную проблему - быстро и надёжно передавать файлы по Сети. А большую популярность он приобрёл из-за своей простоты: для доступа к другому компьютеру нужны были только логин и пароль.</p>
9
<p>В этой статье рассказываем, что это за протокол, зачем нужен и как работает, а ещё - пробуем запустить свой FTP-сервер на Windows и Linux.</p>
9
<p>В этой статье рассказываем, что это за протокол, зачем нужен и как работает, а ещё - пробуем запустить свой FTP-сервер на Windows и Linux.</p>
10
<p>Всё, что нужно знать об FTP:</p>
10
<p>Всё, что нужно знать об FTP:</p>
11
<ul><li><a>Что это такое</a></li>
11
<ul><li><a>Что это такое</a></li>
12
<li><a>Чем отличается от HTTP</a></li>
12
<li><a>Чем отличается от HTTP</a></li>
13
<li><a>Плюсы и минусы протокола</a></li>
13
<li><a>Плюсы и минусы протокола</a></li>
14
<li><a>Для чего нужны FTPS и SFTP</a></li>
14
<li><a>Для чего нужны FTPS и SFTP</a></li>
15
<li><a>Как передавать файлы</a></li>
15
<li><a>Как передавать файлы</a></li>
16
<li><a>Обзор популярных FTP-клиентов</a></li>
16
<li><a>Обзор популярных FTP-клиентов</a></li>
17
<li><a>Как создать сервер на Windows</a>и <a>Linux</a></li>
17
<li><a>Как создать сервер на Windows</a>и <a>Linux</a></li>
18
<li><a>Что запомнить</a></li>
18
<li><a>Что запомнить</a></li>
19
</ul><p><strong>FTP</strong> - это протокол для передачи данных через интернет. Аббревиатура расшифровывается как<strong>File Transfer Protocol</strong>, в переводе - "протокол передачи данных". С его помощью можно скачать или отправить что угодно: видео, музыку, программы, изображения.</p>
19
</ul><p><strong>FTP</strong> - это протокол для передачи данных через интернет. Аббревиатура расшифровывается как<strong>File Transfer Protocol</strong>, в переводе - "протокол передачи данных". С его помощью можно скачать или отправить что угодно: видео, музыку, программы, изображения.</p>
20
<p>В процедуре передачи файлов участвуют два игрока - клиент и сервер. Первый отправляет запрос в виде команды, а второй обрабатывает её и возвращает ответ в виде файла или сообщения об ошибке. При этом сервером может быть и обычный ПК, а не только классический веб-сервер.</p>
20
<p>В процедуре передачи файлов участвуют два игрока - клиент и сервер. Первый отправляет запрос в виде команды, а второй обрабатывает её и возвращает ответ в виде файла или сообщения об ошибке. При этом сервером может быть и обычный ПК, а не только классический веб-сервер.</p>
21
<p>Чтобы удостовериться, что клиент может скачивать файлы, при подключении сервер просит ввести логин и пароль. Но это не всегда обязательно - FTP поддерживает и анонимный режим, когда подключиться к серверу можно без авторизации.</p>
21
<p>Чтобы удостовериться, что клиент может скачивать файлы, при подключении сервер просит ввести логин и пароль. Но это не всегда обязательно - FTP поддерживает и анонимный режим, когда подключиться к серверу можно без авторизации.</p>
22
Проверка очень простая, но для 1971 года сойдёт<em>Иллюстрация: Оля Ежак для Skillbox Media</em><p>Давайте посмотрим, как работает FTP на примере жизненной ситуации.</p>
22
Проверка очень простая, но для 1971 года сойдёт<em>Иллюстрация: Оля Ежак для Skillbox Media</em><p>Давайте посмотрим, как работает FTP на примере жизненной ситуации.</p>
23
<p>Допустим, вы работаете программистом в IT-компании. Весь код и все файлы хранятся в локальном хранилище - на внутреннем сервере, который доступен только сотрудникам. Чтобы начать работу, нужно перенести рабочие файлы себе на компьютер, а для этого - подключиться к серверу.</p>
23
<p>Допустим, вы работаете программистом в IT-компании. Весь код и все файлы хранятся в локальном хранилище - на внутреннем сервере, который доступен только сотрудникам. Чтобы начать работу, нужно перенести рабочие файлы себе на компьютер, а для этого - подключиться к серверу.</p>
24
<p>Задача понятна - открываем консоль и устанавливаем соединение через FTP для доступа к хранилищу. Перед этим нужно запросить логин и пароль от него, иначе не удастся подключиться. Как только вы авторизуетесь, вам будут доступны все файлы на сервере - или те, к которым вам выдадут доступ. Чтобы скачать их, нужно ввести ещё пару команд и дождаться загрузки. Готово!</p>
24
<p>Задача понятна - открываем консоль и устанавливаем соединение через FTP для доступа к хранилищу. Перед этим нужно запросить логин и пароль от него, иначе не удастся подключиться. Как только вы авторизуетесь, вам будут доступны все файлы на сервере - или те, к которым вам выдадут доступ. Чтобы скачать их, нужно ввести ещё пару команд и дождаться загрузки. Готово!</p>
25
Подключаемся к внутреннему серверу - получаем рабочие файлы<em>Иллюстрация: Оля Ежак для Skillbox Media</em><p>Конечно, сегодня обмен рабочими файлами происходит гораздо быстрее и удобнее с помощью<a>Git</a>, который использует более современные протоколы - например, SSH и HTTP. Но бывают ситуации, когда нужно развернуть тот же Git-репозиторий на FTP-сервере, - и тогда уже без этого старичка никуда.</p>
25
Подключаемся к внутреннему серверу - получаем рабочие файлы<em>Иллюстрация: Оля Ежак для Skillbox Media</em><p>Конечно, сегодня обмен рабочими файлами происходит гораздо быстрее и удобнее с помощью<a>Git</a>, который использует более современные протоколы - например, SSH и HTTP. Но бывают ситуации, когда нужно развернуть тот же Git-репозиторий на FTP-сервере, - и тогда уже без этого старичка никуда.</p>
26
<p>В интернете есть два популярных протокола для передачи данных: FTP и HTTP. Оба решают примерно одинаковые задачи, но всё же различаются в назначении.</p>
26
<p>В интернете есть два популярных протокола для передачи данных: FTP и HTTP. Оба решают примерно одинаковые задачи, но всё же различаются в назначении.</p>
27
<p><strong>FTP</strong>изначально создавался для обмена данными между компьютерами. Он использует два соединения: одно для передачи, а другое - для управления. Идея в том, что FTP умеет следить, как выполняются длинные запросы - например, передача больших файлов или управление данными на сервере.</p>
27
<p><strong>FTP</strong>изначально создавался для обмена данными между компьютерами. Он использует два соединения: одно для передачи, а другое - для управления. Идея в том, что FTP умеет следить, как выполняются длинные запросы - например, передача больших файлов или управление данными на сервере.</p>
28
<p><strong>HTTP</strong>заточен на передачу гипертекстовых документов - то есть сайтов и веб-страниц. Он использует всего одно соединение, по которому запросы летают между клиентом и сервером. Ему не нужно устраивать длинные сеансы обмена данными: просто отдал нужную страничку и забыл.</p>
28
<p><strong>HTTP</strong>заточен на передачу гипертекстовых документов - то есть сайтов и веб-страниц. Он использует всего одно соединение, по которому запросы летают между клиентом и сервером. Ему не нужно устраивать длинные сеансы обмена данными: просто отдал нужную страничку и забыл.</p>
29
<p>Иначе говоря, FTP ориентирован на долгое и "вдумчивое" взаимодействие сервера и клиента: он помнит, кто, кому, когда и что передал. У HTTP другая задача - управлять запросами в интернете. В отличие от FTP, он не хранит состояние сессии, зато работает быстрее - а это как раз то, что нужно для веба.</p>
29
<p>Иначе говоря, FTP ориентирован на долгое и "вдумчивое" взаимодействие сервера и клиента: он помнит, кто, кому, когда и что передал. У HTTP другая задача - управлять запросами в интернете. В отличие от FTP, он не хранит состояние сессии, зато работает быстрее - а это как раз то, что нужно для веба.</p>
30
<p>Вот три главные задачи, для решения которых вам может понадобиться FTP:</p>
30
<p>Вот три главные задачи, для решения которых вам может понадобиться FTP:</p>
31
<ul><li><strong>Передавать файлы на другие компьютеры.</strong>Это удобно, когда вам нужно, например, загрузить файлы на сервер сайта или отправить видео другу. Просто подключились, отправили, остались довольны.</li>
31
<ul><li><strong>Передавать файлы на другие компьютеры.</strong>Это удобно, когда вам нужно, например, загрузить файлы на сервер сайта или отправить видео другу. Просто подключились, отправили, остались довольны.</li>
32
<li><strong>Резервное копирование.</strong>Чтобы не потерять файлы, вы можете сделать их бэкап на удалённый компьютер.</li>
32
<li><strong>Резервное копирование.</strong>Чтобы не потерять файлы, вы можете сделать их бэкап на удалённый компьютер.</li>
33
<li><strong>Удалённый доступ к файлам.</strong>FTP можно превратить в замену Google Drive или "Яндекс Диска": берём удалённый компьютер, загружаем туда файлы и достаём по мере необходимости.</li>
33
<li><strong>Удалённый доступ к файлам.</strong>FTP можно превратить в замену Google Drive или "Яндекс Диска": берём удалённый компьютер, загружаем туда файлы и достаём по мере необходимости.</li>
34
</ul><p>Теперь о том, почему использование FTP может быть не самой удачной идеей:</p>
34
</ul><p>Теперь о том, почему использование FTP может быть не самой удачной идеей:</p>
35
<ul><li><strong>Отсутствие адекватной защиты.</strong>Когда вы подключаетесь к серверу, данные отправляются по сети в незашифрованном виде: в том числе логины, пароли и сами файлы. Плюс в FTP нет никакой защиты от <a>брутфорса</a>- то есть пароль к серверу можно подобрать обычным перебором.</li>
35
<ul><li><strong>Отсутствие адекватной защиты.</strong>Когда вы подключаетесь к серверу, данные отправляются по сети в незашифрованном виде: в том числе логины, пароли и сами файлы. Плюс в FTP нет никакой защиты от <a>брутфорса</a>- то есть пароль к серверу можно подобрать обычным перебором.</li>
36
<li><strong>Неэффективная передача файлов.</strong>Для каждой операции передачи FTP требует установки нового соединения. Если вы хотите передавать несколько файлов одновременно, это может привести к задержкам и увеличению нагрузки на сеть - особенно при передаче больших файлов.</li>
36
<li><strong>Неэффективная передача файлов.</strong>Для каждой операции передачи FTP требует установки нового соединения. Если вы хотите передавать несколько файлов одновременно, это может привести к задержкам и увеличению нагрузки на сеть - особенно при передаче больших файлов.</li>
37
<li><strong>Разрыв соединения при ошибке.</strong>Если передача данных прервётся по какой-то причине, то весь процесс придётся начинать сначала.</li>
37
<li><strong>Разрыв соединения при ошибке.</strong>Если передача данных прервётся по какой-то причине, то весь процесс придётся начинать сначала.</li>
38
</ul><p>Чтобы решить проблемы безопасности, в FTP впоследствии всё же придумали шифровать запросы - так появились защищённые протоколы FTPS и SFTP. Давайте посмотрим, чем они отличаются друг от друга.</p>
38
</ul><p>Чтобы решить проблемы безопасности, в FTP впоследствии всё же придумали шифровать запросы - так появились защищённые протоколы FTPS и SFTP. Давайте посмотрим, чем они отличаются друг от друга.</p>
39
<p><strong>FTPS</strong> - это расширение протокола FTP, которое использует сертификаты SSL и TLS. Расшифровывается он как<strong>File Transfer Protocol Secure</strong>, по-русски - "защищённый протокол передачи данных".</p>
39
<p><strong>FTPS</strong> - это расширение протокола FTP, которое использует сертификаты SSL и TLS. Расшифровывается он как<strong>File Transfer Protocol Secure</strong>, по-русски - "защищённый протокол передачи данных".</p>
40
<p>Протокол работает так же, как и обычный FTP, но во время подключения клиент и сервер обмениваются сертификатами. Они являются своеобразным договором, что всё пройдёт безопасно и конфиденциально.</p>
40
<p>Протокол работает так же, как и обычный FTP, но во время подключения клиент и сервер обмениваются сертификатами. Они являются своеобразным договором, что всё пройдёт безопасно и конфиденциально.</p>
41
<p>Сертификаты можно получить в центре сертификации, а можно - создать свои. Первые будут гарантировать надёжность, а вторые - восприниматься системой с подозрением.</p>
41
<p>Сертификаты можно получить в центре сертификации, а можно - создать свои. Первые будут гарантировать надёжность, а вторые - восприниматься системой с подозрением.</p>
42
<p>Подробнее о том, как работают сертификаты SSL, зачем они нужны и где вообще их получить, читайте в <a>нашей статье</a>.</p>
42
<p>Подробнее о том, как работают сертификаты SSL, зачем они нужны и где вообще их получить, читайте в <a>нашей статье</a>.</p>
43
<p><strong>SFTP</strong> - это ещё одно расширение для протокола FTP, которое для работы использует протокол<a>SSH</a>. Расшифровывается как<strong>Secure File Transfer Protocol</strong>, что тоже переводится как "защищённый протокол передачи данных".</p>
43
<p><strong>SFTP</strong> - это ещё одно расширение для протокола FTP, которое для работы использует протокол<a>SSH</a>. Расшифровывается как<strong>Secure File Transfer Protocol</strong>, что тоже переводится как "защищённый протокол передачи данных".</p>
44
<p>В отличие от обычного FTP, SFTP для работы нужен один сетевой порт: SSH умеет разделять его на несколько каналов, один из которых выделяется под управление, а другой - под передачу данных.</p>
44
<p>В отличие от обычного FTP, SFTP для работы нужен один сетевой порт: SSH умеет разделять его на несколько каналов, один из которых выделяется под управление, а другой - под передачу данных.</p>
45
<p>А ещё передача по SFTP защищена с помощью специальных SSH-ключей: один на стороне клиента шифрует трафик, а другой, на стороне сервера, его дешифрует.</p>
45
<p>А ещё передача по SFTP защищена с помощью специальных SSH-ключей: один на стороне клиента шифрует трафик, а другой, на стороне сервера, его дешифрует.</p>
46
FTPS - это как два предпринимателя, а SFTP - как два ребёнка, которые придумали свой язык<em>Иллюстрация: Оля Ежак для Skillbox Media</em><p>Оба протокола стали хорошим дополнением к FTP. При выборе одного из них нужно учитывать особенности вашего проекта. Например, если у вас уже есть SSL-сертификат, то удобнее будет использовать FTPS. А если сертификата нет и покупать его не хочется - выбирайте SFTP.</p>
46
FTPS - это как два предпринимателя, а SFTP - как два ребёнка, которые придумали свой язык<em>Иллюстрация: Оля Ежак для Skillbox Media</em><p>Оба протокола стали хорошим дополнением к FTP. При выборе одного из них нужно учитывать особенности вашего проекта. Например, если у вас уже есть SSL-сертификат, то удобнее будет использовать FTPS. А если сертификата нет и покупать его не хочется - выбирайте SFTP.</p>
47
<p>Как мы выяснили ранее, для работы FTP-протоколу нужны двое - клиент и сервер. Клиент подключается к серверу и отправляет ему команды, чтобы загрузить или скачать файлы.</p>
47
<p>Как мы выяснили ранее, для работы FTP-протоколу нужны двое - клиент и сервер. Клиент подключается к серверу и отправляет ему команды, чтобы загрузить или скачать файлы.</p>
48
<p>Чтобы подключиться к серверу, нужно знать его IP-адрес, а ещё - логин и пароль для авторизации. Логин и пароль задаются на стороне сервера при его настройке. IP-адрес тоже можно узнать на сервере - например, в консоли Windows это делается с помощью команды ipconfig.</p>
48
<p>Чтобы подключиться к серверу, нужно знать его IP-адрес, а ещё - логин и пароль для авторизации. Логин и пароль задаются на стороне сервера при его настройке. IP-адрес тоже можно узнать на сервере - например, в консоли Windows это делается с помощью команды ipconfig.</p>
49
<p><strong>Как работает авторизация по FTP-протоколу</strong></p>
49
<p><strong>Как работает авторизация по FTP-протоколу</strong></p>
50
<p>FTP поддерживает два способа авторизации: логин-паролевый и анонимный. Анонимный режим доступен на любом FTP-сервере: он нужен, чтобы делать некоторые файлы общедоступными.</p>
50
<p>FTP поддерживает два способа авторизации: логин-паролевый и анонимный. Анонимный режим доступен на любом FTP-сервере: он нужен, чтобы делать некоторые файлы общедоступными.</p>
51
<p>Например, вы можете выложить картинку на FTP-сервер и разослать её своим друзьям, но при этом выдать им данные только от анонимного режима, чтобы они не увидели все файлы на сервере.</p>
51
<p>Например, вы можете выложить картинку на FTP-сервер и разослать её своим друзьям, но при этом выдать им данные только от анонимного режима, чтобы они не увидели все файлы на сервере.</p>
52
<p>Авторизация для анонимного режима похожа на логин-паролевую. Но вместо логина нужно ввести слово anonymous, а вместо пароля - любой адрес электронной почты или оставить поле пустым.</p>
52
<p>Авторизация для анонимного режима похожа на логин-паролевую. Но вместо логина нужно ввести слово anonymous, а вместо пароля - любой адрес электронной почты или оставить поле пустым.</p>
53
<p>Анонимный режим - это рудимент, который остался со времён Unix-систем. Тогда везде была логин-паролевая авторизация, а других способов ещё не придумали.</p>
53
<p>Анонимный режим - это рудимент, который остался со времён Unix-систем. Тогда везде была логин-паролевая авторизация, а других способов ещё не придумали.</p>
54
<p>Когда у нас есть IP-адрес, логин и пароль, можно подключаться. Для этого понадобится специальная программа - FTP-клиент. Она может как быть обычным консольным приложением, так и иметь графический интерфейс.</p>
54
<p>Когда у нас есть IP-адрес, логин и пароль, можно подключаться. Для этого понадобится специальная программа - FTP-клиент. Она может как быть обычным консольным приложением, так и иметь графический интерфейс.</p>
55
<p>Чтобы осуществить передачу, FTP-клиент попросит нас подключиться к серверу, а затем авторизоваться. Вот так выглядит подключение к FTP-серверу через консоль Windows:</p>
55
<p>Чтобы осуществить передачу, FTP-клиент попросит нас подключиться к серверу, а затем авторизоваться. Вот так выглядит подключение к FTP-серверу через консоль Windows:</p>
56
$ ftp ftp.example.com Login: login Password: ********* 230 Login successful.<p>Посмотреть, какие файлы находятся на сервере, можно, воспользовавшись следующей командой:</p>
56
$ ftp ftp.example.com Login: login Password: ********* 230 Login successful.<p>Посмотреть, какие файлы находятся на сервере, можно, воспользовавшись следующей командой:</p>
57
$ ls<p>Чтобы скачать или загрузить файл, FTP-протокол использует две команды:</p>
57
$ ls<p>Чтобы скачать или загрузить файл, FTP-протокол использует две команды:</p>
58
<ul><li><strong>PUT</strong> - для отправки файлов с вашего компьютера на сервер;</li>
58
<ul><li><strong>PUT</strong> - для отправки файлов с вашего компьютера на сервер;</li>
59
<li><strong>GET</strong> - для загрузки файлов с сервера на ваш компьютер.</li>
59
<li><strong>GET</strong> - для загрузки файлов с сервера на ваш компьютер.</li>
60
</ul><p>Когда вы вводите одну из них, клиент и сервер создают соединение для передачи данных. После этого файлы делятся на пакеты - небольшие кусочки размером от 1 до 64 КБ, - а затем отправляются по протоколу TCP/IP. Подробнее о том, как это работает, можно почитать в одной из <a>наших статей</a>.</p>
60
</ul><p>Когда вы вводите одну из них, клиент и сервер создают соединение для передачи данных. После этого файлы делятся на пакеты - небольшие кусочки размером от 1 до 64 КБ, - а затем отправляются по протоколу TCP/IP. Подробнее о том, как это работает, можно почитать в одной из <a>наших статей</a>.</p>
61
<p>В консоли это выглядит так:</p>
61
<p>В консоли это выглядит так:</p>
62
$ ls Desktop/ Documents/ logs.txt main.py style.css $ get logs.txt 227 Entering Passive Mode (172,16,1,10,123,45). 150 Opening BINARY mode data connection for logs.txt 226 Transfer complete.<p>Если передача пройдёт успешно, FTP-клиент выведет соответствующее сообщение. Но, если что-то пойдёт не так, передача данных остановится и на экране появится сообщение об ошибке - оно будет состоять из кода и короткого пояснения. Например, вот как это может выглядеть:</p>
62
$ ls Desktop/ Documents/ logs.txt main.py style.css $ get logs.txt 227 Entering Passive Mode (172,16,1,10,123,45). 150 Opening BINARY mode data connection for logs.txt 226 Transfer complete.<p>Если передача пройдёт успешно, FTP-клиент выведет соответствующее сообщение. Но, если что-то пойдёт не так, передача данных остановится и на экране появится сообщение об ошибке - оно будет состоять из кода и короткого пояснения. Например, вот как это может выглядеть:</p>
63
452: Ошибка при записи файла (недостаточно места)<p>Закрыть FTP-соединение можно следующей командой:</p>
63
452: Ошибка при записи файла (недостаточно места)<p>Закрыть FTP-соединение можно следующей командой:</p>
64
$ quit<p>FTP-клиентов существует немало. Некоторыми из них можно пользоваться бесплатно, а за другие надо будет заплатить. Давайте рассмотрим несколько самых известных сервисов.</p>
64
$ quit<p>FTP-клиентов существует немало. Некоторыми из них можно пользоваться бесплатно, а за другие надо будет заплатить. Давайте рассмотрим несколько самых известных сервисов.</p>
65
<p>Это популярный FTP-клиент, который позволяет удобно подключаться к удалённым серверам. У FileZilla простой интерфейс и понятное управление: освоить его сможет даже новичок.</p>
65
<p>Это популярный FTP-клиент, который позволяет удобно подключаться к удалённым серверам. У FileZilla простой интерфейс и понятное управление: освоить его сможет даже новичок.</p>
66
Интерфейс FileZilla<em>Скриншот: FileZilla</em><p>В FileZilla есть два главных окна: одно показывает файлы и папки на вашем компьютере, а другое - директорию удалённого FTP-сервера. Чтобы переместить файл с одного компьютера на другой, нужно просто перетащить его из левого окна в правое. Вот так просто это и работает.</p>
66
Интерфейс FileZilla<em>Скриншот: FileZilla</em><p>В FileZilla есть два главных окна: одно показывает файлы и папки на вашем компьютере, а другое - директорию удалённого FTP-сервера. Чтобы переместить файл с одного компьютера на другой, нужно просто перетащить его из левого окна в правое. Вот так просто это и работает.</p>
67
<p>В FileZilla есть и другие функции - например, она поддерживает синхронизацию данных в облаке и передачу файлов по VPN. Для защищённых соединений сервис использует сертификаты SSL и TLS.</p>
67
<p>В FileZilla есть и другие функции - например, она поддерживает синхронизацию данных в облаке и передачу файлов по VPN. Для защищённых соединений сервис использует сертификаты SSL и TLS.</p>
68
<p><strong>Где скачать:</strong>на <a>официальном сайте FileZilla</a>.</p>
68
<p><strong>Где скачать:</strong>на <a>официальном сайте FileZilla</a>.</p>
69
<p>Это ещё один FTP-клиент с открытым исходным кодом. Он бесплатный, но в нём есть всё, что нужно для нормальной работы протокола FTP.</p>
69
<p>Это ещё один FTP-клиент с открытым исходным кодом. Он бесплатный, но в нём есть всё, что нужно для нормальной работы протокола FTP.</p>
70
Интерфейс Cyberduck<em>Скриншот:<a>Cyberduck.io</a></em><p>При запуске клиента он попросит подключить его к FTP-серверу, после чего выведет его содержимое на экран. Чтобы загрузить файл, нужно просто перетащить его из папки на компьютере в Cyberduck.</p>
70
Интерфейс Cyberduck<em>Скриншот:<a>Cyberduck.io</a></em><p>При запуске клиента он попросит подключить его к FTP-серверу, после чего выведет его содержимое на экран. Чтобы загрузить файл, нужно просто перетащить его из папки на компьютере в Cyberduck.</p>
71
<p>Есть и продвинутые возможности - например, закладки для часто используемых серверов, загрузка в облако и интеграция с текстовыми редакторами. Ещё к Cyberduck можно подключить шифрование.</p>
71
<p>Есть и продвинутые возможности - например, закладки для часто используемых серверов, загрузка в облако и интеграция с текстовыми редакторами. Ещё к Cyberduck можно подключить шифрование.</p>
72
<p><strong>Где скачать:</strong>на <a>официальном сайте Cyberduck</a>.</p>
72
<p><strong>Где скачать:</strong>на <a>официальном сайте Cyberduck</a>.</p>
73
<p>Ещё один популярный FTP-клиент. Он очень похож на FileZilla, но главное отличие в том, что он платный. CuteFTP часто используют в коммерческой разработке, потому что он поддерживает продвинутые функции - например, планирование и синхронизацию файлов.</p>
73
<p>Ещё один популярный FTP-клиент. Он очень похож на FileZilla, но главное отличие в том, что он платный. CuteFTP часто используют в коммерческой разработке, потому что он поддерживает продвинутые функции - например, планирование и синхронизацию файлов.</p>
74
Интерфейс CuteFTP<em>Скриншот: CuteFTP</em><p>Управление CuteFTP почти не отличается от FileZilla. Чтобы перекинуть файл с одного компьютера на другой, нужно перетащить его из левого окна в правое. А если вы хотите зашифровать передачу, CuteFTP поддерживает сертификаты SSL и TLS.</p>
74
Интерфейс CuteFTP<em>Скриншот: CuteFTP</em><p>Управление CuteFTP почти не отличается от FileZilla. Чтобы перекинуть файл с одного компьютера на другой, нужно перетащить его из левого окна в правое. А если вы хотите зашифровать передачу, CuteFTP поддерживает сертификаты SSL и TLS.</p>
75
<p><strong>Где скачать:</strong>на <a>официальном сайте CuteFTP</a>.</p>
75
<p><strong>Где скачать:</strong>на <a>официальном сайте CuteFTP</a>.</p>
76
<p>Некоторые популярные сервисы для облачного хранения данных можно использовать как FTP-клиенты - например,<a>Google Drive</a>,<a>Dropbox</a>и <a>Microsoft OneDrive</a>. О том, как подключиться к FTP-серверу через эти клиенты, можно почитать в документации:<a>Google</a>,<a>Dropbox</a>,<a>Microsoft</a>.</p>
76
<p>Некоторые популярные сервисы для облачного хранения данных можно использовать как FTP-клиенты - например,<a>Google Drive</a>,<a>Dropbox</a>и <a>Microsoft OneDrive</a>. О том, как подключиться к FTP-серверу через эти клиенты, можно почитать в документации:<a>Google</a>,<a>Dropbox</a>,<a>Microsoft</a>.</p>
77
<p>Чтобы создать FTP-сервер на Windows, нужно иметь версию системы Professional, Educational или Enterprise. К сожалению, для домашней версии придётся устанавливать сторонние приложения. Если у вас стоит нужная версия операционной системы, остаётся выполнить несколько действий.</p>
77
<p>Чтобы создать FTP-сервер на Windows, нужно иметь версию системы Professional, Educational или Enterprise. К сожалению, для домашней версии придётся устанавливать сторонние приложения. Если у вас стоит нужная версия операционной системы, остаётся выполнить несколько действий.</p>
78
<p>Первым шагом открываем<strong>Панель управления</strong>:</p>
78
<p>Первым шагом открываем<strong>Панель управления</strong>:</p>
79
<em>Скриншот: Skillbox Media</em><p>Переходим во вкладку<strong>Программы → Программы и компоненты</strong>. Здесь выбираем пункт<strong>Включение или отключение компонентов Windows</strong>:</p>
79
<em>Скриншот: Skillbox Media</em><p>Переходим во вкладку<strong>Программы → Программы и компоненты</strong>. Здесь выбираем пункт<strong>Включение или отключение компонентов Windows</strong>:</p>
80
<em>Скриншот: Skillbox Media</em><p>Появится список, в котором нужно поставить галочку у пункта<strong>FTP-сервер</strong>, а также найти пункт<strong>Службы IIS → Средства управления веб-сайтом</strong>. Здесь поставим галочку у пункта<strong>Сценарии и средства управления IIS</strong>:</p>
80
<em>Скриншот: Skillbox Media</em><p>Появится список, в котором нужно поставить галочку у пункта<strong>FTP-сервер</strong>, а также найти пункт<strong>Службы IIS → Средства управления веб-сайтом</strong>. Здесь поставим галочку у пункта<strong>Сценарии и средства управления IIS</strong>:</p>
81
<em>Скриншот: Skillbox Media</em><p>Нажимаем<strong>ОК </strong>и дожидаемся, пока все настройки применятся к Windows.</p>
81
<em>Скриншот: Skillbox Media</em><p>Нажимаем<strong>ОК </strong>и дожидаемся, пока все настройки применятся к Windows.</p>
82
<p>Чтобы использовать сервер, нам понадобится папка, в которой мы будем хранить все файлы. Создадим её на <strong>диске</strong><strong>C</strong>и назовём ftp:</p>
82
<p>Чтобы использовать сервер, нам понадобится папка, в которой мы будем хранить все файлы. Создадим её на <strong>диске</strong><strong>C</strong>и назовём ftp:</p>
83
<em>Скриншот: Skillbox Media</em><p>Внутри неё можно создать пару файлов и папок. Они понадобятся, чтобы проверить правильность работы FTP-сервера:</p>
83
<em>Скриншот: Skillbox Media</em><p>Внутри неё можно создать пару файлов и папок. Они понадобятся, чтобы проверить правильность работы FTP-сервера:</p>
84
<em>Скриншот: Skillbox Media</em><p>Теперь нам нужно опубликовать наш сервер. Для этого открываем<strong>Диспетчер служб</strong> <strong>IIS:</strong></p>
84
<em>Скриншот: Skillbox Media</em><p>Теперь нам нужно опубликовать наш сервер. Для этого открываем<strong>Диспетчер служб</strong> <strong>IIS:</strong></p>
85
<em>Скриншот: Skillbox Media</em><p>В открывшемся окне находим слева пункт<strong>сайты</strong>и кликаем по нему правой кнопкой мыши. Выбираем<strong>Добавить FTP-сайт</strong>(тут главное не перепутать с веб-сайтом):</p>
85
<em>Скриншот: Skillbox Media</em><p>В открывшемся окне находим слева пункт<strong>сайты</strong>и кликаем по нему правой кнопкой мыши. Выбираем<strong>Добавить FTP-сайт</strong>(тут главное не перепутать с веб-сайтом):</p>
86
<em>Скриншот: Skillbox Media</em><p>Теперь нам нужно указать данные нашего сервера. В поле<strong>Имя FTP-сайта</strong>вписываем любое имя, какое захотите, а во вкладке<strong>Физический путь</strong>указываем путь до нашей папки ftp. Жмём<strong>Далее</strong>:</p>
86
<em>Скриншот: Skillbox Media</em><p>Теперь нам нужно указать данные нашего сервера. В поле<strong>Имя FTP-сайта</strong>вписываем любое имя, какое захотите, а во вкладке<strong>Физический путь</strong>указываем путь до нашей папки ftp. Жмём<strong>Далее</strong>:</p>
87
<em>Скриншот: Skillbox Media</em><p>Затем открывается окно с дополнительными настройками. В разделе<strong>Привязка</strong>ничего не меняем, а в <strong>SSL</strong>выбираем<strong>Без SSL</strong>.<strong></strong>В будущем вы можете попробовать настроить сервер с шифрованием, но сейчас нам надо разобраться, как запустить простой сервер.</p>
87
<em>Скриншот: Skillbox Media</em><p>Затем открывается окно с дополнительными настройками. В разделе<strong>Привязка</strong>ничего не меняем, а в <strong>SSL</strong>выбираем<strong>Без SSL</strong>.<strong></strong>В будущем вы можете попробовать настроить сервер с шифрованием, но сейчас нам надо разобраться, как запустить простой сервер.</p>
88
<em>Скриншот: Skillbox Media</em><p>В последнем окне с настройками нужно выбрать, каких пользователей пускать на сервер, и выдать им разрешения. Поставим галочки для анонимных и обычных пользователей, а ниже укажем, что они смогут читать и записывать данные:</p>
88
<em>Скриншот: Skillbox Media</em><p>В последнем окне с настройками нужно выбрать, каких пользователей пускать на сервер, и выдать им разрешения. Поставим галочки для анонимных и обычных пользователей, а ниже укажем, что они смогут читать и записывать данные:</p>
89
<em>Скриншот: Skillbox Media</em><p>Готово - наш сервер создан и опубликован. Увидеть его можно в списке всех серверов:</p>
89
<em>Скриншот: Skillbox Media</em><p>Готово - наш сервер создан и опубликован. Увидеть его можно в списке всех серверов:</p>
90
<em>Скриншот: Skillbox Media</em><p>Чтобы зайти на FTP-сервер, нужно сначала получить IP-адрес нашего компьютера. Для начала - открываем консоль (можно просто вбить в поиске cmd), а затем вводим команду ipconfig:</p>
90
<em>Скриншот: Skillbox Media</em><p>Чтобы зайти на FTP-сервер, нужно сначала получить IP-адрес нашего компьютера. Для начала - открываем консоль (можно просто вбить в поиске cmd), а затем вводим команду ipconfig:</p>
91
<em>Скриншот: Skillbox Media</em><p>Копируем адрес из графы<strong>IPv4-адрес</strong>. Далее открываем проводник или любой FTP-клиент и вводим в адресной строке ftp://[ваш IP-адрес]. Видим наши файлики:</p>
91
<em>Скриншот: Skillbox Media</em><p>Копируем адрес из графы<strong>IPv4-адрес</strong>. Далее открываем проводник или любой FTP-клиент и вводим в адресной строке ftp://[ваш IP-адрес]. Видим наши файлики:</p>
92
<em>Скриншот: Skillbox Media</em><p><strong>А можно ли открыть сервер, скажем, в Google Chrome?</strong></p>
92
<em>Скриншот: Skillbox Media</em><p><strong>А можно ли открыть сервер, скажем, в Google Chrome?</strong></p>
93
<p>Раньше FTP-ссылки открывались через браузер, но потом разработчики веб-клиентов стали один за другим убирать поддержку этого протокола - мол, слишком старый и небезопасный.</p>
93
<p>Раньше FTP-ссылки открывались через браузер, но потом разработчики веб-клиентов стали один за другим убирать поддержку этого протокола - мол, слишком старый и небезопасный.</p>
94
<p><strong>Решение:</strong>понизить версию браузера - например, в Chrome до 91-й версии FTP ещё можно было вернуть, поставив флажок в пункте Enable support for FTP URLs в chrome://flags.</p>
94
<p><strong>Решение:</strong>понизить версию браузера - например, в Chrome до 91-й версии FTP ещё можно было вернуть, поставив флажок в пункте Enable support for FTP URLs в chrome://flags.</p>
95
<p>По умолчанию в дистрибутивах Linux нет FTP-сервера, поэтому его нужно установить отдельно. Для этого вводим следующую команду для версий Linux Ubuntu и Debian:</p>
95
<p>По умолчанию в дистрибутивах Linux нет FTP-сервера, поэтому его нужно установить отдельно. Для этого вводим следующую команду для версий Linux Ubuntu и Debian:</p>
96
sudo apt-get install vsftpd<p>Для CentOS или Fedora команда будет немного отличаться:</p>
96
sudo apt-get install vsftpd<p>Для CentOS или Fedora команда будет немного отличаться:</p>
97
sudo yum install vsftpd<p>Далее нас попросят ввести пароль от учётной записи, а затем начнётся установка.</p>
97
sudo yum install vsftpd<p>Далее нас попросят ввести пароль от учётной записи, а затем начнётся установка.</p>
98
<p>После этого FTP-сервер сразу же запустится и к нему можно будет подключиться - например, через браузер. Чтобы это сделать, сначала узнаем IP-адрес нашего компьютера с помощью команды ifconfig (входит в пакет Net-tools, возможно, придётся дополнительно установить и его):</p>
98
<p>После этого FTP-сервер сразу же запустится и к нему можно будет подключиться - например, через браузер. Чтобы это сделать, сначала узнаем IP-адрес нашего компьютера с помощью команды ifconfig (входит в пакет Net-tools, возможно, придётся дополнительно установить и его):</p>
99
<em>Скриншот: Skillbox Media</em><p>Отсюда нам нужно взять адрес<strong>inet</strong>. В нашем случае он следующий: 192.168.0.47. У вас он может отличаться. Хотя на самом деле он необязателен - для FTP-сервера, запущенного на вашей локальной машине, можно использовать псевдоним localhost.</p>
99
<em>Скриншот: Skillbox Media</em><p>Отсюда нам нужно взять адрес<strong>inet</strong>. В нашем случае он следующий: 192.168.0.47. У вас он может отличаться. Хотя на самом деле он необязателен - для FTP-сервера, запущенного на вашей локальной машине, можно использовать псевдоним localhost.</p>
100
<p>Теперь запустим<strong>vsftpd</strong>следующей командой:</p>
100
<p>Теперь запустим<strong>vsftpd</strong>следующей командой:</p>
101
sudo service vsftpd start<p>Проверим, что наш ftp-сервер действительно работает - и сделаем это в стиле Linux, то есть воспользуемся командной строкой. Подключимся к серверу:</p>
101
sudo service vsftpd start<p>Проверим, что наш ftp-сервер действительно работает - и сделаем это в стиле Linux, то есть воспользуемся командной строкой. Подключимся к серверу:</p>
102
-
ftp localhost<p>Теперь надо ввести имя пользователя и пароль - они совпадают с именем пользователя и его паролем в вашей ОС. Логинимся и проверяем с помощью<a>команды</a>ls, в какой директории мы оказались и какие файлы и папки доступны на нашем FTP-сервере.</p>
102
+
ftp localhost<p>Теперь надо ввести имя пользователя и пароль - они совпадают с именем пользователя и его паролем в вашей ОС. Логи��имся и проверяем с помощью<a>команды</a>ls, в какой директории мы оказались и какие файлы и папки доступны на нашем FTP-сервере.</p>
103
<em>Скриншот: Skillbox Media</em><p>Теперь настроим анонимный режим - чтобы к нашему серверу можно было подключаться без логина и пароля. Для начала остановим<strong>vsftpd</strong>(кстати, чтобы выйти из режима ftp в командной строке, просто введите после >ftp команду quit):</p>
103
<em>Скриншот: Skillbox Media</em><p>Теперь настроим анонимный режим - чтобы к нашему серверу можно было подключаться без логина и пароля. Для начала остановим<strong>vsftpd</strong>(кстати, чтобы выйти из режима ftp в командной строке, просто введите после >ftp команду quit):</p>
104
sudo service vsftpd stop<p>Сервер остановлен. Дальше нужно изменить файл /etc/vsftpd.conf. Сделать это можно, например, с помощью текстового редактора Nano:</p>
104
sudo service vsftpd stop<p>Сервер остановлен. Дальше нужно изменить файл /etc/vsftpd.conf. Сделать это можно, например, с помощью текстового редактора Nano:</p>
105
sudo nano /etc/vsftpd.conf<p>В открывшемся файле прокручиваем стрелками на клавиатуре до строки anonymous_enable=NO:</p>
105
sudo nano /etc/vsftpd.conf<p>В открывшемся файле прокручиваем стрелками на клавиатуре до строки anonymous_enable=NO:</p>
106
<em>Скриншот: Skillbox Media</em><p>Управление редактором Nano происходит с помощью сочетания клавиш. Меняем слово NO на YES, затем используем сочетание клавиш<strong>Ctrl + O</strong>, а после - нажимаем<strong>Enter</strong>. Изменения внесены.</p>
106
<em>Скриншот: Skillbox Media</em><p>Управление редактором Nano происходит с помощью сочетания клавиш. Меняем слово NO на YES, затем используем сочетание клавиш<strong>Ctrl + O</strong>, а после - нажимаем<strong>Enter</strong>. Изменения внесены.</p>
107
<p>Чтобы выйти, пользуемся сочетанием клавиш<strong>Ctrl + X</strong>. Готово - теперь нам доступен анонимный режим. Чтобы снова запустить сервер, вводим следующую команду:</p>
107
<p>Чтобы выйти, пользуемся сочетанием клавиш<strong>Ctrl + X</strong>. Готово - теперь нам доступен анонимный режим. Чтобы снова запустить сервер, вводим следующую команду:</p>
108
sudo service vsftpd start<p>Снова заходим на ftp-сервер.</p>
108
sudo service vsftpd start<p>Снова заходим на ftp-сервер.</p>
109
ftp localhost<p>И… нас снова попросят залогиниться. Эй, а как же анонимность? А для этого есть специальный пользователь anonymous с пустым паролем. Так что логинимся и наслаждаемся новым сервером.</p>
109
ftp localhost<p>И… нас снова попросят залогиниться. Эй, а как же анонимность? А для этого есть специальный пользователь anonymous с пустым паролем. Так что логинимся и наслаждаемся новым сервером.</p>
110
<p>Давайте повторим, что мы узнали о протоколе FTP:</p>
110
<p>Давайте повторим, что мы узнали о протоколе FTP:</p>
111
<ul><li>FTP - это протокол передачи данных по сети. Его создали в 1971 году, чтобы быстро и удобно передавать файлы с одного компьютера на другой и управлять удалёнными серверами.</li>
111
<ul><li>FTP - это протокол передачи данных по сети. Его создали в 1971 году, чтобы быстро и удобно передавать файлы с одного компьютера на другой и управлять удалёнными серверами.</li>
112
<li>Для работы протоколу нужны два элемента - клиент и сервер. Клиент подключается к серверу с помощью логина и пароля, а затем посылает ему команды, чтобы скачивать или загружать файлы.</li>
112
<li>Для работы протоколу нужны два элемента - клиент и сервер. Клиент подключается к серверу с помощью логина и пароля, а затем посылает ему команды, чтобы скачивать или загружать файлы.</li>
113
<li>FTP передаёт данные в небезопасном режиме. Если кто-то подключится к вашей сети, он сможет вместе с вами скачивать файлы. Поэтому рекомендуется использовать безопасные расширения протокола - FTPS или SFTP.</li>
113
<li>FTP передаёт данные в небезопасном режиме. Если кто-то подключится к вашей сети, он сможет вместе с вами скачивать файлы. Поэтому рекомендуется использовать безопасные расширения протокола - FTPS или SFTP.</li>
114
</ul><a>Практический курс: "Профессия DevOps-инженер" Узнать о курсе</a>
114
</ul><a>Практический курс: "Профессия DevOps-инженер" Узнать о курсе</a>