Miałem ten sam problem jakiś czas temu i chociaż nie byłem połączony za pośrednictwem konta gościa - nadal nie otrzymałem żadnych danych przy wydawaniu poleceń takich jak dir
lub ls
.
Problem tutaj brzmi, jakbyś używał klienta FTP w trybie aktywnym - który jest domyślny. Zamiast tego powinieneś przejść do trybu pasywnego , ustanawiając połączenie FTP, a następnie wpisując passive
. Powinieneś otrzymać komunikat potwierdzający, że tryb pasywny został włączony. Następnie wprowadź swoje ls
lub dir
polecenia.
Objaśnienie: Po uruchomieniu FTP zawiera dwa różne połączenia - jedno dla poleceń (połączenie poleceń) i jedno dla przesłanych danych (połączenie danych). Gdy jesteś w trybie aktywnym , połączenie polecenia jest ustanawiane na porcie serwera. Jednak połączenie danych jest pozostawione serwerowi do ustanowienia. Serwer następnie łączy się z komputerem na porcie 20 dla tego połączenia. Problem polega na tym, że ponieważ ataki i hakowanie są obecnie bardziej powszechne niż w momencie wynalezienia FTP, dane wysyłane przez zewnętrzne źródło (serwer) do portu 20 na twoim komputerze będą blokowane przez zaporę, NAT lub inne oprogramowanie zabezpieczające .
W trybie pasywnym klient jest odpowiedzialny za ustanowienie połączenia danych. W tym celu wybiera losowy port na serwerze, a następnie nawiązuje połączenie. Nie powinno to być blokowane przez serwer ani zaporę ogniową lub oprogramowanie zabezpieczające.
Bardziej szczegółowe wyjaśnienie znajduje się tutaj:
http://www.jscape.com/blog/bid/80512/Active-vs-Passive-FTP-Simplified