File Transfer Protocol
(FTP)
Das File Transfer Protocol (FTP), ist ein spezifiziertes Netzwerkprotokoll zur Dateiübertragung über TCP/IP-Netzwerke. FTP ist in der Anwendungsschicht des TCP/IP Protokollstapels angesiedelt. Es wird benutzt, um Dateien vom Server zum Client (Download), vom Client zum Server (Upload) oder clientgesteuert zwischen zwei Servern zu übertragen. |
|
Anders als z.B. HTTP benutzt FTP zur Kommunikation mehr als eine Verbindung: Zunächst wird zum Port 21 des Servers, dem Control Port, eine Verbindung zur Authentifizierung und Befehlsübertragung aufgebaut. Hier reagiert der Server auf jeden Befehl des Clients mit einem Statuscode, oft mit einem angehängten, erklärenden Text. Zur eigentlichen Datenübertragung wird dann im Bedarfsfall eine separate Verbindung initiiert (allgemein gilt: Port 20 - Datenübertragung, Port 21 - Initiierung der Session, Kommandoübertragung). FTP kennt dazu zwei Modi:
-
Beim Active Mode baut der Server von seinem Port 20, dem Data Port, eine Datenverbindung zu einem vom Client gewählten Endpunkt auf. Dieser Endpunkt ist typischerweise ein Port des Clients, der jenseits 1023 liegt, kann aber auch ein anderer Server sein, der seinerseits in den Passive Mode geschaltet wurde, also auf eine Verbindung wartet (sogenanntes FXP).
Die Kommunikation mit Befehlen erfolgt auf dem Port 21. Man spricht auch von der Steuerung "Out of Band". Somit bleibt es möglich, dass während der Datenübertragung die Partner noch immer miteinander kommunizieren können.
-
Beim Passive Mode baut der Client eine Datenverbindung zum vom Server gewünschten Port auf. Hier wird typischerweise von beiden Seiten ein Port jenseits 1023 benutzt.
Diese Technik wird eingesetzt, wenn der Client für den Server nicht erreichbar ist. Dies ist beispielsweise der Fall, wenn der Client sich hinter einem Router befindet, der die Adresse des Clients mittels NAT umschreibt, oder wenn eine Firewall das Netzwerk des Client vor Zugriffen von außen abschirmt.
Viele FTP-Server, vor allem Server von Universitäten und Fachhochschulen, bieten so genanntes Anonymous FTP an. Hier ist zum Einloggen neben den realen Benutzerkonten ein spezielles Benutzerkonto, typischerweise "anonymous" und/oder "ftp", vorgesehen, für das kein (oder ein beliebiges) Passwort angegeben werden muss. Zum "guten Ton" gehört jedoch, bei anonymem FTP seine eigene, gültige E-Mail-Adresse als Passwort anzugeben.
Für das Datenübertragungsverfahren wird ein FTP Client benötigt.
Kommandos
Die folgenden Kommandos sind im Client-Programm einzugeben:
- ![Kommando]
- Führt ein Shell-Kommando aus
- $[Makroname] ([Argumente])
- Führt ein Makro aus
- append [lokal_file] [remote_file]
- Kopiert den Inhalt einer lokalen Datei [lokal_file] an das Ende der Datei [remote_file] auf dem Server
- ascii
- Einstellen von ASCII als Übertragungsmodus
- binary
- Einstellen von binary als Übertragungsmodus
- bye
- Schließt die Verbindung zum Server und beendet das Programm
- cd [remote-directory]
- Wechselt in das Arbeitsverzeichnis [remote-directory] auf dem Server
- cdup
- Wechselt in die nächsthöhere Verzeichnisebene auf dem Server
- close
- Schließt die Verbindung zum Server und löscht alle Makros. Das Programm wird jedoch nicht beendet
- delete [remote_file]
- Löscht die Datei [remote_file] auf dem Server
- dir
- Zeigt den Inhalt des aktuellen Arbeitsverzeichnisses an
- disconnect
- Äquivalent zu close
- get [remote_file] ([local_file])
- Kopiert die Datei [remote_file] vom Server auf den Client und speichert sie unter dem Namen [local_file]. Ist [local_file] nicht gegeben, wird sie unter dem ursprünglichen Namen abgespeichert.
- hash
- Gibt für jeden übertragenden Datenblock ein Doppelkreuz (#) aus. Sinnvoll bei der Übertragung von sehr großen Dateien
- help ([Kommando])
- Gibt Informationen über das Kommando [Kommando] aus. Ist kein Kommando gegeben, wird eine Liste aller verfügbaren Kommandos ausgegeben
- lcd ([local_directory])
- Wechselt in das Verzeichnis [local_directory] auf dem Client. Ist kein Verzeichnis angegeben, wird in das Home-Verzeichnis des aktuellen Benutzers gewechselt
- ls [remote_directory] ([local_file])
- Gibt eine Kurzform des Verzeichnisses [remote_directory] aus und leitet die Ausgabe, wenn gegeben, in die Datei [local_file] auf dem Client-Rechner um
- macdef [Makroname]
- Definiert ein Makro
- mget [remote_files]
- Kopiert mehrere Dateien vom Server auf den Client. Wildcards sind erlaubt
- mkdir [directory_name]
- Erstellt das Verzeichnis [directory_name] auf dem Server
- mput [locale_files]
- Kopiert mehrere Dateien vom Client auf den Server. Wildcards sind erlaubt
- open [host] ([port])
- Baut eine Verbindung zum FTP-Server [host] auf
- passive
- Schaltet den Passive Mode ein/aus
- prompt
- Schaltet den interaktiven Modus ein/aus
- put [locale_file] ([remote_files])
- Kopiert eine Datei [locale_file] aus dem Arbeitsverzeichnis des Client zum Server und legt sie dort unter dem Namen [remote_files] ab. Ist [remote_files] nicht gegeben, wird der ursprüngliche Dateiname beibehalten
- pwd
- Gibt das aktuelle Arbeitsverzeichnis auf dem Server aus
- quit
- Äquivalent zu bye
- rename [from] [to]
- Benennt die auf dem Server liegende Datei [from] in [to] um
- reset
- Rücksetzen und Resynchronisation der Sitzung
- rmdir [remote_directory]
- Löscht das Verzeichnis [remote_directory] auf dem Server
- runique
- Verbietet das Überschreiben von Dateien auf dem Client-Rechner, indem an den Dateinamen eine Endung in Form von .Zahl angehängt wird
- send [locale_file] ([remote_file])
- Äquivalent zu put
- status
- Gibt Statusinformationen aus
- sunique
- Wie runique nur für Dateien auf dem Server.
- type ([type])
- Festlegen des Übertragungsmodus (ASCII,IMAGE). Fehlt [type], wird der aktuell verwendete Type ausgegeben
- user [username] [password]
- Anmelden mit dem Benutzer [username] und dem Passwort [password]
- verbose
- Umstellen des Anzeigemodus. Standardmäßig werden alle Antworten vom Server angezeigt