Тема: Нome FTP Server
Показать сообщение отдельно
  #3  
Старый 11.06.2022, 00:32
Eugene Grosbein
Guest
 
Сообщений: n/a
По умолчанию Re: Нome FTP Server

Eugene Grosbein написал(а) к Cheslav Osanadze в Jun 22 03:13:10 по местному времени:

10 июня 2022, пятница, в 17:31 NOVT, Cheslav Osanadze написал(а):

CO> Помогите с настройкой сабжа! Точнее, с доступом к нему. локально сервер
CO> открывается, правда, только из FAR.
CO> В роутере прописал проброс 21 порта и 20 - на всякий случай, по примеру
CO> проброса порта для бинкд, но доступа из вне всё равно нет.

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

Большинство современных клиентов используют пассивный режим FTP
по умолчанию, хотя раньше использовали по умолчанию активный режим.

В пассивном режиме при необходимости передать листинг каталога или файл
сервер выбирает ДИНАМИЧЕСКИЙ порт (заранее не заданный),
сообщает номер этого порта клиенту по управляющему соединению (порт 21)
и пассивно ждет от клиента второго соединения на этот динамический порт.

В основном этот режим предназначен для случая, когда сервер не находится
за роутером с NAT, а имеет публичный IP-адрес. Тогда он без проблем
принимает соединения и от клиентов за собственными роутерами с NAT,
и от клиентов на публичных IP-адресах и всё работает.

Чтобы соединение в пассивном режиме работало в твоём случае,
когда сервер "спрятан" за роутером с NAT, сам роутер должен
уметь подсматривать внутрь пакетов управляющего соединения FTP
по порту 21, вытаскивать оттуда передаваемые номера динамических портов
и создавать временные пробросы этих портов. Некоторые роутеры
делают это по умолчанию, в других эта функция называется "FTP ALG"
и её надо разрешать отдельно, третьи вообще этого делать
не умеют и тогда пассивный режим работать не будет.

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

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

Если же ни один из двух роутеров не настроен (или даже не умеет вообще)
обрабатывать протокол FTP таким образом, то соединение между клиентом
и сервером, находящимися каждый за таким тупым роутером,
по протоколу FTP работать не будет вообще.

FTP очень старый протокол и он разрабатывался, когда NAT был мало
распространен, а свободных адресов IPv4 было полным-полно.

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

Eugene
--- slrn/1.0.3 (FreeBSD)
Ответить с цитированием