FTP mit Telnet



Da ab und zu die Fragen aufkommt, wie man denn mit FTP arbeitet, hier mal eine kleine und simple Einstiegshilfe:

*Benötigt wird ein vorhandener FTP-Server.

Grundwissen zu FTP: Für FTP gibt es eine Steuerungsleitung und eine Datenleitung. Die Steuerungsleitung wird meistens im ASCII-Format gesteuert, da meistens keine Unicode-Zeichen übertragen werden müssen. Die Datenleitung wird nur dann geöffnet, wenn ein Vorgang einen längeren Zeitraum benötigen könnte (z.B. Verzeichnisauflistung mit mehreren tausend Dateien). Desweiteren wird die Datenleitung meist in den binären Modus gesetzt, da ja Daten übertragen werden müssen.


Startet 2 Kommandozeilen. (Start->Ausführen->cmd enter)


In die erste tippt ihr jetzt ein:

telnet servername ftp-port
also z.B. telnet www.diinggentlementz.com 21



Jetzt gebt ihr folgendes ein:

USER euer ftp-user="" Einfach euren FTP-Usernamen eintragen
PASS ftp-passwort Und hiermit das richtige Passwort
SYST Gibt das aktuelle FTP-System aus
PWD Gibt das aktuelle Verzeichnis zurück



Es gibt jetzt auch noch folgende Befehle, die ihr benutzen könnt.

NOOP No Operation - verhindert einen Timeout
CWD relativer pfad="" Verzeichnis wechseln z.B. CWD /html/
PASV passiver Modus, öffnet Datenleitung
SITE CHMOD recht datei ändert Dateizugriffsrechte
LIST -al gibt über Datenleitung eine Verzeichnisliste aus


So. Um z.B. jetzt eine vorhandene Verzeichnisliste zu bekommen, muss man
in die erste Kommandozeile PASV eingeben. Damit wechselt man lokal in den passiven Modus, der Server öffnet einen Port, um eine Datenleitung bereitzustellen. Mit der zweiten Kommandozeile kann man jetzt auf diesen Port verbinden.
Der Befehl PASV gibt einen String zurück, in Form von
227 Entering Passive Mode (*,*,*,*,124,161)
Die ersten vier Ziffern geben die ServerIP, die letzten zwei Ziffern (124, 161) den Serverport, auf den man connecten soll, wieder.
Um den Port zu errechnen, multipliziert man die erste Portziffer mit 256 und addiert die zweite Portziffer dazu: z.B. 124 * 256 + 161 = 31905

Daher gibt man in die zweite Console jetzt ein: telnet servername 31905
Nun besteht eine Datenverbindung. Jetzt kann man in der ersten Console in die Steuerleitung folgendes eingeben: LIST -al
Damit weiss der FTP, dass er auf der Datenleitung jetzt etwas ausgeben kann.
Auf der Datenleitung wird eine aktuelle Verzeichnisliste ausgegeben, die unter anderem auch die Rechte jeder Datei und jedes Verzeichnisses in String-Schreibweise enthält.
Eine kleine Liste mit weiteren Befehlen lässt sich hier finden:
http://www.vbarchiv.net/workshop/workshop22s3.html