Я использую proftpd в Ubuntu внутри контейнера Docker. Он успешно входит в систему, но не может получить список каталогов.
Вот скриншот Filezilla
И скриншот файла журнала Proftpd
Любая помощь?
Я использую proftpd в Ubuntu внутри контейнера Docker. Он успешно входит в систему, но не может получить список каталогов.
Вот скриншот Filezilla
И скриншот файла журнала Proftpd
Любая помощь?
Проблема в том, что proftpd объявляет внутренний IP-адрес 172...., поэтому клиент не может к нему подключиться.
Вы можете решить это, установив (в proftpd.conf)
MasqueradeAddress externalIP
или запустив контейнер, используя:
docker run --net=host .....
Эта опция использует IP-сеть хоста, поэтому пассивный режим будет работать нормально.
MasqueradeAddress
устранило проблему для меня, поэтому я могу продолжать использовать пользовательскую сеть мостов. Спасибо.
- person Wextux; 04.03.2016
не забудьте открыть настроенные пассивные порты (например, PassivePorts 60000 65534) в работающем контейнере, чтобы разрешить входящие подключения.
Похоже, что у ftpd есть проблема с правами доступа при смене работающего пользователя. Попробуйте настроить ftpd для запуска от имени пользователя, под которым вы входите, используя докеры USER userftp
(https://docs.docker.com/reference/builder/#user) в вашем Dockerfile.
Помните, что вы можете заставить его прослушивать порт > 1024 и использовать -p 21:2121
при запуске контейнера, чтобы он работал на порту 21 во всем мире.
Было бы полезно, если бы вы разместили файл Dockerfile и конфигурацию, которую вы используете, чтобы мы могли проверить это сами.