Ошибка списка каталогов Proftpd в контейнере Docker

Я использую proftpd в Ubuntu внутри контейнера Docker. Он успешно входит в систему, но не может получить список каталогов.

Вот скриншот Filezilla

введите здесь описание изображения

И скриншот файла журнала Proftpd

введите здесь описание изображения

Любая помощь?


person h_a86    schedule 13.08.2014    source источник
comment
@h_a86 : Пожалуйста, добавьте больше деталей! (например, файл конфигурации)   -  person user2284570    schedule 20.09.2014
comment
и вы запускаете команду запуска контейнера   -  person xdays    schedule 23.09.2014


Ответы (3)


Проблема в том, что proftpd объявляет внутренний IP-адрес 172...., поэтому клиент не может к нему подключиться.

Вы можете решить это, установив (в proftpd.conf)

MasqueradeAddress externalIP

или запустив контейнер, используя:

docker run --net=host  .....

Эта опция использует IP-сеть хоста, поэтому пассивный режим будет работать нормально.

person user3482546    schedule 29.01.2015
comment
Использование MasqueradeAddress устранило проблему для меня, поэтому я могу продолжать использовать пользовательскую сеть мостов. Спасибо. - person Wextux; 04.03.2016

не забудьте открыть настроенные пассивные порты (например, PassivePorts 60000 65534) в работающем контейнере, чтобы разрешить входящие подключения.

person Ion Cojocaru    schedule 23.09.2014

Похоже, что у ftpd есть проблема с правами доступа при смене работающего пользователя. Попробуйте настроить ftpd для запуска от имени пользователя, под которым вы входите, используя докеры USER userftp (https://docs.docker.com/reference/builder/#user) в вашем Dockerfile.

Помните, что вы можете заставить его прослушивать порт > 1024 и использовать -p 21:2121 при запуске контейнера, чтобы он работал на порту 21 во всем мире.

Было бы полезно, если бы вы разместили файл Dockerfile и конфигурацию, которую вы используете, чтобы мы могли проверить это сами.

person xeor    schedule 24.09.2014