Протокол ftp

    Аббревиатура FTP происходит от английского F ile T ransfer P rotocol (протокол передачи файлов) - протокол прикладного уровня для обмена файлами по транспортному протоколу TCP/IP между двумя компьютерами, FTP-клиентом и FTP-сервером. Это один их старейших, и тем не менее, по-прежнему активно используемый протокол.

Протокол FTP предназначен для решения следующих задач:

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

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

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

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

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

    Реалии же сегодняшнего дня таковы, что подобное TCP - соединение от сервера к клиенту в подавляющем большинстве случаев невозможно, или очень непросто реализовать по причине того, что в большинстве случаев, для подключения к Интернет используется технология с трансляцией сетевых адресов NAT (Network Address Translation) , когда клиент не имеет сетевого интерфейса, доступного для создания прямого TCP- соединения из Интернет. Типовая схема стандартного подключения к Интернет выглядит следующим образом:

    Подключение к Интернет выполняется через специальное устройство - Router (маршрутизатор с функцией NAT), имеющее, как минимум два сетевых порта - один подключенный к сети провайдера, имеющий сетевой интерфейс с маршрутизируемым IP-адресом (так называемый, "белый IP"), например 212.248.22.144, и порт с сетевым интерфейсом для подключения устройств локальной сети с приватным, немаршрутизируемым IP-адресом, например 192.168.1.1 ("серый IP"). При создании соединений от сетевых устройств локальной сети к внешним сетевым узлам, IP-пакеты направляются на маршрутизатор, который выполняет трансляцию адресов и портов таким образом, чтобы, адресом отправителя стал его белый IP-адрес . Результаты трансляции сохраняются и при получении ответного пакета, выполняется обратное преобразование адреса. Таким образом, маршрутизатор обеспечивает пересылку TCP/IP - пакетов от любых устройств локальной сети во внешние сети и обратную пересылку полученных ответных пакетов. Но в тех случаях, когда на вход сетевого интерфейса, подключенного к сети провайдера, принимается пакет, который не имеет отношения к ответным TCP-пакетам, возможны следующие варианты реакции программного обеспечения маршрутизатора:

    Пакет игнорируется, так как нет сетевой службы, которая могла бы его обработать.

    Пакет принимается и обрабатывается сетевой службой самого маршрутизатора, если такая служба существует и ожидает ходящее соединение ("слушает") порт, номер которого указан в принятом пакете.

    Пакет пересылается серверу в локальной сети, ожидающему данный вид входящих соединений в соответствии с правилами перенаправления портов (port mapping) заданными настройками маршрутизатора.

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

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

    PASSV - команда на переключение в пассивный режим, передаваемая FTP - клиентом FTP-серверу

    227 Entering Passive Mode (212,248,22,144,195,89) - ответ FTP-сервера, где 227 - код ответа, текстовое сообщение о переходе в пассивный режим и в скобках IP-адрес и номер порта, которые будут использованы для создания канала передачи данных. Адрес и номер порта отображаются в виде десятичных чисел, разделяемых запятой. Первые 4 числа - это IP-адрес (212.248.22.144), оставшиеся 2 числа задают номер порта, который вычисляется по формуле - первое число умножается на 256 и к результату прибавляется второе число, в данном примере номер порта 195*256 +89 = 50017

    PORT IP адрес клиента номер порта - клиент передает команду, чтобы организовать сеанс в активном режиме. IP-адрес и номер порта задаются в том же формате, как и в предыдущем примере, например PORT 212.248.22.144,195,89 Для организации передачи данных сервер сам подключается к клиенту на указанный порт.

    Установка и настройка FileZilla FTP Server.

    Скачать инсталляционный пакет FileZilla Server для вашей версии операционной системы можно на

    Установка сервера выполняется стандартным образом, за исключением пункта с выбором настроек панели управления сервером :

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

    После завершения установки откроется окно приглашения для подключения к серверу:

    После ввода IP-адреса, номера порта и пароля (если вы задавали их в процессе установки) открывается панель управления FileZilla Server:

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

    File - режимы работы панели управления FTP-сервером. Содержит подпункты

    - Connect to Server - подключиться к серверу
    - Disconnect - отключиться от сервера
    - Quit - завершение работы панели управления.

    Server - управление FTP-сервером. Содержит подпункты:

    - Active - запустить/остановить FTP-сервер. При установленной галочке FTP-сервер запущен, при снятой - остановлен.
    - Lock - запретить/разрешить подключения к серверу. При установленной галочке новые подключения к серверу запрещены.

    Edit - редактирование настроек. Подпункты:

    - Settings - основные настройки сервера.
    - Users - настройки пользователей FTP-сервера
    - Groups - настройки групп пользователей.

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

  • сервер находится за NAT, имеет приватный IP-адрес, но должен быть доступен из Интернет, поддерживает пассивный режим и использует нестандартные TCP порты. Использование нестандартных портов позволяет уменьшить вероятность хакерских атак, и кроме того, некоторые провайдеры используют фильтрацию трафика и блокируют стандартные 20 и 21 порты.
  • пользователи имеют возможность скачивать с сервера, закачивать на сервер, удалять и переименовывать файлы и папки.
  • в случае использования динамического IP-адреса, требуется обеспечить доступность сервера по DNS-имени.
  • сервер будет функционировать на рабочей станции в среде ОС Windows 7 / Windows 8.
  • Другими словами, нужно создать доступный из Интернет FTP-сервер для обмена файлами между пользователями, разумеется бесплатно. Вполне понятно, что кроме создания необходимой конфигурации самого FTP - сервера, потребуется изменение некоторых настроек маршрутизатора, параметров брандмауэра Windows, решение проблемы динамического IP-адреса, чтобы сервер был доступен по имени, независимо от смены IP-адреса.

    Решение проблемы динамического IP-адреса.

        Данная проблема не требует решения в тех случаях, когда при подключении к интернет используется статический IP - адрес, или же динамический, но в соответствии с настройками провайдера, практически всегда один и тот же. В противном случае, можно воспользоваться технологией, получившей название Динамический DNS ( DDNS ) . Данная технология, позволяет почти в реальном масштабе времени обновлять информацию об IP-адресе на DNS-сервере, и получать доступ к маршрутизатору (и службам за ним) по зарегистрированному имени, не обращая внимание на изменение динамического IP.

    Для бесплатной реализации данной технологии потребуется регистрация на каком-нибудь сервисе динамического DNS и установка клиентского программного обеспечения для обновления записи DNS в случае изменения соответствующего IP-адреса. Поддержку динамического DNS, как правило, осуществляют производители сетевого оборудования (D-Link, Zyxel и др.), некоторые хостинговые и специализированные компании, как например, широко известная DynDNS . Однако, после того, как во второй половине 2014 года, все услуги, которые предоставлялись зарегистрированным пользователям бесплатно для некоммерческого использования, стали платными, наиболее популярным решением, пожалуй, стало использование динамического DNS на базе сервиса No-IP.org , который в бесплатном режиме предоставляет услуги по поддержке 2-х узлов с динамическим IP. Для бесплатного использования сервиса потребуется регистрация, и периодическое (приблизительно 1 раз в месяц) посещение сайта для обновления информации об используемых узлах с динамическим IP. Эсли пропустить обновление данных об узле, то услуга приостанавливается, и соответственно, подключиться к узлу по имени станет невозможно. При платном использовании сервиса обновление не требуется.

        Практически все современные маршрутизаторы (модемы) имеют встроенную поддержку динамического DNS-клиента. Его настройка обычно очень простая, - заполняются поля с именем пользователя и паролем, а также с именем узла, полученные при регистрации на сервисе DDNS . Пример для Zyxel P660RU2

        Использование клиента DDNS, встроенного в маршрутизатор/модем предпочтительнее по сравнению с утилитой обновления данных DNS, работающей в среде ОС, поскольку позволяет реализовать дополнительные возможности, как например, управление маршрутизатором через Интернет при выключенном компьютере и удаленное включение электропитания компьютеров за NAT по технологии Wake On Lan .

    В тех же случаях, когда нет возможности использования встроенного клиента DDNS, придется обходиться прикладным программным обеспечением - программой-клиентом поддержки динамического DNS. Такая программа периодически подключается к серверу, поддерживающему зарегистрированное доменное имя, связанное с маршрутизатором, через который выполняется подключение к Интернет, и вызывает процедуру обновления IP, при его изменении. Настройки сервера выполнены таким образом, что сопоставление DNS-имени и IP-адреса интернет-подключения выполняется за очень короткое время, и динамический характер адреса практически никак не сказывается на работоспособности сервисов, связанных с DNS-именем.

    Порядок действий следующий:

  • Идем на сайт No-IP.org . Для работы с уже имеющейся или новой учетной записью используется кнопка "Sign In" (в верхней правой части страницы).

  • Создаем, если она еще не создана, свою учетную запись - жмем "Create Account" . Форма регистрации периодически меняется, но обязательными являются ввод желаемого имени пользователя, пароля и вашего E-mail. На указанный при регистрации e-mail приходит письмо с ссылкой для подтверждения регистрации. При регистрации выбираем бесплатный доступ - жмем кнопку Free Sign Up после заполнения всех требуемых полей формы.
  • После успешной регистрации входим на сайт и добавляем запись для своего узла - жмем кнопку "Add Hosts"

    Фактически, необходимо ввести только выбранное имя узла, в данном случае - myhost8.ddns.net . Остальные параметры менять не нужно. Затем необходимо скачать и установить специальное программное обеспечение - Dynamic Update Client (DUC), ссылка на который размещена на главной странице сайта. После завершения установки DUC выполнится его запуск и откроется окно авторизации, где нужно ввести имя пользователя или E-mail и пароль, полученные при регистрации на сайте no-ip.org. Затем нажать кнопку Edit Hosta и поставить галочку напротив созданного ранее имени узла (myhost8.ddns.net) . Теперь, выбранному имени узла будет постоянно соответствовать "белый IP-адрес" вашего подключения к Интернет. При возникновении проблем с обновлением IP-адреса, проверьте, не блокируется ли сетевая активность клиента DUC брандмауэром.

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

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

    Настройки FileZilla Server выполняются через меню "Edit" -"Settings"

    Окно General Settings предназначено для общих настроек FTP-сервера.

    В поле "Listen on this port" можно указать номер порта для входящих TCP-соединений. По умолчанию в данном поле установлено значение 21 , и для использования нестандартного номера нужно указать выбранное значение, например - 12321 . Использование нестандартного TCP-порта имеет некоторое неудобство, поскольку требует обязательное указание его значения при создании сеанса:

    Если сервер планируется использовать как с доступом из Интернет, так и в локальной сети, есть смысл оставить стандартное значение 21, а нестандартный номер порта использовать для подключений из Интернет, настроив перенаправление пакетов, пришедших на порт 12321 маршрутизатора, на порт 21 FTP-сервера в локальной сети. При такой настройке, для FTP-сессий внутри локальной сети указывать номер порта не нужно.

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

    Welcome Message - текст, который передается клиенту при подключении.

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

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

    Раздел Passive mode settings служит для настроек пассивного режима FTP и потребует изменения практически всех параметров, принятых по умолчанию.

    Номера портов, которые будут использоваться для передачи данных в пассивном режиме, нужно задавать вручную, поскольку потребуется настройка маршрутизатора для перенаправления их на слушаемый сервером сетевой интерфейс. Поэтому нужно установить галочку на разрешение режима "Use custom port range" и задать диапазон - например от 50000 до 50020 . Количество портов, слушаемых сервером, определяет предельное число одновременных сеансов передачи данных.

    Подраздел IPv4 specific определяет IP - адрес, который будет отправляться сервером в ответ на команду PASV. В данном случае, это должен быть не собственный IP сервера 192.168.1.3, а "белый IP" нашего подключения к Интернет. Поэтому нужно установить режим "Use the following IP" и вместо IP-адреса ввести имя, полученное при регистрации на сервисе динамического DNS - myhost8.ddns.net . В качестве альтернативы, можно использовать режим определения внешнего IP-адреса средствами проекта FileZilla, включив. "Retrieve external IP Address from:". Данный вариант можно выбрать в тех случаях, когда нет возможности использовать средство динамического DNS. Если предполагается использование FTP - сервера в своей локальной сети, нужно установить режим "Don"t use external IP for local connections" (не использовать внешний IP-адрес для соединений внутри локальной сети)

    Остальные настройки сервера можно оставить без изменений или, при необходимости, выполнить позже: Security settings - настройки безопасности. По умолчанию - запрещены соединения, которые могут быть использованы для реализации DDoS-атак

    Miscellaneous - настройки размеров буферов и прочих параметров журналов и некоторых команд FTP.

    Admin Interface settings - настройки панели управления сервером. Можно указать сетевой интерфейс, номер слушаемого порта, IP-адреса, с которых разрешено подключение к панели управления и пароль.

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

    Speed Limit - настройки ограничения скорости передачи данных. По умолчанию - без ограничений.

    Filetransfer compression - настройки сжатия файлов при передаче. По умолчанию - без сжатия.

    SSL/TLS settings включение режима шифрования передаваемых данных. По умолчанию - без шифрования.

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

    Настройка перенаправления портов и брандмауэра

    Для того, чтобы FTP-сервер был доступен из Интернет, необходимо выполнить настройки маршрутизатора таким образом, чтобы входящие соединения, пришедшие на определенные TCP-порты внешнего интерфейса, перенаправлялись на TCP - порты, слушаемые FTP-сервером внутренней сети. Для различных моделей маршрутизаторов настройки могут отличаться терминологией, но смысл их один и то же - принятый на внешнем (WAN) интерфейсе TCP-пакет с определенным номером порта переслать в локальную сеть на нужный IP-адрес и порт. Пример настроек маршрутизатора D-Link DIR-320NRU для перенаправления портов, используемых для пассивного режима FTP:

    Пакеты, принятые на интерфейсе с "белым IP" и имеющие номера портов в диапазоне 50000-50020 будут перенаправляться на IP-адрес, задаваемый полем "Внутренний IP" (в нашем случае - 192.168.1.3). Аналогичным образом создается перенаправление для порта 50021, если вы изменили номер стандартного порта, или на порт 21 FTP-сервера, если вы оставили его без измененния.

    После применения данных настроек, FTP-сервер будет доступен по URL ftp://myhost8.ddns.net:50021 или, для соединения внутри локальной сети:

    ftp://192.168.1.3 - если вы не изменяли стантартный номер порта (21) в настройках FTP-сервера.

    ftp://192.168.1.3:50021 - если используется нестандартный номер порта.

    Вместо IP-адреса можно использовать имя компьютера, если оно может быть разрешено в IP-адрес

    ftp://comp1

    ftp://comp1.mydomain.ru

    Диагностика проблем

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

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

    telnet localhost 21 - если используется стандартный номер порта.

    telnet localhost 50021 - если был изменен стандартный номер порта.

    При выполнении данной команды происходит подключение к FTP-серверу по петлевому интерфейсу и в окне telnet должно отобразиться приглашение сервера (Welcome Message). Если этого не происходит, возможно, сервер остановлен, имеет место конфликт портов, или слушается не порт 21 (50021) . Для диагностики можно использовать команду netstat :

    netstat –nab

    Параметры командной строки означают:

    n - использовать числовые номера портов и адреса IP

    a - отображать все соединения и слушаемые порты

    b - отображать имена программ, участвующих в создании соединений.

    Пример отображаемых результатов выполнения команды:

    Активные подключения

    Имя     Локальный адрес     Внешний адрес     Состояние
    TCP         0.0.0.0:21                 0.0.0.0:0                 LISTENING
    TCP         0.0.0.0:135               0.0.0.0:0                 LISTENING
    RpcSs

    В колонке Локальный адрес имеется значение 0.0.0.0:21 , которое говорит о том, что программа с именем FileZilla Server.exe слушает (состояние LISTENING ) TCP порт с номером 21 на всех сетевых интерфейсах. Если в настройках FTP-сервера был указан конкретный интерфейс и другой номер порта, то это значение будет содержать IP:порт , например – 192.168.1.3:50021

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

    netstat -nab | more

    Или использовать поиск результатов по номеру порта: netstat -nab | find ":21"

    Если сервер недоступен на непетлевом интерфейсе, и доступен на петлевом - нужно разбираться с настройками брандмауэра.

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

    Настройка пользователей и групп выполняется через меню "Edit" - "Users" ("Groups"). Группы создавать необязательно, но иногда удобно, для тех случаев, когда имеется большое количество пользователей, и их права по отношению к FTP-серверу различаются. Настройки и групп и пользователей практически идентичны:

    В данном примере отображен результат добавления пользователя FTP-сервера с именем user1 имеющего полные права на запись, чтение, удаление и слияние файлов, а также на просмотр содержимого, удаление и создание подкаталогов в каталоге C:\ftp\public

    На странице General выполняется добавление, удаление и изменение свойств пользователей.
    На странице Shared Folders выполняются настройки, определяющие перечень каталогов файловой системы, которые будут использоваться FTP-сервером для предоставления доступа к ним по протоколу FTP. Каждому пользователю или группе пользователей может предоставлен свой каталог с определенными правами по отношению к его содержимому.
    На странице Speed limits можно задавать ограничения по скорости обмена данными.
    На странице IP Filter можно задать правила фильтрации для IP - адреса пользователя, указав адреса с которых запрещено или разрешено подключение к серверу.

    Список основных команд FTP

    ABOR - Прервать передачу файла
    CDUP - Сменить директорию на вышестоящую.
    CWD - Сменить текущую директорию.
    DELE - Удалить файл (DELE filename).
    HELP - Выводит список команд принимаемых сервером.
    LIST - Возвращает список файлов директории. Список передается через соединение данных (20 порт).
    MDTM - Возвращает время модификации файла.
    MKD - Создать директорию.
    NLST - Возвращает список файлов директории в более кратком формате чем LIST. Список передается через соединение данных (20 порт).
    NOOP - Пустая операция
    PASV - Войти в пассивный режим. Сервер вернет адрес и порт к которому нужно подключиться чтобы забрать данные. Передача начнется при введении команд RETR, LIST и т.п.
    PORT - Войти в активный режим. Например PORT 12,34,45,56,78,89. В отличие от пассивного режима для передачи данных сервер сам подключается к клиенту.
    PWD - Возвращает текущую директорию сервера.
    QUIT - Отключиться
    REIN - Реинициализировать подключение
    RETR - Скачать файл. Перед RETR должна быть команда PASV или PORT.
    RMD - Удалить директорию
    RNFR и RNTO - Переименовать файл. RNFR - что переименовывать, RNTO - во что.
    SIZE - Возвращает размер файла
    STOR - Закачать файл на сервер. Перед STOR должна быть команда PASV или PORT.
    SYST - Возвращает тип системы(UNIX, WIN,)
    TYPE - Установить тип передачи файла(A- текстовый ASCII, I - двоичный)
    USER - Имя пользователя для входа на сервер

    Пример FTP-сессии

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

    После подключения, сервер передает клиенту сведения о себе:
    220-FileZilla Server version 0.9.45 beta
    220-written by Tim Kosse ([email protected])
    220 Please visit http://sourceforge.net/projects/filezilla/
    Клиент передает имя пользователя:
    USER user1
    Сервер запрашивает ввод пароля:
    331 Password required for user1
    Клиент передает пустой пароль:
    PASS
    Сервер проверяет учетную запись пользователя и сообщает о начале сеанса:
    230 Logged on
    Клиент запрашивает тип операционной системы на сервере:
    SYST
    Сервер сообщает, что тип Unix , эмулируемый Filezilla-сервером:
    215 UNIX emulated by FileZilla
    Клиент запрашивает перечень параметров, поддерживаемых сервером:
    FEAT
    Сервер отвечает перечнем поддерживаемых параметров:
    211-Features:
    MDTM
    REST STREAM
    SIZE
    MLST type*;size*;modify*;
    MLSD
    UTF8
    CLNT
    MFMT
    211 End

    Клиент запрашивает текущий каталог сервера:
    PWD
    Сервер сообщает, что текущий каталог – корневой ("/"):
    257 "/" is current directory.
    Клиент сообщает, что будет передавать двоичные данные:
    TYPE I

    Сервер подтверждает тип передаваемых данных:
    200 Type set to I
    Клиент сообщает, что будет использовать пассивный FTP-режим:
    PASV
    Сервер сообщает о переходе в пассивный режим и передает IP и порт для пассивного FTP-режима.
    227 Entering Passive Mode (212,248,22,114,195,97)
    Клиент запрашивает прием файла с именем cpu-v из текущего каталога сервера
    RETR cpu-v
    Сервер сообщает о начале передачи данных:
    150 Opening data channel for file download from server of "/cpu-v"
    По завершении, сервер сообщает об успешной передаче:
    226 Successfully transferred "/cpu-v"

    В заключение добавлю, что проект Filezilla включает в себя не только разработку и поддержку качественного бесплатного FTP-сервера, но и популярного бесплатного FTP-клиента

    Статья с кратким описанием бесплатного FTP клиента для Linux, Mac OS и Windows. Данный FTP клиент поддерживает множество прикладных протоколов передачи данных - FTP, FTP поверх SSL/TLS (FTPS), SSH File Transfer Protocol (SFTP), HTTP, SOCKS и FTP-Proxy. Другими словами, Filezilla FTP Client - это универсальное программное обеспечение для приема и передачи файлов по всем современным прикладным протоколам между узлами на различных платформах.

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

    В чем суть технологии FTP

    Современный протокол FTP используют несколько по-другому, чем раньше. Изначально его разрабатывали для работы с большими объемами данных. Потому был придуман не только протокол FTP, но и FTP-архив. Сейчас последний стал глобальным хранилищем для множества файлов, размещенных на серверах по всему миру. Архив образован из большого количества FTP-серверов и есть специальные поисковые системы, которые позволяют искать данные по хостам, такие как Напалм или FileSearch.

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

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

    Какое предназначение протокола FTP

    Предназначен FTP протокол для передачи данных между клиентом и сервером. Он так и называется — «протокол передачи данных». Поскольку им пользуются уже очень давно, FTP вошел в число стандартов сети Intetnet. Впервые протокол был использован еще в 1971 году. За время существования он сильно изменился. Некоторые функции убрали, и сделали упор на том, что FTP хорошо подходит для обмена данными между удаленными компьютерами. Со временем его сделали более удобным для обычных пользователей. Ведь зайти в FTP-сервер можно как при помощи специальной программы, так и используя стандартные службы операционных систем. К примеру, вы даже сможете подключиться к серверу FTP при помощи стандартного проводника Windows.

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

    Некоторые путают FTP и TCP. Хотя эти понятия невозможно сравнивать. FTP является протоколом, а TCP — это канал, по которому он работает. А устанавливается этот канал между устройством-сервером и устройством-клиентом. «Устройством», а не компьютером, потому что FTP можно использовать и на смартфонах при помощи специальных программ, не только на ПК.

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

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

    Как работает FTP протокол

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

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

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

    А вот в чем заключается общий алгоритм работы для любого протокола FTP на сервере:

    1. Сервер всегда находится в некотором состоянии ожидания со стороны пользователя. В любой момент клиент может подключиться к серверу, потому управляющий канал держит открытым 21-й порт. Именно по нему переходят все управляющие команды. Порт 21 установлен по умолчанию, но его могут изменить. Тогда пользователю придется вводить номер порта вручную, иначе он не сможет выйти на управляющий канал.
    2. После соединения через порт канала управления, программа со стороны клиента может отдавать команды интерпретатору сервера. Эти команды определяют как изменения внутри файловой системы сервера, так и способ передачи данных, их содержание, объем, тип режима работы и многое другое.
    3. После того, как все команды для передачи данных согласованы, один из участников соединения становится в пассивный режим ожидания (сервер или клиент). Он ждет, пока ему выдадут номер порта, чтобы открыть его и получить или отправить данные по нему.
    4. После окончания процесса передачи данных соединение закрывается, но управляющий канал по-прежнему остается открытым. Это позволяет пользователю все проделать снова: дать команду серверу и вновь начать передачу данных. При этом не нужно заново создавать сессию. Потому-то FTP и работает при помощи двух типов соединения.

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

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

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

    Какие команды использует FTP протокол

    Скорее всего, вам они в работе не понадобятся, поскольку вы будете использовать юзер-агент в виде программы с удобным интерфейсом. Одна из таких программ — это FileZIlla. Но всякое бывает. Возможно, у вас под рукой будет только Far Maneger, где все необходимо делать через терминал. В таком случае вы должны познакомиться с основными командами для FTP.

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

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

    Если в каком-то случае вам необходимо провести реинициализацию, то есть опустить все данные и настройки текущего соединения, то используйте команду REIN. Во время ее использования передача данных не прекращается, и параметры передачи остаются прежними, какими были до команды REIN. Либо можете сделать это еще более радикальным способом — закрыть управляющее соединение при помощи команды QUIT. Она также не прерывает передачу данных, и только после окончания загрузки сессия полностью прерывается.

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

    Команды RETR и STOR вы будете использовать для того, чтобы передавать данные с сервера и на сервер. Первая команда нужна для того, чтобы отправить выделенный файл на устройство клиента, а вторая — на сервер. А чтобы переименовать файл, вам нужно использовать две последовательные команды. Сначала пропишите RNFR со старым именем файла, а затем RNTO, указав новое имя файла. Также вам понадобится команда DELE, которая нужна для удаления данных с файловой системы, точнее того файла, который выделен в текущий момент.

    Для удаления каталогов используются другие команды. Чтобы удалить выделенный каталог, вам понадобится команда RMD. А чтобы создать новую папку, используйте строку MKD. Также пользователям часто нужна функция просмотра файлов, которые имеются в каталоге. Для этого используйте команду LIST, либо NLST.

    Какие есть аналоги у FTP

    У протокола передачи данных FTP есть его прямые «наследники», то есть протоколы, которые образованы из ФТП. Это два протокола: TFTP и SFTP. Первый протокол не самый популярный, потому как сильно ограничен в плане команд. Он гораздо хуже подходит для управления файловой системой сервера, чем FTP. Вы не сможете даже просмотреть список файлов каталога при помощи него. Нужен TFTP только для передачи простейшей 8-битной информации, не более. И в этом протоколе есть всего 5 команд, которые нужны для чтения, записи, запроса пакета данных и других простых операций.

    А вот протокол SFTP куда более удачный, чем TFTP и в некоторых случаях — чем FTP. Дело в том, что это защищенный FTP протокол. Он является комбинацией шифрованного SSH соединения и протокола передачи данных FTP. Кроме того, в SFTP многие лишние функции исключены, которые были введены в FTP уже давно, но никем не используются. Потому SFTP и безопаснее, чем FTP, и при этом скромнее в хорошем смысле этого слова. Рекомендуется выбирать именно SFTP в тех случаях, когда вы работаете с какими-то конфиденциальными данными. Тогда даже если хакеры и перехватят отправляемые данные по управляющему соединению, они все равно будут зашифрованными и никакой ценности взломщикам не принесут.

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

    Обмен данными появился до Интернета. Но возникновение Всемирной сети расширило область задач по обмену информацией. Протокол FTP является основным, наравне с mail и www.

    Он обеспечивает передачу информации, а не доступ к файлам. Передача по ФТП изначально не являлась безопасной, но протокол FTPS, работающий в зашифрованном канале SSL-протокола, обеспечивает передачу данных безопасно. Это позволяет защитить как команды, так и передаваемые данные.

    Описание протокола FTPS

    Серверы FTPS предоставляют сертификаты публичного ключа. Как правило, они создаются с использованием инструментов Unix или адаптированных инструментов для Windows, например, OpenSSL.

    Каждый сертификат должен быть подписан центром сертификации. В ином случае, клиент FTPS формирует предупреждение.

    Данные возможно кодировать на канальном уровне (команды и/или данные). Протокол FTPS использует два соединения:

    • одно передает данные;
    • другое - команды серверу и ответы сервера на них.

    Если применено шифрование на базе SSL, сведения о номере порта для обмена данными будут недоступны.

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

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

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

    Работа FTPS-сервера

    Обычно подключение по FTPS осуществляется посредством специальных программ, в частности, WinSCP, Far, Total Comander, FileZilla и пр. Строка подключения выглядит так:

    • Протокол:// Имя@Хост: пароль @ хост. ru: 21 .

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

    • имя подключения (логин, ник);
    • пароль для подключения;
    • имя хоста FTP/FTPS;
    • номер порта.

    Возможны и анонимные подключения по FTP/FTPS, но особого практического значения они не имеют.

    Клиент FTPS может установить соединение с сервером в явном или неявном режимах.

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

    А во втором случае клиент и сервер начинают обмен данными в защищенном режиме. Текстовая информация при этом передается в зашифрованном формате.

    Активный и пассивный FTP

    Работа с FTP-сервером может быть двух видов:

    1. Активной. Тогда инициируется передача информации, клиент прослушивает TCP-порт и передает данные серверу: какой порт он прослушивает. Сервер открывает TCP-соединение на порт, указанный клиентом. Затем данные направляются через это соединение.
    2. Пассивной. Клиент сообщает серверу о готовности к передаче данных, и сервер начинает следить за неспециальным TCP-портом, сообщая клиенту, за каким именно. Затем клиент открывает TCP-соединение на порт, указанный сервером, и обмен данными происходит через это соединение.

    Подключение по FTP

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

    В частности, это можно сделать в среде Windows, введя команду:

    • ftp «Имя Сервера».

    В результате этого будет предложено ввести имя и пароль, известные серверу «Имя Сервера». Естественно, что в этом имени нет никаких кавычек, никаких русских букв. То есть это обычное наименование веб-ресурса, выступающего как FTP-сервер.

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

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

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

    Пример: соединение с FTP-сервером

    В данном примере (желтый фон) вводится команда ftp на компьютере клиента в операционной системе Windows. Сервер сообщает свои данные и предлагает указать имя пользователя. В этом случае (зеленый фон), именем является «SCi_WMiX_22G(a)wmix.isv.by».

    Доступ не является анонимным, и сервер запрашивает пароль. Для проверки, после успешного подключения вводится команда «ls» - просмотр текущей директории.

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

    Команды FTP/FTPS

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

    Лучший способ определить перечень доступных возможностей - ввести команду help.

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

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

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

    Зачем нужен FTP

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

    • в первом отображается все, что загружено на сервер;
    • во втором - все, что находится на компьютере.

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

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


    Уязвимости

    FTP - это очень старый протокол. Он появился намного раньше HTTP и не разрабатывался как защищенный. Поэтому у него много проблем с защитой. Вот самые основные:

    • спуф-атаки;
    • перехват пользовательских данных;
    • сниффинг;
    • захват портов.

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

    Безопасная передача данных

    Существуют следующие методы отсылки данных, защищенные от хакерских атак: FTPS, SFTP, а также передача FTP через SSH. С FTPS можно защитить сессию. FTP-server получает команду AUTH TLS, после чего отклоняет соединения, которые не зашифрованы.


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

    Другой способ передачи через протокол SSH тунеллирует сессию через SSH-соединение.

    Подключение и обмен данных

    Предусмотрено два возможных вида работы:

    • активный;
    • пассивный.

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

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

    • поточный;
    • блочный;
    • сжатый.

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

    Авторизация

    Для идентификации пользователя и последующего назначения прав для управления файлами используется схема - имя пользователя/пароль. Отправка имени осуществляется командой USER, а пароля - PASS.


    Сервер принимает эти данные, если они сходятся с теми, что указаны в базе данных. Далее клиент получает приглашение, после чего начинается сессия. Иногда сервер поддерживает возможность входа без учетных данных. Как правило, предоставляется ограниченный доступ для таких связей, используется какое-то стандартное имя, например anonymous. Но чаще всего для авторизации нужно ввести адрес действующей почты, и в дальнейшем она используется, чтобы войти.

    Отличие от http протокола

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


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

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

    Как работать с файлами

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

    1. После появления главного окна в соответствующих полях нужно ввести имя хоста, имя пользователя, пароль, порт.
    2. После успешной авторизации появляется список всего, что загружено на сервер.
    3. Вам следует выбирать объект, который нужно закачать на сервер с компьютера или с сервера на компьютер.
    4. Отметив соответствующий файл, вызывайте контекстное меню при помощи ПКМ, выбирайте нужное действие: скачать, добавить в задание, отредактировать, удалить, переименовать, скопировать адрес, настроить права доступа. Эти функции могут меняться в зависимости от используемой программы.

    Существует способ обмена между двумя серверами напрямую без закачки на компьютере. Запрашиваются два соединения к разным серверам. На одном из них выбирается файл для передачи и указывается IP-адрес второго сервера. Для этого используется FXP - протокол прямого обмена.

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

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

    Соединение по FTP через браузер

    Для соединения, как и при использовании специализированных программ, пользователю необходимо обладать логином, паролем, IP-адресом. Само подключение происходит при использовании командной строки. Для этого нужно ввести адрес такого формата: ftp://логин для входа: пароль сервера@ip адрес. Например, ftp://myname:[email protected]. Если соединение прошло успешно, появляется список всех документов. Как правило, файлы сайта хранятся в папке public_html или www, в зависимости от типа хостинга.

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

    FileZilla

    Это один из популярнейших FTP у Windows-клиентов. Работать с этой программой достаточно легко. Главное окно поделено на пять частей. Три из них отображают файловую структуру компьютера, а четыре - сервера. В нужных полях указывается логин, пароль, порт.


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

    Total Commander

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

    1. Перейти во вкладку "Сеть".
    2. Выбрать пункт меню "Соединиться с сервером".
    3. В появившемся окне нажать кнопку "Добавить".
    4. Указать имя соединения, сервер, учетную запись, пароль.
    5. Установить флаг "Пассивный режим обмена", нажать OK.
    6. После этого следует отметить выбранное соединение, нажать кнопку "Соединиться".

    Командная строка

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

    1. Подключение осуществляется командой Open. Использование должно выглядеть так: open ftp.server.com port.
    2. Параметр port можно не указывать, если предполагается использование стандартного 21.
    3. Вместо server.com указывается адрес сервера, на котором располагается сайт.

    Для переименования используется rename, для смены текущего каталога стандартно используются cd, для выхода необходимо ввести close, а для удаления - delete или disconnect.

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

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

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

    FTP использует два заданных порта: порт 21 для управления и порт 20 для передачи данных.


    Рис. 13.5.

    Тип файла

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

    • ASCII-файл . Это формат, используемый по умолчанию для трансляции текстовых файлов. Каждый символ закодирован с использованием NVT ASCII-символов. Передатчик преобразует файл из собственного представления в NVT ASCII, и приемник преобразует символы NVT ASCII в собственное представление.
    • EBCDIC-файл . Если оба конца соединения используют кодирование EBCDIC , файл может быть передан с использованием EBCDIC -кодирования.
    • Image-файл . Этот файл по умолчанию - формат для передачи двоичных файлов. Файл посылается как непрерывный поток бит без всякой интерпретации и кодирования. Он в большинстве случаев используется для передачи двоичных файлов, таких как компилированная программа.

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

    1. Запрещенный для печати. Это формат по умолчанию для передачи текстовых файлов. Файл не содержит "вертикальных" спецификаций для печати. Это означает, что файл не может быть напечатан без предварительной обработки, потому что он не содержит символов, интерпретируемых для вертикального передвижения печатающей головки . Этот формат используется для файлов, которые будут накоплены и обработаны позднее.
    2. TELNET. В этом формате файл содержит NVT ASCII вертикальные символы, такие, как CR (перевод каретки), LN (перевод строки), NL (новая строка) и VT (вертикальное табулирование). Эти файлы могут быть напечатаны после передачи

    Структура данных

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

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

    Режимы передачи

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

    • Поточный режим . Это режим по умолчанию. Данные доставляются от FTP к TCP как непрерывный поток данных. TCP отвечает за разбиение данных на сегменты соответствующего размера. Если данные - просто поток байтов (файловая структура), то не нужно никакого признака окончания файла. Окончание файла в этом случае - это разъединение соединения данных отправителем. Если данные разделены на записи (структура по записи), каждая запись будет иметь однобайтный символ окончания записи ( EOR - end of record).
    • Блочный режим . Данные могут быть доставлены от FTP и TCP в блоках. В этом случае блоку предшествует трехбайтный заголовок. Первый байт называется дескриптор блока, следующие два байта определяют размер блока в байтах.
    • Сжатый режим . Если файл большой, данные могут быть сжаты. Метод сжатия использует нормальное кодирование длины. В этом методе последовательное повторное появление блока данных заменяется одним вхождением и числом повторений. В тексте файла это обычно пробел (пустоты). В двоичном файле нулевые символы обычно сжимаются.

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


    Рис. 13.6.

  • 
    Top