4

У меня проблемы с настройкой FTP между моей хост-ОС (Windows 7) и гостевой ОС (Ubuntu 10.04). Я использовал параметры сети в VirtualBox для настройки переадресации портов на 80, 21 и 22. Доступ к веб-серверу через порт 80 работает отлично, но у меня есть некоторые проблемы с FTP на порт 21 и SFTP на 22.

Это вывод, когда я пытаюсь подключиться к порту 21 в FileZilla:

Status: Connecting to 127.0.0.1:21...
Status: Connection established, waiting for welcome message...
Response:   220 (vsFTPd 2.2.2)
Command:    USER menuplus
Response:   331 Please specify the password.
Command:    PASS *****
Response:   230 Login successful.
Status: Connected
Status: Retrieving directory listing...
Command:    PWD
Response:   257 "/srv/www/vhosts/mp"
Command:    TYPE I
Response:   200 Switching to Binary mode.
Command:    PASV
Response:   227 Entering Passive Mode (10,0,2,15,205,164).
Command:    LIST
Error:  Connection timed out
Error:  Failed to retrieve directory listing

Соединение установлено, но команда LIST терпит неудачу, что заставляет меня думать, что, возможно, неправильно настроены разрешения на гостевой ОС, но пользователь FTP имеет полный доступ к своему домашнему каталогу.

Что может быть не так?

1 ответ1

3
Command:    PASV
Response:   227 Entering Passive Mode (10,0,2,15,205,164).
Command:    LIST
Error:  Connection timed out

Сообщение об ошибке «Тайм-аут соединения», как вы можете надеяться. Если возникла проблема с правами доступа, LIST сразу же завершит работу с ответом "Отказано в доступе" или "Отказано в доступе" с удаленной стороны.

FTP не работает с NAT. Он использует отдельное управление и соединения для передачи данных - и каждый раз, когда требуется соединение для передачи данных, клиент FTP должен подключаться к адресу, указанному в результате PASV сервера. В этом случае ваш сервер говорит клиенту подключиться к 10.0.2.15 для вывода LIST - это не работает из-за того, что ваша виртуальная машина находится за VirtualBox NAT. (Более продвинутые реализации NAT, такие как в домашних маршрутизаторах, "корректируют" трафик FTP, чтобы обойти это.)

Ваш выбор - использовать "мостовые" сети VirtualBox, что делает вашу виртуальную машину частью реальной сети, или использовать SFTP, который всегда использует одно соединение управления / передачи данных и не должен иметь такой же проблемы.

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