У меня есть сервер Ubuntu, установленный на виртуальной коробке. Я установил в нем proftpd и перенаправил порт 21 (порт ftp) из сетевых настроек виртуальной коробки.

Проблема в том, что клиент ftp использует пассивный режим. Я проверил proftpd.conf и откомментировал конфигурацию PassivePorts (49152 и 65534), но FileZilla все еще не может получить список каталогов. Я заставил его работать, используя активный режим, но я хотел, чтобы он использовал пассивный режим.

08:25:25 Ошибка: истекло время ожидания соединения

08:25:25 Ошибка: не удалось получить список каталогов

ОБНОВИТЬ --

Я попытался переадресовать все пассивные порты, настроенные на proftpd.conf (от 65500-65534), порты открыты в основной ОС. гостевая ОС еще не имеет открытых портов. Когда я создавал FTP-соединение, я перепроверил открытые порты в гостевой ОС и увидел, что некоторые порты в этом диапазоне открыты, хотя проблема все еще сохраняется.

читал это ..

http://www.mdjnet.dk/ftp.html

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

пример сценария

  1. гостевая ОС запустила ssh сервер, открыв порт 22
  2. vbox также открывает порт 22 для основной ОС (если нет конфликтов).

2 ответа2

1

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

Конфигурация сети Virtualbox позволяет вводить отдельные порты для пересылки, но не диапазоны. Таким образом, для работы FTP в пассивном режиме пассивные порты должны перенаправляться индивидуально.

Если вы не ожидаете более 5 одновременных передач данных (и такие клиенты, как Filezilla, откроют 1 соединение для передачи данных на файл и список каталогов), измените конфигурацию сервера, используя диапазон из 5 портов (например, 1025-1030), и перешлите эти пять портов в конфигурации Virtualbox. Для 10 соединений используйте диапазон 10 портов и т.д.

0

Я сделал это с помощью следующего:

  1. Я перенаправил все пассивные порты из основной ОС в гостевую ОС
  2. Я замаскировал IP-адрес FTP-сервера на 127.0.0.1

Я написал об этом в своем блоге для более точного объяснения.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .