FTP - это один из самых популярных способов передачи файлов на сервер серди веб-мастеров и пользователей. File Transfer Protocol - довольно давняя технология, которая применялась для передачи файлов между компьютерами еще на заре зарождения интернета. Но она до сих пор сохранила свою популярность из-за простоты и надежности.
В одной из предыдущих статей мы писали о том, как выполняется настройка FTP на Ubuntu 16.04, в этой статье рассмотрим как работает передача файлов по FTP, рассмотрим как передать файлы с помощью терминала или в графическом интерфейсе.
Содержание статьи
- Как работает FTP?
- Передача файлов по FTP через терминал
- Передача файлов по 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, затем посмотрим ее содержимое и выведем полный адрес текущей папки:
Перейдем в папку documents на удаленном сервере и посмотрим ее содержимое:
Чтобы скачать файл по FTP с удаленного сервера нам нужно использовать команду get. Просто передайте команде имя файла:
Теперь файл находится на нашей локальной машине. Мы можем выполнять команды на локальной машине если перед ними добавить символ "!". Например, посмотрим содержимое домашней папки чтобы убедиться, что файл был загружен:
Загрузка файлов по FTP на сервер выполняется с помощью команды put, причем, здесь, как и в предыдущей команде можно задать имя создаваемого файла:
Также можно управлять файлами на удаленном сервере. Переименуем файл doument1.pdf, так чтобы он назывался правильно:
Затем удалим document3:
Для завершения сеанса FTP наберите Bye:
Сейчас многие FTP серверы используют шифрование на основе ssl сертификатов. Это необходимая мера, которая позволяет обезопасить данные пользователей. Для подключения к таким серверам необходимо использовать утилиту sftp, в остальном же процесс и команды не отличаются.
Передача файлов по FTP в графическом интерфейсе
Передача файлов на FTP через графический интерфейс может выполняться с помощью различных графических клиентов. Один из самых популярных из них - это Filezilla. Его можно использовать в Linux, Windows или MacOS. Например, для установки в Ubuntu используйте такую команду:
sudo apt install filezilla
Вот так выглядит главное окно утилиты. Для подключения к серверу необходимо ввести данные аутентификации в поля, которые находятся в верхней части окна:
Затем нажмите кнопку "Быстрое соединение". Если программа удачно подключится к серверу, то вы увидите список файлов на правой панели. На левой панели находится ваша локальная файловая система:
Чтобы передать файл достаточно его перетащить в нужную часть окна:
В контекстном меню вы можете выполнять различные действия с файлами, удалять, перемещать, копировать, переименовывать и даже редактировать. К тому же программа поддерживает подключение к серверам FTP, которые используют шифрование.
Выводы
В этой статье мы рассмотрели передача файлов ftp, а также как пользоваться ftp в целом для передачи, загрузки и управления файлами. Это очень полезная служба, которая позволяет просто и без особых знаний передавать файлы между компьютерами. Если у вас остались вопросы, спрашивайте в комментариях!
Расскажите как подключиться к виртуалке по SSH
Из под windows: putty.org
Из под gnu/linux: shh любого вида...
Если вам нужно просто закинуть файлы воспользуйтесь filezilla в протокол выберите sftp.
В статье не отражён вопрос что именно передача файлов по незащищённому ftp, одна из основных проблем взлома сайтов. Так как пароль и логин доступа к сайту передаётся в открытом виде...
При этом использование ftp, совершенно не нужно, так как в состав sshd входит sftp/scp чего в принципе более чем достаточно. Также filezilla отлично с ними работает. Ну а самый лучший вариант это rsync.