Filezilla server

Как работает ФТП-протокол

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

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

Собственный FTP-сервер имеет определённые преимущества:

  • позволяет управлять сервером и его ресурсами;
  • предоставлять пользователям разные права доступа;
  • для него не нужен статический IP-адрес.
  • нет ограничений скорости;
  • отсутствие оплаты хостеру за его размещение;

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

Компанией Майкрософт в Windows 7 добавлена функция Internet Information Services (IIS), осуществляющая общий доступ из сети к выделенной для этой цели папке. Поэтому, чтобы создать FTP-сервер для Windows 7, не требуется дополнительно устанавливать ПО.

Troubleshooting

The following are a few troubleshooting suggestions:

If that does not help, you might want to try to uninstall your firewall to see what happens. Simply disabling your firewall might not work, as some firewalls cannot be fully disabled. In particular, most firewalls install virtual device drivers which cannot be disabled other than by uninstalling them. Also check for hidden firewalls. Programs such as virus scanners often have firewall functionality as well.

If possible, try to connect directly to the internet without a router by plugging your computer directly into your modem. If you have a combination modem/router device, try putting it into bridge mode to disable the routing part.

If you are trying to setup a server and it works fine within your LAN but is not reachable from the outside, try changing the listening port. Some ISPs don’t like their customers to host servers and they may block ports with numbers under 1024.

Another issue may occur if you are hosting an FTP server on default port 21. There might be a firewall at the ISP side of your connection which can do odd things like changing the port for PASV commands. Try using another non-default port for your FTP server.

If you encounter «cannot open data connection» on a random basis (i.e., the ftp client can connect to the ftp server without problem for many connections until it encounters this problem), one possible reason may be that your client PC anti-virus software is configured to block outgoing connections on certain ranges of ports. When your ftp connections are running in pasv mode, the client-side outgoing ports are selected randomly and some of those randomly selected ports may be blocked by the anti-virus software. To identify this problem, read your anti-virus log on the client. In general, any software that can block certain ranges of outgoing ports (such as PC firewalls) can cause similar FTP grief.

Timeouts on large files

If you can transfer small files without any issues, but transfers of larger files end with a timeout, a broken router and/or firewall exists between the client and the server and is causing a problem.

As mentioned above, FTP uses two TCP connections: a control connection to submit commands and receive replies, and a data connection for actual file transfers. It is the nature of FTP that during a transfer the control connection stays completely idle.

The TCP specifications do not set a limit on the amount of time a connection can stay idle. Unless explicitly closed, a connection is assumed to remain alive indefinitely. However, many routers and firewalls automatically close idle connections after a certain period of time. Worse, they often don’t notify the user, but just silently drop the connection. For FTP, this means that during a long transfer the control connection can get dropped because it is detected as idle, but neither client nor server are notified. So when all data has been transferred, the server assumes the control connection is alive and it sends the transfer confirmation reply. Likewise, the client thinks the control connection is alive and it waits for the reply from the server. But since the control connection got dropped without notification, the reply never arrives and eventually the connection will timeout.

In an attempt to solve this problem, the TCP specifications include a way to send keep-alive packets on otherwise idle TCP connections, to tell all involved parties that the connection is still alive and needed. However, the TCP specifications also make it very clear that these keep-alive packets should not be sent more often than once every two hours. Therefore, with added tolerance for network latency, connections can stay idle for up to 2 hours and 4 minutes.

To solve this problem, you need to uninstall affected firewalls and replace faulty routers with better-quality ones.

Открытие FileZilla для удаленных адресов

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

Для этого откройте Брандмауэр Windows в режиме повышенной безопасности приложение на вашем сервере и перейдите к правилам входящих.

Создать Новое правило и выберите порт как тип правила.

На следующем шаге добавьте порты, которые вы установили для FTP и FTPS. В приведенном ниже примере настроены порты по умолчанию 21 и 990. Обновите их, чтобы они соответствовали портам, которые вы настроили ранее.

Идите дальше и нажмите «Далее» в остальных меню и назовите правило брандмауэра. Выбрать финиш создать наше новое правило.

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

Это будет зависеть от настроек и настроек вашего сервера, но стоит обратить внимание на случай, если у вас возникнут проблемы с удаленным доступом к вашему серверу

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

Установка FTP FileZilla Server

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

На первом окне нужно согласиться с лицензионным соглашением, нажмите “I Аgree”.

Далее надо выбрать тип установки. Всего их пять:

Стандартный (Standart) – вариант для установки с нуля для полного функционирования сервера.Полный (Full) – почти тоже самое, но так же в папку установки будут скопированы исходный код программы, на случай, если вы что-то захотите в ней изменить.Только FTP сервис (Service only) – устанавливается непосредственно FTP сервис, без доступа к нему через интерфейс. Полезно, если вы планируете управлять своим файлохранилищем с другого компьютера.Интерфейс управления (Interface only) – в отличие от предыдущего пункта, ставится только графическая оболочка управления сервером, но не он сам. Используйте, если вы хотите удаленно получить доступ к своему FTP серверу.Выборочная установка (Custom) – Вы вольны выбирать, что хотите поставить на свой компьютер.

Для первой установки рекомендую выбрать стандартный вариант (Standart). Нажмите “Next“.
На следующем окне необходимо выбрать папку установки, например, “C:\Program Files\FileZilla Server”. После выбора переходите к следующему окну (Next).

Теперь установщик попросит нас выбрать способ установки и запуска сервера.

Есть три варианта:

  • Как службу и запускать при входе в систему
  • Как службу и запускать вручную
  • Простая установка, запускать вручную

Рекомендуется выбрать первый или второй вариант. Разница лишь в том, что во втором случае для работы сервера, Вам необходимо будет переходить в “Панель управления – Администрирование – Управление службами“, находить там службу в списке и запускать её самостоятельно, надавив на кнопочку запуск.

Кроме того, на этом этапе следует указать порт, по которому будет подключаться интерфейс управления сервером, т.е так сказать, Ваша консоль администрирования, которая позволит Вам задавать настройки, смотреть кто и куда подключился и тп. Для повышения безопасности, смените его со стандартного (14147) на какой-нибудь еще.

Так же по-умолчанию, отмечена опция запустить сервер после установки (Start Server after setup completes). Можете оставить эту галочку, а можете убрать. Дело Ваше. Сделав оное, переходим к последнему окну, используя кнопочку Next.

Здесь выбираем варианты запуска интерфейса.

Их опять же три:

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

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

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

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

Галочка (Start Interface after setup completes) в данном окне, опять же, задает запуск интерфейса сразу в конце установки.
Ну и, разобравшись со всем оным, наконец-то можно начать установку сервера (используя, само собой, кнопочку “Install“)

Настройки соединения с сервером

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

  1. Для этих целей переходим в раздел верхнего меню «Файл», и выбираем пункт «Менеджер сайтов».

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

  2. Перед нами открывается Менеджер сайтов. Чтобы добавить подключение к серверу, жмем на кнопку «Новый сайт».
  3. Как видим, в правой части окна поля стали доступными для редактирования, а в левой части появляется название нового подключения – «Новый сайт». Впрочем, вы можете переименовать его так, как вам захочется, и как данное подключение удобнее для вас будет восприниматься. На настройки соединение данный параметр влиять никак не будет.
  4. Далее переходим к правой части Менеджера сайтов, и начинаем заполнять настройки для учетной записи «Новый сайт» (или как вы по-другому её назовете). В графу «Хост» записываем адрес в буквенной форме или IP-адрес сервера, с которым собираемся соединиться. Данное значение нужно получить на самом сервере от администрации.
  5. Протокол передачи файлов выбираем поддерживаемый тем сервером, к которому мы производим подключение. Но, в большинстве случаев, оставляем данное значение по умолчанию «FTP – протокол передачи файлов».
  6. В графе шифрование, тоже по возможности оставляем данные по умолчанию – «Использовать явный FTP через TLS если доступен». Это позволит максимально защитить соединение от злоумышленников. Только если возникают проблемы с подключением по защищенному соединению TLS, есть смысл выбрать пункт «Использовать обычный FTP».
  7. Тип входа по умолчанию в программе установлен анонимный, но большинство хостингов и серверов не поддерживают анонимное соединение. Поэтому выбираем либо пункт «Нормальный», либо «Запросить пароль». Нужно отметить, что при выборе нормального типа входа, вы будете подключаться к серверу через учетную запись автоматически без ввода дополнительных данных. При выборе пункта «Запросить пароль» каждый раз придется вводить пароль вручную. Но этот способ, хотя и менее удобен, с точки зрения безопасности более привлекательный. Так что решать вам.
  8. В следующих полях «Пользователь» и «Пароль» вы вводите логин и пароль, выданные вам на сервере, к которому собираетесь подключиться. В некоторых случаях вы потом можете при желании сменить их, заполнив соответствующую форму непосредственно на хостинге.
  9. В остальных вкладках Менеджера сайтов «Дополнительно», «Настройки передачи» и «Кодировка» никаких изменений вносить не нужно. Все значения должны оставаться по умолчанию, и только в случае каких-то неполадок в соединении, в соответствии с их конкретными причинами, в данных вкладках можно вносить изменения.
  10. После того, как мы ввели все настройки, чтобы произвести их сохранение, жмем на кнопку «OK».
  11. Теперь вы можете подключаться к соответствующему серверу, перейдя через менеджер сайтов в нужную учетную запись.

Connect to Filezilla Service

Once the installation is complete the Filezilla server interface will start automatically. It can also be started manually by clicking on the Filezilla server interface icon from the Desktop or the Start menu.

Click on the connect button to establish a connection between the Filezilla server interface and the Filezilla service. The default password is blank. Please note that this connection is purely meant for administering the server. It has nothing to do with an actual FTP connection.

By default, administrative connections are permitted only from the localhost. That is both the Service and the Server interface must be running on the same computer, as in our case. This being the case, a blank password does not pose any real security risk. However, if you wish to set a password you can do so by connecting using the blank password first and then going to Edit ➾ Settings ➾ Filezilla Server Options. A password is required if you want to enable remote administration of the server.

You might see a warning about being behind a NAT router and about FTP over TLS not being enabled. You can ignore this since we are connecting to the FTP server only from the local network.

Create FileZilla server Groups

We can create groups in the FileZilla to allow a particular group user to access some folder or file which other group users cannot.

Here we let you know the step to create a single group but you can use the same to create multiple as per the requirements.

  • Again go to the Edit menu and select Groups.
  • From the left side panel, select “Shared folder“
  • Click on the Add button and give some name to your group.
  • Now, assign the folder/partition which all the users inside that group can access.
  • Choose what kinds of writes over the folder such as Write, Read, Delete; the users of that group will have.
  • Finally, Click on the Ok button to save the settings. 

Настройка FileZilla Server

Первое, что вы увидите, когда откроете интерфейс FileZilla Server, – это логин. Поскольку мы еще не установили пароль и оставили наш административный порт как есть, вы можете просто выбрать Connect войти на сервер с конца администрирования.

Установка административного пароля и порта

Чтобы установить пароль, используемый для управления FileZilla Server, перейдем к редактировать > настройки в верхнем меню навигации.

В нашем меню настроек найдите Настройки интерфейса администратора слева.

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

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

Настройка и тестирование сервера FileZilla

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

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

Использование внешнего адреса внутри локальной сети в большинстве случаев не сработает по одной из приведенных причин:

  • Роутер заблокирует доступ к своему внешнему адресу изнутри локальной сети как возможную атаку
  • Роутер перебросит соединение вашему провайдеру, который заблокирует его как возможную атаку.

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

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

Убедитесь, что серверу FileZilla разрешено создавать исходящие подключения по любому порту, т.к. в этом режиме клиент определяет порт для соединения.

На локальной стороне подключения сервер FileZilla пытается использовать порт со значением на единицу ниже, чем у порта для контрольного соединения (к примеру, порт 20, если сервер принимает соединения на порту 21). Тем не менее, это не всегда возможно, поэтому не следует всегда полагаться на эту особенность.

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

Настройка сервера в этом случае практически повторяет настройку клиента в активном режиме.

В пассивном режиме сервер открывает сокет и ожидает соединения от клиента.

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

При наличии NAT-роутера вам нужно сообщить серверу FileZilla ваш внешний IP-адрес, в противном случае соединения в пассивном режиме будут работать только внутри локальной сети:

  • Статический IP-адрес можно указать в диалоге настройки сервера FileZilla.
  • Если ваш IP-адрес динамический, у вас есть возможность разрешить серверу FileZilla получать внешний IP-адрес на специальном сайте автоматически при каждом запуске. Никакая информация не будет передана от вас на этот сайт, кроме версии используемого сервера FileZilla.

Если вы не уверены в своем выборе, используйте второй вариант.

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

Доступные порты находятся в диапазоне от 1 до 65535, порты ниже 1024-го зарезервированы для остальных протоколов. Для активного режима FTP лучшим выбором является номер порта равный или выше 50000. В связи с устройством протокола TCP (протокол, который находится ниже уровня FTP и используется для передачи данных), порт не может быть использован повторно сразу после каждого подключения. Таким образом, диапазон портов не должен быть слишком узким, в противном случае вы не сможете передать много файлов малого размера. В большинстве случаев достаточно диапазона в 50 портов.

Процесс установки

Для операционных систем Windows или Mac OS клиент-приложение можно скачать с официального сайта разработчиков. Здесь также можно более подробно ознакомиться с подробной документацией по программе.

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

FileZilla совместима с большинством официальных репозиториев Linux. Поэтому в дистрибутивах Ubuntu (и других на базе Debian) его можно установить, введя в терминале команду:

sudo apt install filezilla

Пользователи CentOS или Red Hat могут воспользоваться командой:

sudo yum install filezilla

Как работает ftp-протокол

FTP (File Transfer Protocol) используют для работы с файлами. Его начали разрабатывать в 1971 году, но протокол все еще остается популярным. Между сервером и клиентом создается канал связи. При том по FTP могут подключиться к общему хранилищу несколько пользователей одновременно. Протокол относится к прикладному уровню согласно OSI. Он использует TCP для обеспечения надежной связи. FTP-сервер работает в одном из двух режимов:

  • пассивный – FTP клиент отправляет запрос, а сервер отправляет все необходимые данные для связи;
  • активный – FTP клиент сообщает серверу, что сокет открыт для связи, указывает IP-адрес и порт.


Формат передачи данных бывает потоковым или блочным, также может применяться сжатие. Для работы требуется два свободных порта. На первый приходят запросы, в настройках ему, как правило, присваивают 21 номер. Этот порт называется командным и обеспечивает получение команд от клиента и ответы ему. Второй канал служит для передачи данных, по умолчанию обладает номером 20.

В годы, когда был создан стандарт передачи данных, еще не так много внимания уделяли безопасности. FTP протокол не шифрует информацию, а значит она может быть перехвачена и прочтена посторонними. Чтобы защитить данные от перехвата, следует использовать FTPS или SFTP. Это усовершенствованные способы доступа к FTP-серверам, которые поддерживаются многими программами. Также у FTP протокола нет встроенной защиты от DDoS.

Что нужно сделать перед тем, как создать сервер FTP

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

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

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

На третьем шаге установки FileZilla sever вам нужно выбрать путь, куда инсталлировать программу. С этим вы решайте самостоятельно, а вот с четвертым шагом лучше выберите первый или второй пункт из выпадающего списка. Вам предложат способ запуска программы. Куда лучше, если операционная система будет воспринимать установленный server как службу, и занесет программу в автозапуск. Это куда удобнее, чем каждый раз после запуска заходить в «Панель управления» и вручную запускать сервер.

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

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

Improving Security

Running an FTP server on your computer has implications for security. However, since we are accepting connections only from the local network, it can be done in a reasonably secure manner. It is possible to restrict connections to an IP range. This can be done in both your firewall and in Filezilla Server. Here is how to do this in Filezilla Server.

  • In Filezilla Server Interface, go to Edit ➾ Settings ➾ General Settings ➾ IP Filter.
  • In the not allowed address section put an asterisk to block all IP addresses.
  • Specify exclusions to the block list in the exclusions section.

For exclusions, you can specify individual IP addresses and IP address ranges. IP address ranges must be specified in CIDR  notation. You can use this webpage to find CIDR notation given an IP address range. You would probably have to check the DHCP range of your router to find which range to exclude from the block.

Startup and configuration of FileZilla Server

— Advertisement —

Ultimate Linux Command Cheat SheetTaskset Cheatsheet | Pandoc Cheatsheet | Curl Cheatsheet | Grep CheatSheet | Cron CheatSheet | Grep CheatSheet | More!

After installing the program, you will see the following window. Please click on Connect to Filezilla FTP Server.

Connecting to the server

In the following window, we will enter the options to configure the server. In the host field, please enter localhost. The port information should be left as default. Finally, assign a password to protect the connection.

Setting the initial FileZilla Server configuration settings

When you press OK, the server will be correctly connected. From now on, I would like to make some considerations. First, we are working with the latest stable version of FileZilla Server. Previously, there were beta versions that were a bit more complicated to configure. However, this edition has a graphical interface that is very user-friendly and easy to configure. Very well, next we will see the graphical interface of the server administrator.

Решение проблем

К сожалению, множество персональных файрволов и пользовательских роутеров имеют свои недоработки или, в некоторых случаях, даже способны саботировать работу FTP (например SMC Barricade v1.2).

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

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

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

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

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

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

Таймауты при передаче больших файлов

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

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

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

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

Препятствием этому служит то, что многие роутеры и файрволы разрывают соединения, которые не использовались меньше чем 2 и 4 минуты. Такое поведение нарушает спецификацию протокола TCP, в RFC 5382 это указано достаточно ясно. Другими словами, роутеры и файрволы, разрывающие соединение раньше нужного момента, нельзя признать рабочими, т.к. они не могут использоваться при длительной передаче данных через FTP. К сожалению, производители роутеров потребительского класса и поставщики файрволов не заботятся о соблюдении спецификаций.

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

Понравилась статья? Поделиться с друзьями:
Компьютерная помощь
Добавить комментарий

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