Как заголовок указывает, у меня в настоящее время есть FTP-сервер, доступный через FTP или FTPS (явное) выполнение NATed позади маршрутизатора. Сервер выполняет Windows Server 2012 R2 с IIS 8.0 (я полагаю, что это - версия, которая поставлется с 2012r2).
Сервер будет только использоваться горсткой людей, меньше чем 10.
Сервер в настоящее время функционирует, как он должен с портами 21 и 30850-30859 (канал передачи данных), переданный от маршрутизатора. Мой вопрос, сколько портов канала передачи данных необходимо для FTPS? Один на одновременную передачу файлов? Или одновременный пользователь? Или...?
Вам необходимо достаточно портов данных, чтобы комбинация IP-адрес клиента - случайный порт клиента - порт данных сервера однозначно определяла любой сеанс FTP (передача).
Номер порта обслуживает как связь между запросом на передачу по управляющему соединению и соединением для передачи данных. Обратите внимание, что в соединении для передачи данных нет «протокола», который мог бы использовать клиент, чтобы сообщить, что он запрашивает. Номер порта - единственная уникальная информация, которую имеет сервер.
Насколько сильной должна быть уникальность, вероятно, зависит от реализации сервера. Я считаю, что большинству серверов требуется, чтобы порт был уникальным только в тот короткий момент после того, как клиент запросит передачу и до того, как он подключится к порту данных. Таким образом, если у вас есть 10 портов, и 11 клиентов запрашивают передачу в один и тот же момент, 11-й, скорее всего, будет отклонен.
Если бы два клиента запросили передачу одновременно, и сервер использовал бы один и тот же порт номер для обоих (не имея другого запасного), сервер не сможет сказать, какой файл передать. Конечно, сервер может использовать клиентский IP-адрес для принятия решения (на самом деле многие FTP-серверы действительно проверяют, что клиентский IP-адрес соответствует IP-адресу, используемому в управляющем соединении для безопасности).
Но реальные реализации открывают уникальный прослушивающий сокет, когда клиент запрашивает перевод. Поэтому, когда нет свободного номера порта, сервер не может начать прослушивание, отклоняет передачу, следовательно, у него даже не возникает вышеуказанная проблема.
См. Также Почему для пассивного режима FTP требуется диапазон портов, а не только на один порт?