Назад | Перейти на главную страницу

vsftp на виртуальной машине Azure - filezilla сообщает о частном IP-адресе, отправленном сервером в пассивном режиме

Я настраиваю безопасный FTP-сервер на машине Ubuntu 16.04 в Azure. Это FTP через TLS с отключенным анонимным доступом.

Попытка использовать сервер с помощью Filezilla работает нормально - аутентификация, передача, список каталогов - все ... кроме того, что я получаю следующее предупреждение от Filezilla:

Сервер отправил пассивный ответ с не маршрутизируемым адресом. Вместо этого используется адрес сервера.

Конечно, это имеет смысл - виртуальная машина имеет частный IP-адрес и в пассивном режиме отправляет этот частный IP-адрес клиенту. Решение - добавьте в vsftp.conf следующее (это пример, а не фактическая конфигурация):

pasv_enable=YES
port_enable=YES
#The VM allows connections to ports 12345 & 12346 - remember, this is an example
pasv_min_port=12345 
pasv_max_port=12346
#The VM's domain name
pasv_address=myftpservervm.cloudapp.net
#Make vsftp resolve myftpservervm.cloudapp.net and send that IP address to clients
pasv_addr_resolve=YES

Потом перезапускаю vsftp, и ... ничего не происходит. Я до сих пор получаю такие:

Сервер отправил пассивный ответ с не маршрутизируемым адресом. Вместо этого используется адрес сервера.

Я даже пробовал установить pasv_address на точный (внешний) IP-адрес сервера (с и без pasv_addr_resolve=YES) и результат тот же.

Я что-то упускаю?

Я использую vsftpd 3.0.3 (из репозитория Ubuntu) с Filezilla 3.24.0 на Ubuntu 16.04 x64

Редактировать:

Очевидно vsftp отправляет IP-адрес 0.0.0.0 при входе в пассивный режим. это вопрос кажется актуальным.

Тестирую в своей лаборатории, сначала столкнулся с такой же проблемой, как и вы. Я проверил следующие шаги:

1.netstat -ant Я получаю следующий результат

tcp6       0      0 172.17.1.4:21           167.220.255.56:10979    TIME_WAIT  

Исходя из моего опыта, ftp должен слушать tcp не tcp6 на виртуальной машине Azure

2. пытаюсь изменить файл конфигурации /etc/vsftpd.conf.

listen=yes
listen_ipv6=no

Затем я перезапускаю службу ftp и проверяю, используя netstat -ant

tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN  
  1. Протестируйте с помощью Filezilla.

Примечания: вы должны открыть порты 20,21,12345-12346 в Azure NSG (правило для входящих подключений).

Вам нужна небольшая модификация. Отредактируйте /etc/vsftpd.conf или любой другой файл конфигурации и сделайте это изменение:

pasv_address=public_ip_of_aws_instance_not_hostname_or_private_ip

Сохраните файл, перезапустите службу vsftpd и проверьте еще раз!

Убедитесь, что пассивные порты шлангов находятся в списке разрешенных tcp в ваших группах безопасности (вы можете настроить их на панели инструментов AWS EC2).