Как узнать адрес ftp сервера linux

Обновлено: 03.07.2024

Настройка на примере Ubuntu Linux В данной статье будет показано, как выполняется настройка FTP сервера на Ubuntu Linux. Статья подходит пользователям Виртуального сервера Ubuntu. Для передачи файлов используется протокол FTP (File Transfer Protocol), поэтому мы будем настраивать ни что иное, как .

Выбор

На базе Linux/UNIX разработано очень много различных , а именно: proftpd, , , vsftpd. Какой из них выбрать?

Если вам нужно максимум настроек и максимальная гибкость, тогда нужно выбрать proftpd. Это настоящий монстр (в хорошем смысле этого слова) по сравнению с остальными.

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

Самый древний вариант — . Старый и «дырявый». По причине его почтенного возраста и не очень совершенной безопасности не рекомендуется к использованию. Оптимальным вариантом на сегодняшний день является сервер proftpd. Настройка FTP сервера Ubuntu такого типа требует знаний, но это наиболее гибко настраиваемое и при этом защищенное решение.

intro.jpg

Установка

Для установки proftpd нужно установить одноименный пакет, который имеется во всех дистрибутивах Linux. Введите команду:

1.jpg

Рис. 1. Установка

Конфигурационные файлы сервера хранятся в каталоге /etc/proftpd. Основной конфигурационный файл называется proftpd.conf и будет рассмотрен далее.

Управление и настройка FTP сервера Ubuntu выполняется с помощью команд:

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

Настройка

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

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

В глобальной секции можно ограничить доступ только пользователям вашей виртуальной сети, для этого потребуется дополнительная настройка FTP сервера Ubuntu. Это можно сделать путем ограничения операции LOGIN, например:

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

2.jpg

Рис. 2. виртуальной сети

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

Теперь поговорим об аутентификации пользователей. В большинстве случаев вам будет удобнее использовать для аутентификации саму систему:

Если немного (пусть даже около сотни), тогда в Linux настройка FTP сервера делается проще. При желании можно использовать аутентификацию PAM:

Когда же пользователей очень много (несколько сотен или тысяч), удобнее для аутентификации использовать MySQL. В этом случае учетные записи будут храниться не в /etc/passwd, а в отдельной таблице MySQL. Такой вариант настройки выходит за рамки этой статьи и будет непременно рассмотрен в следующих наших статьях. Следите за нашим блогом.

Ускорить аутентификацию может отключение следующих директив:

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

Директива TimeoutLogin задает, сколько времени можно потратить пользователю на аутентификацию. По умолчанию — 60 секунд. Представьте ситуацию. Пользователь подключается к серверу. Сервер просит его ввести логин. Пользователь его вводит. Затем пользователь долго и нудно вспоминает свой пароль. Если с момента подключения прошло 60 секунд, а пользователь так и не ввел пароль, то он отключается. Но кто сейчас вводит пароль вручную? Обычно он сохраняется в таком как Total Commander, Filezilla. Программа вводит пароль моментально, поэтому нечего ждать 60 секунд. Достаточно ожидания в 20 секунд — специально для пользователей, которые вводят пароль вручную. Думаю, 20 секунд вполне достаточно, чтобы ввести имя и пароль вручную:

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

Но если вы настраиваете , к которому будут подключаться пользователи Интернета, нужно помнить о NAT. Представьте, что есть другая локальная сеть с одним реальным (как правило, реальный есть только на шлюзе). Получается, что к вашему серверу могут подключиться несколько пользователей из этой сети и у всех них будет одинаковых , хотя сами пользователи будут разные. Обычно такие ситуации — редкие, поэтому можно ограничиться 2–3 клиентами. Но бывают исключения — у вас может быть очень популярный сервер, например, с музыкальным контентом или же вы знаете, что есть другая сеть, практически все пользователи которой будут подключаться к вашему серверу. Здесь решать вам, в Ubuntu установка FTP сервера позволяет настраивать и этот параметр. Пока установим ограничение на уровне 3 пользователей с одного :

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

С другой стороны, если выполняется Ubuntu установка FTP сервера , на котором будет 1000 пользователей, а вы разрешили одновременную работу всего двадцати пользователям, может возникнуть ситуация, когда пользователи не смогут войти на сервер. Тогда придется увеличивать это число. Насколько — нужно смотреть по ситуации и по количеству пользователей. Теоретически можно увеличить это значение до 10% от количества пользователей, например:

Об оперативной памяти можно особо не заботиться, proftpd довольно экономно ее использует. Каждый процесс proftpd занимает около 2.5 Мб, следовательно, 100 процессов займут всего 250 Мб. Самое страшное — это загрузка процессора. При закачке одного файла один процесс proftpd занимает от 10 до 30% процессорного времени одного ядра. Вот и считаем, что если даже один процесс расходует 10% процессорного времени одного ядра, всего 10 процессов «сожрут» одно ядро процессора. 40 одновременных процессов окажут ощутимое влияние даже на четырехядерный процессор. Вот поэтому в настройках по умолчанию и рекомендует не превышать значение 30 для этого параметра. Также довольно интересный параметр MaxClientsPerUser. Означает, сколько соединений может создать один пользователь. Чтобы один пользователь не залогинился 30 раз и не узурпировал все 30 процессов, рекомендую ограничить это значение до 1:

MaxClientsPerUser 1 «Only one connection at a time».

Это делается специально, чтобы процесс proftpd завершился как можно быстрее и не занимал драгоценное процессорное время.

Максимальная продолжительность сессии с момента аутентификации задается директивой TimeoutSession. По умолчанию эта настройка FTP сервера Ubuntu server составляет 1 час, чего вполне хватит даже для загрузки больших файлов. Например, при относительно низкой скорости загрузки в 1 Мбайт/с файл размером 1 Гб загрузится примерно за 1024 секунды. То есть за одну такую сессию пользователь сможет загрузить три таких файла. Думаю, этого более, чем достаточно.

Основные FTP команды в Linux

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

FTP соединение

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

Для начала фтп соединения достаточно ввести команду ftp <сервер> например:

После нажатия клавиши enter вывод команды будет следующим:

Другой способ для соединения - это запуск ftp из консоли, а после этого соединение с ftp-сервером с помощью команды open :

Кроме того, возможно соединиться и по ip:

Далее необходимо ввести логин и пароль ftp-соединения.

Команды для навигации

Итак, перейдем к командам для навигации и перехода по каталогам ftp-сервера:

pwd - команда покажет текущую директорию на ftp-сервере:

ls - команда покажет список файлов и каталогов в текущей директории:

cd <имя директории> – команда для перехода в нужную директорию:

Проверяем командой pwd :

mkdir <имя директории> - создание новой директории (каталога):

rmdir <имя директории> - удаление директории (каталога):

Удаление файлов на ftp сервере

delete <имя файла> - удаляет файл на удаленном ftp сервере:

Скачивание файлов с ftp

get - скачать файл на локальную машину. get fileName или get fileName newFileName

Скачиваем file.zip на локальную машину как file2.zip:

С помощью команды get с удаленного ftp сервера файлы копируются в текущую локальную директорию. Чтобы изменить текущую локальную директорию нужно использовать команду lcd :

lcd <путь> – изменить текущую директорию на локальной машине:

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

Скачивание каждого файла необходимо подтверждать (да / нет) y/n .

Еще один вариант скачивания mget :

Загрузка файлов на ftp сервер

put <имяфайла> - команда для загрузки одного файла на ftp сервер:

Для загрузки нескольких файлов сразу можно использовать команду mput :

Загрузку каждого файла необходимо подтверждать y / n (да / нет).

Еще один вариант команды mput :

Если на фтп загружаются файлы большого размера, то неплохо было бы наблюдать за ходом загрузки. Для этого можно использоваться команды hash и tick .

tick - команда будет отображать счетчик байтов:

Вот и весь базовый набор команд для работы с ftp в консоле. Для просмотра списка доступных команл на данном FTP сервере можно использовать команду help :

Также, можно получить короткую справку по каждой команде help <команда> :

И в завершение, две команды, которые выше quit или bye для закрытия ftp-сессии и выхода:

Подробную информацию с описанием команд можно получить с помощью man ftp в командной строке:

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

2. Соглашения

Далее в этой статье мы будем говорить просто об FTP-сервере, подразумевая vsFTPd.

3. Что такое FTP

Для тех, кто не знаком с FTP, ниже представлено краткое описание его возможностей. FTP расшифровывается как File Transfer Protocol. Название подразумевает, что этот протокол используется для передачи файлов или директорий с одного хоста на другой по сети - как локальной, так и через интернет.
Главные возможности vsFTPd: настройки для виртуальных IP, виртуальные пользователи, сетевые или автономные операции, большой спектр пользовательских настроек, регулирования пропускной способности канала, настройка лимитов по IP, поддержка IPv6 и шифрования (с помощью SSL).

4. Установка FTP-сервера в Ubuntu

Как всегда в Ubuntu и системах на ее основе, установка FTP-сервера выполняется одной командой. Откройте терминал и введите:

После выполнения этой команды сервер будет установлен и запущен.

5. Нормальный и автономный режимы работы FTP

5.1. Автономный режим

По умолчанию vsftpd запускается в автономном режиме, в котором запускаемая на сервере служба использует собственный стартовый скрипт, называемый демоном. В случае vsftpd это /etc/init.d/vsftpd. Данный автономный демон в момент старта службы FTP берет управление нею на себя. Демон vsftpd предоставляет администратору несколько команд для управления FTP-сервером vsftpd:

start или stop - используется для запуска или остановки ftp-сервера.
status - выводит подробную информацию о текущем состоянии вашего FTP-сервера.
restart - это альтернатива последовательности из остановки и запуска сервера. Если сервер уже остановлен, команда restart запустит его.
reload - эта команда позволяет перезагрузить и применить все новые настройки. Ее отличие от restart заключается в том, что применение новых настроек производится без остановки сервера.
Для запуска, перезагрузки и применения новых настроек используется утилита service:

Такой синтаксис применяется для выполнения всех команд.

5.2. Нормальный режим

Другой подход к запуску vsftpd - это нормальный режим, в котором за работу службы отвечает суперсервер xinetd. Для запуска сервера vsftpd в нормальном режиме необходимо сначала установить суперсервер xinetd:

Приведенная выше команда устанавливает и запускает суперсервер xinetd. В случае, если он у вас уже установлен, эта команда не нужна. Далее, создайте файл vsftpd в директории /etc/xinetd.d/ со следующим содержимым:

В то же время вы можете изменять любые опции, чтобы настроить суперсервер в соответствии со своими требованиями.
Опции, на которые стоит обратить внимание:
server - введите в командной строке "$ which vsftpd", чтобы узнать правильный путь.
no_access - все хосты с IP-адресами, указанными в этой директиве, будут блокированы.
banner_fail - здесь можно указать путь к текстовому файлу, содержимое которого будет показано для любых блокированных IP-адресов.

Далее нам необходимо отредактировать конфигурационный файл FTP-сервера /etc/vsftpd.conf, заменив строку

Эта директива даст команду FTP-серверу не открывать никаких портов, полностью перепоручив их суперсерверу xinetd. Перед тем, как запустить сервер в нормальном режиме, убедитесь, что демон vsftpd отключен:

Теперь можно запустить FTP-сервер в нормальном режиме с помощью команды:

Чтобы убедиться в нормальной работе FTP-сервера, протестируйте и откройте порт 21 с помощью команды netstat:

6. Создание первого подключения по FTP

Независимо от того, запустили ли вы FTP-сервер в автономном, или в нормальном режиме, вы можете создать первое локальное ftp-подключение. По умолчанию vsftpd разрешает автономный доступ, поэтому при создании нашего первого тестового подключения в качестве имени пользователя мы будем использовать anonymous. Для этого просто введите команду ftp с аргументом localhost:

Успешное подключение подтверждает, что FTP-сервер в локальной системе настроен правильно. Но перед тем, как перейти к более тонким настройкам, необходимо протестировать FTP-сервер и с нескольких удаленных хостов.

7. Настройка FTP-сервера

В этом разделе мы рассмотрим некоторые базовые примеры опций конфигурации vsftpd.

Примечание: при внесении любых изменений в настройки FTP-сервера не забудьте воспользоваться командой restart/reload, чтобы активировать их.

7.1. Настройка пользовательского доступа

vsftpd позволяет оставить только анонимный доступ, либо позволить пользователям, прописанным в файле /etc/passwd или в соответствующем списке, аутентифицироваться.

7.1.1. Анонимный доступ к FTP

По умолчанию FTP-сервер vsftpd настроен только для анонимного доступа. Если это то, что вам нужно, вы можете облегчить жизнь анонимным пользователям, отключив необходимость ввода пароля. Наиболее безопасный вариант для FTP-сервера - не разрешать пользователям идентифицироваться с паролем в виде простого текста. Для отключения необходимости ввода пароля анонимными пользователями необходимо в конфигурационном файле /etc/vsftpd.conf установить значение "NO" для директивы no_anon_password:

7.1.2. Доступ локальных пользователей по FTP

Теперь ваш сервер должен запрещать любой доступ за исключением пользователя anonymous. Чтобы позволить авторизоваться всем пользователям, указанным в файле /etc/passwd, необходимо изменить значение директивы local_enable в файле /etc/vsftpd.conf. Ее значение по умолчанию - "NO".

Теперь любой пользователь, указанный в файле /etc/passwd, сможет авторизоваться, используя свой пароль.

7.1.3. Список доступа пользователей

Сначала создадим список доступа, используемый сервером vsFTPd. Обычно вы можете задать его в директории /etc/. Создайте файл с произвольным именем и перечислите в нем всех пользователей, которым вы хотите разрешить или запретить доступ. Например, давайте создадим новый список с единственным пользователем "lubos":

Далее, определим новый список пользователей в конфиграционном файле /etc/vsftpd.conf и активируем директиву userlist_enable:

7.2. Смена номера порта

По умолчанию любой FTP-сервер слушает стандартный порт 21 для аутентификации пользователя и порт 20 для передачи данных. vsFTPd не является исключением. Для смены прослушиваемого по умолчанию порта используется директива listen_port в файле /etc/vsftpd.conf. Например, для смены порта на 2121 просто добавьте следующую директиву в ваш конфигурационный файл:

После чего перезапустите FTP-сервер.

Однако это применимо к только к vsFPTd, работающему в автономном режиме. В случае, если ваш FTP-сервер запущен в нормальном режиме с с использованием суперсервера xinetd, и вы хотите изменить порт по умолчанию на 2121, найдите в файле /etc/services строку FTP и замените 21 на 2121, после чего перезапустите xinetd.

Теперь, как вы можете убедиться, FTP-сервер слушает порт 2121:

7.3. Другие опции конфигурации

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

max_clients - эта опция задает максимальное количество пользователей, одновременно использующих FTP-сервер. 0 означает неограниченное количество пользователей.
max_per_ip - задает максимальное количество пользователей с одного IP-адреса.
download_enable - если ее значение - NO, любой запрос на скачивание будет отклонен.

8. Заключение

На сегодняшний день vsFTPd имеет 125 опций конфигурации. Это делает его очень гибким в настройке и в то же время простым в использовании и администрировании. Хотите ли вы использовать его дома, в пределах корпоративной сети, или на удаленном сервере, вы можете быть уверены, что vsFTPd полностью удовлетворит ваши нужды. Кроме того, vsFTPd позволяет активировать sftp, но этот вопрос мы обсудим в следующий раз.

Как подключиться к FTP-серверу

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

В Windows, Linux и macOS подключиться к FTP-серверу можно с помощью встроенных средств и сторонних программ разного назначения. Полноценная работа со всеми средствами возможна только через специальные приложения, называемые FTP-клиентами. Теперь подробнее расскажем обо всех этих способах.

Данные для доступа к FTP-серверу

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

Данные для FTP в электронном письме

Теперь о том, какие данные необходимо иметь под рукой:

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


Как подключится к FTP через Проводник Windows

Сначала рассмотрим, как подключиться к FTP-серверу через программу «Проводник» в Windows 10. Здесь ничего дополнительно устанавливать не надо, просто открываем системный файловый менеджер. В левой панели находим значок «Этот компьютер» и жмем по нему правой кнопкой мыши для вывода контекстного меню. В списке выбираем элемент «Добавить новый элемент в сетевое окружение».

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

В результате откроется окно мастера добавления сетевого расположения. В начальном окне просто нажимаем «Далее».

Как добавить сетевое расположение через Проводник Windows

Следом надо выбрать его дальнейшее местоположение, но в этом окне нам доступен только один вариант. Для продолжения снова нажимаем на кнопку «Далее».

Выбор в меню типа сетевого расположения

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

Набор сетевого адреса или ссылки на FTP-ресурс

Теперь понадобится ввести в поле имя пользователя. Пароль заранее вводить не нужно, он будет запрашиваться только при подключении. Если на вашем хосте есть такая возможность, вход можно осуществить анонимно, отметив соответствующую галочку.

Ввод данных для входа в интерфейс FTP сервера

В самом конце даем название новому сетевому окружению.

Ввод наименования для создаваемого ярлыка

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

Подтверждение данных и завершение настройки соединения с FTP

Новое подключение теперь находится в «Сетевых расположениях» в разделе «Этот компьютер».

Новое сетевое расположение для соединения с FTP-хостом

Ввод имени пользователя и пароля для подключения

Если все данные введены успешно, откроется папка сервера. Можно приступать к работе.

Читайте также: