Как сказано в заголовке, мне не удается подключить мой хост Windows 10 к моему FTP-серверу на гостевой стороне VirtualBox (Ubuntu 18.04). На гостевой стороне сервер vsftpd работает нормально, без проблем могу подключиться.
Поэтому я попытался перенаправить связанный порт на хост (NAT) и попытался подключиться к серверу через FileZilla. Он выполняет вход в систему, но всегда не может получить список каталогов. Я попытался деактивировать брандмауэры, предоставив все права доступа к папке, но это ничего не меняет.
Читал, что там может быть проблема пассивного режима:
Проблемы с доступом к файлу FTP для гостевой системы VirtualBox под управлением Windows 2008 Server R2 x64
Поэтому я добавил следующие строки в мой vsftpd.conf
:
pasv_enable=YES
pasv_min_port=8020
pasv_max_port=8020
port_enable=YES
pasv_address=127.0.0.1
Я перенаправил порт 8020, но теперь в FileZilla появляется следующая ошибка:
Не удалось установить соединение для передачи данных: WSAEADDRNOTAVAIL — Невозможно назначить запрошенный адрес
Полный ответ FileZilla:
Status: Connecting to 127.0.0.1:2100...
Status: Connection established, waiting for welcome message...
Status: Server does not support non-ASCII characters.
Status: Logged in
Status: Retrieving directory listing...
Command: PWD
Response: 257 "/home/cakephp" is the current directory
Command: TYPE I
Response: 200 Switching to Binary mode.
Command: PASV
Response: 227 Entering Passive Mode (0,0,0,0,31,84).
Command: LIST
Error: The data connection could not be established:
WSAEADDRNOTAVAIL - Cannot assign requested address
Error: Connection timed out after 20 seconds of inactivity
Error: Failed to retrieve directory listing
Status: Disconnected from server
Я немного растерялся, есть ли у кого-нибудь предложения? заранее спасибо
РЕДАКТИРОВАТЬ1:
Без всякой надежды я также попытался получить доступ из командной строки Windows. Он подключается, но когда я ls
в текущей папке я получаю следующую ошибку:
500 illegal PORT command.
425 use PORT or PASV first.
Но я думаю, это потому, что ftp.exe не поддерживает пассивный режим.
На всякий случай вы можете найти здесь весь мой текущий файл конфигурации vsftpd. Кроме того, я могу легко получить доступ к гостевому серверу SSH с хоста с помощью Putty.
РЕДАКТИРОВАТЬ2:
Я установил listen_ipv6
к YES
, изменено pasv_max_port
до 8030, чтобы увеличить количество пассивных портов и перенаправить их. Я получаю следующие журналы от FileZilla:
Status: Connecting to 127.0.0.1:2100...
Status: Connection established, waiting for welcome message...
Status: Server does not support non-ASCII characters.
Status: Logged in
Status: Retrieving directory listing...
Command: PWD
Response: 257 "/home/cakephp" is the current directory
Command: TYPE I
Response: 200 Switching to Binary mode.
Command: PASV
Response: 227 Entering Passive Mode (0,0,0,0,31,90).
Command: LIST
Error: The data connection could not be established: WSAEADDRNOTAVAIL - Cannot assign requested address
Error: Connection timed out after 20 seconds of inactivity
Error: Failed to retrieve directory listing
1 ответ
Ответ: 227 Переход в пассивный режим (0,0,0,0,31,84).
В 0,0,0,0
скорее всего, из-за известной ошибки в vsftpd.
Если это так, чтобы исправить это, убедитесь, что сервер не прослушивает IPv6-адрес:
listen_ipv6=NO
listen=YES
Подробнее см. Аналогичный вопрос о сбое сервера:
Пассивный ответ vsftpd с адресом 0,0,0,0 даже с правильным pasv_address