У меня была такая же проблема некоторое время назад, и хотя я не был подключен через гостевую учетную запись - я все еще не получал данных, возвращаемых при выдаче команд типа dir
или ls
.
Проблема здесь заключается в том, что используемый вами FTP-клиент находится в активном режиме - по умолчанию. Вместо этого вы должны переключиться в пассивный режим, установив соединение FTP, а затем набрав passive
. Вы должны получить подтверждающее сообщение о том, что пассивный режим включен. Затем введите свои команды ls
или dir
.
Объяснение: Когда вы запускаете FTP, он содержит два разных соединения - одно для команд (командное соединение) и одно для передаваемых данных (соединение для передачи данных). Когда вы находитесь в активном режиме, командное соединение устанавливается на порт сервера. Однако соединение для передачи данных остается на усмотрение сервера. Затем сервер подключается к вашей машине через порт 20 для этого подключения. Проблема заключается в том, что, поскольку в наши дни атаки и взлом являются более распространенными, чем при изобретении FTP, данные, отправленные внешним источником (сервером) на порт 20 на вашей машине, будут заблокированы вашим брандмауэром, NAT или другим программным обеспечением безопасности. ,
Когда вы используете пассивный режим, клиент получает ответственность за установление соединения для передачи данных. Для этого он выбирает случайный порт на сервере, а затем устанавливает соединение. Это не должно быть заблокировано сервером или любым брандмауэром или программным обеспечением безопасности.
Для более подробного объяснения смотрите здесь:
http://www.jscape.com/blog/bid/80512/Active-vs-Passive-FTP-Simplified