
Я использую клиент (AnyClient) для подключения к FTP-серверу. Есть флажок, указывающий «Пассивный». Я могу выбрать «Да» или «Нет». Что это значит?
решение1
Пассивный FTP — это метод, который помогает вам при подключении через брандмауэры или другие устройства безопасности. Поскольку непассивные (активные) FTP-подключения требуют одного подключения с обоих концов, существуют проблемы с разрешением входящих и исходящих подключений брандмауэра на нераспознаваемых, более высоких номерах портов, которые используются активным FTP. Обратный трафик с клиентской стороны не будет распознан при втором подключении и обычно сбрасывается. При пассивном FTP оба подключения инициируются с клиентской стороны.
Большинство современных межсетевых экранов с отслеживанием состояния отлично справляются с обоими методами FTP, поскольку они способны определять, связаны ли пакеты с другим соединением.
решение2
Это касается только FTP.
Активный FTP означает, что FTP-сервер открывает соединения с клиентом для передачи данных (загрузок). Обычно это не очень хорошо работает с брандмауэрами и маршрутизаторами NAT, поэтому вы можете выбрать пассивный режим, в котором все соединения инициируются клиентом.
решение3
Протокол FTP имеет два соединения. Канал команд и канал данных. В исходном протоколе (мы будем называть его Активный FTP) клиент инициирует соединение с сервером по каналу команд, затем для любых переданных данныхсервербудет активно создавать обратное соединение с клиентом. В начале это было нормально.
Но затем у нас появились брандмауэры, которые блокировали входящие соединения. И у нас также есть NAT-боксы практически на каждом домашнем соединении (и на большинстве рабочих), которые блокируют любые входящие соединения (ну, если только вы не настроите свой NAT на маршрутизацию заранее, что является головной болью). Поэтому они немного изменили протокол, чтобы позволить клиенту запрашиватьпассивныйFTP означает, что для подключения к данным сервер теперь пассивен, а протокольное рукопожатие сообщает клиенту, как подключить канал данных к серверу.
Это немного увеличивает работу сервера, которому теперь нужно запоминать, какое входящее соединение исходит от какого клиента (и, следовательно, на какую команду отвечать), но это единственный реальный способ обойти правило «нет входящих соединений».
TL;DR:Всегда выбирайте пассивный. Каждый сервер поддерживает его, он всегда будет работать, и вам никогда не нужно знать, почему он будет работать. Или просто проверьте «активное» соединение, если оно работает, мицва! Если нет, попробуйте пассивный.
решение4
Эта страницапретендует на звание «окончательного объяснения» пассивного и активного FTP.
Основное различие между активным и пассивным FTP приведено в конце страницы:
Активный FTP выгоден для администратора FTP-сервера, но вреден для администратора клиентской стороны. FTP-сервер пытается устанавливать соединения со случайными портами с высоким номером на клиенте, которые почти наверняка будут заблокированы брандмауэром на стороне клиента. Пассивный FTP выгоден для клиента, но вреден для администратора FTP-сервера. Клиент будет устанавливать оба соединения с сервером, но одно из них будет со случайным портом с высоким номером, который почти наверняка будет заблокирован брандмауэром на стороне сервера.
Таким образом, при использовании пассивного FTP вам придется проделать немного больше работы на сервере, чтобы разрешить соединения по порту с большим номером, но этодолженгарантировать, что любой клиент сможет подключиться без проблем, поскольку он знает, какие порты ему следует открыть.
Так что если у вас есть сервер, который должен принимать соединения от большого количества клиентов, пассивный ftp — это выход. Если вы принимаете соединения только от небольшого количества клиентов, то активный ftp будет в порядке.