|
Netzwerk-Kommandos
Vorab sollen ganz kurz einige Remote-Kommandos besprochen werden. Aus Berkley-UNIX
in die Release 4 übernommen wurde die Familie der sogenannten 'R-Kommandos'(weil sie alle mit "r" beginnen). Sie erlauben komfortable Kommunikationzwischen UNIX-Rechnern auf der Basis von TCP/IP. Jeder Rechner im Netz(= Host) besitzt eine Datei /etc/hosts.equiv, in der "vertrauenswürdige"Rechner eingetragen sind. Wollen sich Benutzer von einem dieser Rechnerauf dem lokalen Computer einloggen, brauchen sie kein Passwort fürden Rechner-Rechner-Übergang (wobei "Benutzer" auch Dämonprozessesein können --> automatischer Datenaustausch möglich). Enthält
die Datei nur eine Zeile mit einem '+'-Zeichen, werden alle angeschlossenen
Rechner akzeptiert. Gibt es keine "vertrauenswürdigen" Rechner, ist
jeweils die Eingabe des Login-Paßwortes nötig. Außerdem
funktioniert das Ganze nur, wenn man auf Quell-und Zielrechner die gleiche
Benutzerkennung hat.
Die Benutzer eines Rechners können auf einen
anderen Rechner im Home-Verzeichnis eine Datei namens '.rhosts' anlegen,
über deren Einträge entschieden wird, von welchem Rechner aus
der Benutzer sich ohne Passwort einloggen darf.
rlogin rhost [ -ec ] [ -8 ] [ -l username ]
Rechnername Einloggen auf einem anderen Rechner im Netz. Nach Eingabe des
Passwortes können Sie auf diesem Rechner genauso arbeiten, wie auf
den lokalen Rechner (fehlt die explizite Angabe einer Benutzerkennung,
wird die Benutzerkennung automatisch übertragen).
rcp [-r] Quellrechner:datei Zielrechner:datei
Kopieren von Dateien zwischen zwei Rechnern. Beim eigenen Rechner kann die
Angabe Quell-/Zielrecher entfallen. Die Option "-r" erlaubt das Kopieren
ganzer Verzeichnisbäume.
rsh rhost Kommando
Erzeugen einer Shell auf einen fernen Rechner im Netz. Die
Ausgaben erfolgen über die lokale Shell. Umleitung der Ausgabe auf
dem Host durch Quoten des Umleitungssymbols ('>').
rwho rhost
Who am Remote-Rechner
Das "rlogin"-Kommando etabliert eine Login-Shell am entfernten Rechner "rhost".
Der Terminaltyp (z.B. VT100, VT100n, AT386, etc) wird von der aktuellen Sitzung am lokalen
System an das entfernte System übergeben. Da einige Softwarekomponenten nur
bestimmte Terminaltypen (z.B. vi-Editor) unterstützen, kann es aber notwendig sein,
für solche Arbeiten den Terminaltyp umzustellen.
"~" ist das rlogin-Fluchtsymbol (Voreinstellung). Die Eingabe von
"~." löst jede bestehende Verbindung auf. Der reguläre Weg eine
bestehende Verbindung abzubauen ist, sich auf dem entfernten System abzumelden.
Beim Kommandoaufruf lassen sich folgende Optionen angeben:
- -e
Das rlogin-Fluchtsymbol kann mit dieser Option bei jedem Verbindungsaufbau
nach eigener Wahl gesetzt werden.
- -l
Wird beim rlogin-Aufruf die Option -l Benutzername nicht angegeben, so
wird der Username der lokalen Sitzung als Zielusername mitübertragen.
Die Passwortabfrage erfolgt interaktiv. Mit der Option -l hat man die
Möglichkeit, sich auf dem Zielsystem unter einem anderen Benutzernamen
anzumelden.
- -8
Die "-8"-Option erlaubt einen durchgehenden 8-Bit-Verkehr mit dem entfernten
System, anderenfalls werden nur die 7 niederwertigen Bits gesendet.
Arbeitet man häufig auf zwei oder mehreren via rlogin verbundenen
Rechensystemen, so hat man die Möglichkeit, sich den Zugang beim Zielsystem ohne
Passworteingabe einzurichten. Dazu muß im Homedirectory des Nutzers auf dem
Zielsystem eine Datei ".rhosts" eingerichtet werden, in welcher der Name des
zugelassenen rufenden Rechensystems steht. In diesem Fall besteht die Gefahr, daß
ein Hacker, der einen Account geknackt hat, gleich Zugang zu mehreren Systemen bekommt.
Weitere Netzwerkprogramme, die man ständig zum Fern-Login braucht,
sind 'telnet' und 'ftp'. An dieser Stelle gibt es eine kurze Bedienungsanleitung,
im Internet-Skript werden die Hintergründe erklärt.
Telnet
telnet eignet sich besonders für die Kommunikation von UNIX-Rechnern
mit Computern, die andere Betriebssysteme verwenden. Um eine Telnet-Sitzung
zu starten wird telnet aufgerufen.
telnet host
Telnet (Teletype Network) unterscheidet zwei Modi, den Kommando-
und den Eingabemodus. Der Kommandomodus ist aktiv, wenn man Telnet ohne Argument
aufruft. Am Bildschirm erscheint der Prompt "Telnet>". Wird Telnet
mit Argument aufgerufen, so wird ein "open"-Kommando mit dem angegebenen Argument
ausgeführt und man befindet sich im Eingabemodus, bei dem zwei
Übertragungsmodi unterschieden werden:
- der "Zeichen für Zeichen"-Modus
In diesem Modus wird im Regelfall jedes Zeichen sofort an das
entfernte System zum Zweck der Weiterverarbeitung gesendet.
- der "Zeile für Zeile"-Modus
In diesem Modus wird der eingegebene Text lokal angezeigt, aber nur volle
Zeilen werden (im Regelfall) an das entfernte System gesendet.
Welcher der beiden Modi aktiviert wird, hängt vom Zielsystem ab und ist mit
dem Kommando status abfragbar. Vom Eingabe- in den Kommandomodus kann
mit dem Telnet-Fluchtsymbol (Voreinstellung "^]" (Ctrl-])) gewechselt werden. Nur im
Kommandomodus können die unten beschriebenen Kommandos eingegeben werden. Hat
man eine bestehende Verbindung und wechselt in den Kommandomodus, so fällt
man automatisch nach Abarbeitung eines Kommandos wieder in den Eingabemodus
zurück.
Falls der localchars-Schalter auf EIN steht (das ist die
Grundeinstellung im Zeilen-Modus), werden in beiden Modi die "quit"-, "intr"-
und "flush"-Zeichen lokal abgefangen und als Telnet-Protokoll-Sequenzen an das
entfernte System gesendet.
Während eine Verbindung zu einem entfernten System besteht, kann in den
Telnet-Kommandomodus mittels dem Telnet-Fluchtsymbol (Voreinstellung "^]")
umgeschaltet werden.
Nachfolgend werden die verfügbaren Kommandos beschrieben. Kommandos können
soweit verkürzt eingegeben werden, als sie noch eindeutig erkennbar sind. Gleiches
gilt auch für die Argumente der Kommandos mode, set,
toggle und display. Im Kommandomodus haben die üblichen
Terminal-Editier-Konventionen Gültigkeit (UNIX-Shell und "stty"-Einstellungen).
- open host
eröffnet eine Verbindung zu dem bezeichneten Host. Der Host kann mit seinem
Namen (z.B. ftp.UniBw-Muenchen.de) oder mit seiner Internet-Adresse (z.B.
129.187.10.3) angegeben werden.
- close
schließt eine Telnet-Sitzung und kehrt in den Kommandomodus zurück.
Wenn Argumente beim Aufruf angegeben wurden, ist die Wirkung die gleiche wie bei
"quit".
- quit
schließt jede offene Telnet-Sitzung und verlässt Telnet.
- mode type
Als "type" steht entweder "line" für den "Zeile für
Zeile"-Modus oder "character" für den "Zeichen für Zeichen"-Modus
(jeweils ohne die Anführungszeichen geschrieben). Die Umschaltung erfolgt
nur mit Genehmigung des Zielsystems.
- set argument value
Setzt eine oder mehrere Telnet-Variablen - argument auf einen bestimmten
Wert value. Der spezielle Wert "off" schaltet die Funktion aus, die im Zusammenhang
mit der Variablen steht. Der Wert von Variablen kann mit dem "display"-Kommando
abgefragt werden. Mit Ausnahme des Fluchtsymbols gelten für sie die Voreinstellungen
des Terminals. Es können folgende Variablen angegeben werden:
- escape
Das ist das Telnet-Fluchtsymbol (Voreinstellung "^]"), das eine
Umschaltung in den Kommandomodus bewirkt, wenn eine Verbindung zu einem
entfernten System besteht.
- interrupt
Setzen des "interrupt"-Zeichens. Telnet sendet dies als
"IP"-Sequenz (Interrupt Process) an das entfernte System.
- quit
Setzen des "quit"-Zeichens. Telnet sendet dies als
"BRK"-Sequenz (Break) an das entfernte System.
- flushoutput
Setzen des "flushoutput"-Zeichens. Telnet sendet dies
als "AO"-Sequenz (Abort Output) an das entfernte System.
- erase
Setzen des "erase"-Zeichens. Telnet sendet dies als
"EC"-Sequenz (Erase Character) an das entfernte System.
- kill
Setzen des "kill"-Zeichens. Telnet sendet dies als
"EL"-Sequenz (Erase Line) an das entfernte System.
- eof
Setzen des "eof"-Zeichens. Telnet sendet dies als
"eof"-Zeichen an das entfernte System.
- toggle arguments ...
schaltet diverse Schalter ein und aus, die bestimmen, wie Telnet auf verschiedene
Ereignisse reagieren soll. Es dürfen mehrere Argumente angegeben werden. Der
Zustand dieser Schalter kann mit dem "display"-Kommando abgefragt werden. Gültige
Argumente sind:
- localchars
Wenn dieser Schalter eingeschaltet ist, werden die "flush"-,
"interrupt"-, "quit", "erase"- und "kill"-
Zeichen (siehe oben) lokal erkannt und in die entsprechende Telnet-
Steuersequenz umgesetzt (resp.: ao, ip, brk,
ec und el). Anfangs ist dieser Schalter im "Zeile für Zeile"-Modus
eingeschaltet und im "Zeichen für Zeichen"-Modus ausgeschaltet.
- autoflush
Sind beide Schalter "autoflush" und "localchars" eingeschaltet und werden die "ao"-, "intr"- oder "quit"-Zeichen eingegeben, weigert
sich Telnet irgendwelche Daten auf dem Benutzer-Terminal anzuzeigen, bis das
entfernte System die Bearbeitung dieser Steuersequenzen bestätigt hat. Anfangs ist
dieser Schalter eingeschaltet, soweit der Benutzer nicht das Kommando "stty
noflsh" eingegeben hat (siehe "stty"-Kommando).
- autosynch
Sind beide Schalter "autosynch" und "localchars" eingeschaltet und werden die "intr"- oder "quit"-Zeichen eingegeben, sendet Telnet
zuerst die entsprechende Steuersequenz und anschließend die Telnet-"SYNCH"-Steuersequenz. Diese Vorgehensweise soll das entfernte System veranlassen, alle
bisherigen Eingaben zu verwerfen, bis beide Telnet-Steuersequenzen gelesen
und verarbeitet worden sind. Anfangs ist dieser Schalter ausgeschaltet.
- crmod
Ist dieser Schalter eingeschaltet, werden die "carriage return"-Zeichen, die vom entfernten System empfangen werden, in ein "carriage return"-Zeichen gefolgt von einem "line feed"-Zeichen umgesetzt. Dieser Modus hat nur
Wirkung auf die Zeichen, die vom entfernten System empfangen werden, jedoch
nicht auf die Zeichen, die vom Benutzer eingegeben werden. Dieser Modus ist nur
dann sinnvoll, wenn das entfernte System nur "carriage return"-Zeichen sendet
aber keine "line feed"-Zeichen. Anfangs ist dieser Schalter bei UNIX ausgeschaltet und bei DOS eingeschaltet.
- options
Wird dieser Schalter eingeschaltet, wird die Telnet-Protokoll-Verarbeitung
angezeigt. Anfangs ist dieser Schalter ausgeschaltet.
- netdata
Wird dieser Schalter eingeschaltet, werden die Verkehrsdaten im
hexadezimalen Format angezeigt. Anfangs ist dieser Schalter ausgeschaltet.
- ?
Zeige die zulässigen Schalter-Kommandos.
- status
zeigt den aktuellen Zustand von Telnet, die verbundenen Partner und den gegenwärtigen Modus.
- display [ argument... ]
zeigt alle oder nur ausgewählte Einstellungen und Schalter, die z.B. mit
"set" oder "toggle" eingestellt wurden (siehe unten).
- ? [ command ]
Funktionsgleich mit help.
- help [ command ]
Ohne Argument gibt Telnet eine Übersicht über die Hilfe-Funktion.
Wenn ein Kommando angegeben wird, gibt Telnet Auskunft über dieses Kommando.
- send arguments
sendet ein oder mehrere Sonderzeichen an das entfernte System. Folgende Argumente
können angegeben werden (auch mehrere auf einmal):
- escape
sendet das gegenwärtig definierte Telnet-Fluchtsymbol an das
entfernte System (Voreinstellung "^]"); somit ist dieses Zeichen auch an
das entfernte System sendbar.
- synch
sendet das Telnet-"SYNCH"-Zeichen. Diese Sequenz veranlaßt das entfernte System, alle bisherigen, aber noch nicht verarbeiteten
Eingaben zu verwerfen. Sie wird mittels TCP mit Dringlichkeit gesendet, kann aber
von der Gegenseite abgelehnt werden. Wenn das entfernte System ein "4.2 BSD"-System ist, so wird die Aufforderung verworfen werden und z.B. als Kommando-Antwort ein "r" wie rejected empfangen werden.
- brk
sendet die Telnet-"BRK"-Sequenz (Break), die für das
entfernte System eine Bedeutung haben kann.
- ao
sendet die Telnet-"AO"-Sequenz (Abort Output), die das entfernte
System veranlasst, jede noch anstehende Ausgabe für das Terminal zu
verwerfen.
- ayt
sendet die Telnet-"AYT"-Sequenz (Are You There), worauf das
entfernte System meist antwortet.
- ec
sendet die Telnet-"EC"-Sequenz (Erase Character), die das
entfernte System veranlasst, das zuletzt eingegebene Zeichen zu löschen.
- el
sendet die Telnet-"EL"-Sequenz (Erase Line), die das entfernte
System veranlasst, die aktuelle Zeile zu löschen.
- nop
sendet die Telnet-"NOP"-Sequenz (No Operation).
- ?
zeigt Hilfe-Information für das "send"-Kommando.
Beispiel: Verbindung zum Rechner sun1-lbs
telnet sun1-lbs
Telnet reagiert daraufhin mit:
Trying to .....
Connect to sun1-lbs
Escape Character is '^]'
Jetzt folgt die normale Loginsequenz auf dem Rechner sun1-lbs. Um weitere
Kommandos an Telnet geben zu können, muß der Befehl mit dem
angegeben Escape-Character eingeleitet werden (im Beispiel das ESC-Zeichen).
Beenden der Verbindung erfolgt in diesem Fall mit "^] quit" oder
einfach Ctrl-D.
telnet kann auch vorzüglich zum Testen von Verbindungen und Servern
verwendet werden. Bei Kenntnis der Protokolle (nachlesbar in den entsprechenden
RFCs) kann ein Protokoll wie SMTP, NNTP, HTTP, usw. auch von Hand nachgebildet
werden. Man kann so durch eine telnet-Verbindung nachsehen, ob auf einem fernen
System Mail-, News-, WWW- oder andere Dienste laufen.
ftp [ -v ] [ -d ] [ -i ] [ -n ] [ -g ] [ host ]
FTP ist die Benutzerschnittstelle zum Dateiübertragungsprotokoll.
Dieses Programm ermöglicht den Dateitransfer zwischen zwei Rechenanlagen. Es besitzt
eine eigene Kommandooberfläche, die interaktiv bedient wird. Der Aufruf dieses
Filetransferprogrammes erfolgt durch ftp.
FTP funktioniert aber auch, wenn man auf dem fernen Rechner keine Benutzerberechtigung
hat, denn viele Rechner bieten große Dateibereiche über sogenannten
'anonymen' FTP. Man gibt in diesem Fall als Benutzernamen 'ftp' ein und als Passwort
die eigene Mailadresse. Danach kann man sich im öffentlichen Dateibereich tummeln.
Wird beim Programmaufruf der gewünschte Kommunikationspartner (host) mit
angegeben, so wird sofort versucht, eine Verbindung zu diesem Rechensystem aufzubauen.
Ist der Versuch erfolglos, so wird in den Kommandomodus umgeschaltet. Der Prompt
"ftp>" erscheint immer auf dem Bildschirm, wenn ftp-Kommandos eingegeben
werden können. ftp verfügt über einen help-Mechanismus,
über den sämtliche auf dem jeweiligen System verfügbare Kommandos mit
Kurzerklärungen abfragbar sind.
Nachfolgend werden wesentliche Kommandos nach Funktionalität gruppiert vorgestellt.
Kommandos können soweit verkürzt eingegeben werden, als sie noch eindeutig
erkennbar sind. Enthalten Kommandoargumente "Blanks", so sind die Argumente beidseitig mit
Hochkommas eingeschlossen einzugeben.
- help [ command ]
zeigt kurze Informationen zu dem angegebenen Kommando "command". Wird
"command" weggelassen, zeigt dieser Aufruf eine Liste der zulässigen
Kommandos.
- open host
Je nach angewähltem System wird die Benutzerkennung und das zugehörige
Passwort interaktiv abgefragt oder man muß diese per ftp-Kommando
user aktiv senden.
- user user-name [ password ]
Eingabe von BEnutzerkennung und Passwort.
- !
Aufruf einer Shell auf dem lokalen System mit eingeschränkter Funktionalität. Für Dateiübertragung relevante Kommandos wie
mkdir, mv, cp, etc sind absetzbar. Verlassen wird
diese Shell mit "exit".
- lcd [directory ]
Wahl des Directories für die Dateiübertragung. Voreinstellung:
Homedirectory des Benutzers.
- pwd
Anzeige des aktuellen Directories auf dem entfernten System.
- cd remote-directory
Wahl des aktuellen Directories auf dem entfernten System.
- cdup
Wechsel in das nächsthöhere Directory auf dem entfernten System.
- dir [ remote-directory [ local-file ] ]
ls [ remote-directory [ local-file ] ]
Ohne Optionen erfolgt eine Anzeige der Einträge des entfernten aktuellen
Directories. Dabei liefert dir ausführliche und ls
eine knappe Information bezüglich des Directory-Inhalts.
Bei Angabe des remote-directory erfolgt die Anzeige der Einträge
des entfernten Directories. Wird local-file angegeben, erfolgt eine
Umlenkung der Directory-Anzeige in die Datei local-file auf dem lokalen
System.
- mdir remote-files [ local-file ]
mls remote-files [ local-file ]
Anzeige von Dateien aus dem entfernten aktuellen Directory und Abspeicherung in eine
lokale Datei.
- mkdir directory-name
Einrichten eines neuen Directories directory-name auf dem entfernten
System.
- rmdir directory-name
löscht das Directory directory-name auf dem entfernten System.
- rename [ from ] [ to ]
Umbenennen einer Datei auf dem entfernten System von from nach
to.
- delete remote-file
Löschen der Datei remote-file auf dem entfernten System.
- mdelete remote-files
Löschen mehrerer Dateien remote-files auf dem entfernten System.
- put local-file [ remote-file ]
send local-file [ remote-file ]
Dateiübertragung der Datei local-file vom lokalen zum entfernten
System. Wird remote-file nicht angegeben, so wird auch auf dem Zielsystem der
Dateiname local-file verwendet.
- append local-file [ remote-file ]
überträgt die Datei local-file vom lokalen System an das entfernte
System und hängt diese am Ende der Datei remote-file an. Wurde
remote-file nicht angegeben, wird die Datei ans Ende der Datei
local-file auf dem entfernten System angehängt.
- mput local-files
Dateiübertragung einer Dateigruppe namensgleich vom lokalen zum entfernten
System.
- get remote-file [ local-file ]
recv remote-file [ local-file ]
Dateiübertragung einer Datei remote-file vom entfernten System zum
lokalen System. Wird local-file nicht mitangegeben, so erhält die Datei
auch auf dem lokalen System den Dateiname remote-file.
- mget remote-files
Dateiübertragung einer Dateigruppe namensgleich vom entfernten zum lokalen
System.
- ascii
type ascii
Die Dateiübertragung findet im ASCII-Code statt. Gegebenfalls werden
Bei Binärdateien Zeichen verändert (z. B. die Zeilenendedarstellung
ans Zielsystem angepaßt) oder Zeichen verfälscht.
- binary
type image
type binary
Die Dateiübertragung findet transparent statt.
- case
Mit diesem Schalter läßt sich einstellen, ob Dateinamen beim Empfangen
(get, recv, mget) von Großbuchstaben
nach Kleinbuchstaben übersetzt werden sollen.
- glob
Mit diesem Schalter läßt sich einstellen, ob bei den Kommandos
mdelete, mget und mput bei Dateinamen, die
Metazeichen (*?[]~{}) enthalten, diese Metazeichen übertragen
werden oder nicht. ("off" keine Metazeichenbehandlung).
- ntrans [ inchars [ outchars ] ]
Definition und Aktivierung einer Übersetzungstabelle für Dateinamen, wenn
beim Dateiübertragungsauftrag (Senden und Empfangen) keine Zieldateinamen
angegeben werden. Zeichen eines Dateinamens, die in inchars zu finden
sind, werden durch das positionsgleiche Zeichen in outchars
übersetzt. Ist inchars länger als outchars, so
werden die korrespondenzlosen Zeichen von inchars aus
dem Zieldateinamen entfernt.
- prompt
Mit diesem Zeichen wird bei Mehrdateienübertragung gesteuert, ob jede zu
übertragende Datei extra quittiert werden muß oder nicht.
- verbose
Wenn der "verbose"-Modus eingeschaltet ist, erhält man für jede
übertragene Datei den Dateinamen auf dem lokalen und entfernten Rechner,
sowie die Datenmenge und die dafür benötigte Übertragungszeit
angezeigt.
- bell
Dieser Schalter bewirkt, daß je nach Stellung am Ende jedes
Dateiübertragungsauftrages ein akustisches Signal ertönt oder nicht.
- status
Anzeige der aktuellen logischen Schalterstellungen sowie des Verbindungszustandes.
- close
disconnect
Beendigung einer aktiven Verbindung.
- quit
Beendigung des Programmes ftp.
- bye
Beendigung einer aktiven Sitzung und des Programmes ftp.
Die optionalen Parameter beim ftp-Kommando setzen logische
Schalter für den ftp-Programmlauf. Im Kommandomodus sind die
Einstellungen jederzeit wieder änderbar.
- -v verbose-Schalter einschalten.
- -d debug-Schalter einschalten.
- -i interactive-Modus für Mehrdateiübertragung einschalten.
- -n verhindert, daß
- FTP zum Beginn der Sitzung
einen Login-Versuch unternimmt.
- -g glob-Schalter einschalten.
Die Datei-Übertragung wird durch die Terminal "interrupt"-Taste
(üblicherweise Ctrl-C) abgebrochen, was einen sofortigen Abbruch zur Folge haben soll.
Nicht alle Kommunikationspartner verstehen die Abbruchaufforderung und dann wird dennoch
die gesamte Datei übertragen ausgeführt.
Dateinamen, die als Argumente von FTP-Kommandos Verwendung finden, werden wie folgt
bearbeitet:
Ist "file globbing" eingeschaltet, werden bei den Kommandos mget,
mput und mdelete die Namen lokaler Dateien folgendermaß
behandelt:
- Der * steht für eine beliebige Anzahl (auch Null) von Zeichen.
- Das ?steht für ein einziges beliebiges Zeichen.
- Wird im Dateinamen eine Zeichenfolge angetroffen, die zwischen eckigen Klammern
oder zwischen geschweiften Klammern steht, so sind alle Dateinamen zutreffend, die an
dieser Stelle ein einziges beliebiges Zeichen aus der Zeichenfolge innerhalb der
Klammern enthalten.
- Steht die Zeichenfolge ~/ (Tilde, Schrägstrich) am Beginn des
Dateinamens, so wird sie durch den Home-Directory-Pfad ersetzt.
Das Zeichen ~, dem eine Benutzerkennung folgt, wird durch den
Home-Directory-Pfad dieser Benutzerkennung ersetzt.
Nicht alle ftp-Installationen unterstützen alle ftp-Kommandos.
Wenn sich eine Dateiübertragung nicht ordnungsgemäß abbrechen
läßt, kann der lokale ftp-Prozess mit dem Terminal-intr-Zeichen
(üblicherweise Ctrl-C) abgebrochen werden.
Neben den Kommandos für den "Normalbenutzer" gibt es noch Testkommandos,
die recht hilfreich sind, wenn man einen fernen Rechner nicht erreicht oder,
um mehr über das Netz zu erfahren.
ping
Falls man mit dem Kommando ping zuerst einmal "Ping-Pong" assoziert, liegt man gar nicht
so falsch. Allerdings werden hier keine Zelluloidbälle, sondern Datenpakete hin und her
geschickt. Man kann mit ping testen, ob ein Rechner im Netz erreichbar ist.
Das Programm ping erzeugt ICMP-Echo-Request-Pakete, die mit ICMP-Echo-Response-Paketen
beantwortet werden, wenn sie das angegebene System erreichen. Das Zielsystem kann durch
seinen Systemnamen (falls in der /etc/hosts oder im Nameservice enthalten) oder durch
seine Internet-Adresse angegeben werden. Durch den einfachen Aufruf
$ ping donald
erhält man je nach System die Meldung "donald is alive." oder es wird
pro Sekunde 1 Datenpaket gesendet. Die als Echo zurückkommenden Pakete werden
angezeigt. Ab gebrochen wird das Ping-Pong-Spiel durch das Interrupt-Signal
(Delete, Ctrl-C). Nach dem Abruch von ping wird noch eine kurze Statistik ausgegeben.
(die Wortkarge Variante von ping muß man durch die Option "-s" zur Dauerarbeit bringen).
Besonders interessant ist die Angabe "packet loss", also der Prozentsatz der nicht
be antworteten Pakete. Bei einer einwand freien Verbindung, insbesondere in einem
lokalen Netz, sollte hier eigentlich immer 0% stehen. Im Falle von 100%
ist definitiv etwas nicht in Ordnung. Passiert dies bei allen Systemen, so ist das
Netz defekt. Beispiel:
$ ping www.e-technik.fh-muenchen.de
PING www.e-technik.fh-muenchen.de (129.187.206.140): 56 data bytes
64 bytes from 129.187.206.140: icmp_seq=0 ttl=242 time=48.9 ms
64 bytes from 129.187.206.140: icmp_seq=1 ttl=242 time=41.9 ms
64 bytes from 129.187.206.140: icmp_seq=2 ttl=242 time=41.3 ms
64 bytes from 129.187.206.140: icmp_seq=3 ttl=242 time=39.9 ms
64 bytes from 129.187.206.140: icmp_seq=4 ttl=242 time=44.9 ms
64 bytes from 129.187.206.140: icmp_seq=5 ttl=242 time=42.9 ms
64 bytes from 129.187.206.140: icmp_seq=6 ttl=242 time=45.4 ms
64 bytes from 129.187.206.140: icmp_seq=7 ttl=242 time=40.5 ms
64 bytes from 129.187.206.140: icmp_seq=8 ttl=242 time=41.4 ms
64 bytes from 129.187.206.140: icmp_seq=9 ttl=242 time=42.3 ms
--- www.e-technik.fh-muenchen.de ping statistics ---
10 packets transmitted, 10 packets received, 0% packet loss
round-trip min/avg/max = 39.9/42.9/48.9 ms
arp
Das "Address Resolution Protocol" dient der Zuordnung von Internet-Adressen zu
Ethernet-Adressen. Zu diesern Zwecke existiert eine Adreßumwandlungstabelle
(adress-translation table), die normalerweise vom ARP selbständig aktualisiert
wird. Mit der Option "-a" wird der aktuelle Inhalt der Tabelle ausgegeben, z.B.:
$ arp -a
Net to Media Table
Device IP Address ------- Mask Flags Phys Addr
------ --------------------------- --------------- ----- -----------------
le0 brokrz.lrz-muenchen.de 255.255.255.255 00:00:a2:0f:76:97
le0 infoserv.rz.fh-muenchen.de 255.255.255.255 00:e0:29:06:18:d3
le0 flynt.rz.fh-muenchen.de 255.255.255.255 00:e0:29:08:49:f1
le0 kobra.rz.fh-muenchen.de 255.255.255.255 00:08:c7:a9:6c:cc
le0 netmon.rz.fh-muenchen.de 255.255.255.255 00:e0:29:0e:83:92
le0 linux4.rz.fh-muenchen.de 255.255.255.255 00:00:c0:93:19:d3
le0 linux5.rz.fh-muenchen.de 255.255.255.255 00:00:c0:37:19:d3
le0 door2.rz.fh-muenchen.de 255.255.255.255 00:00:c0:3f:fb:a7
le0 wapserv 255.255.255.255 SP 08:00:20:23:02:88
le0 sun10.rz.fh-muenchen.de 255.255.255.255 08:00:20:86:ce:5e
le0 kiosk1.rz.fh-muenchen.de 255.255.255.255 00:00:c0:60:af:d7
le0 satellit.rz.fh-muenchen.de 255.255.255.255 08:00:20:71:77:b4
le0 kaputt.rz.fh-muenchen.de 255.255.255.255 00:50:56:82:f0:f0
Mit Hilfe der Option "-d" können Einträge aus dieser Tabelle gelöscht werden.
Die Einträge sind jedoch nicht nicht permanent, sondem nach einer gewissen Zeit verschwinden
sie wieder. Daher ist es meistens nicht notwendig einen Eintrag manuell zu entfernen.
netstat
Mit Hilfe des Programms netstat können Status-Information über TCP/IP ausgegeben
werden. Bei der Fehlersuche kann sich dieses Programm ebenfalls als durchaus
nützlich erweisen. So wird mit der Option "-i" eine Statistik über die Benutzung der
Schnittstellen ausgegeben. Die Statistik zeigt die Namen der installierten Schnittstellen,
die "Maximal transmission unit" als die maximale Paketgröße des Netzwerks, das Netzwerk,
zu dem die Schnittstelle führt und die Adresse der Schnittstelle.
Kernel Interface table
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flags
lo 3584 0 220 0 0 0 220 0 0 0 BLRU
eth0 1500 0 0 0 0 0 0 0 0 0 BRU
Möchte man die Angaben numerisch, so verwendet man netstat -in. Von besonderem
Interesse sind die letzten fünf Spalten. Hier werden die Anzahl von empfangenen und
gesendeten Paketen, die Anzahl der dabei auftretenden Fehler, sowie die Anzahl der
Kollisionen ausgegeben, in die das System verwickelt waren. Sind die Zahlen
lpkts und Opkts gleich Null oder ist Opkts gleich Oerrs, so liegt ein
mehr oder weniger gravierendes Hardware-Problem vor. Die Anzahl der
Kollisionen sollte bei jedem System im Netz unter 5% von Opkts liegen. In die
sem Fall arbeiten die Netzwerkschnittstellen effizient. Eine weitere interessante
Option des netstat-Kommandos ist die Möglichkeit, sich die aktuellen Verbindungen
und aktiven Server mittels der Option "-a" anzeigen zu lassen. Bei diesem Aufruf
werden zunächst die zur Zeit benutzten Verbindungen ausgegeben. Dies ist dadurch
gekennzeichnet, daß in der Spalte (state) der Zustand ESTABLISHED anaeaeben wird. An
.schließend werden alle aktiven Server Prozesse ance-eben, d.h. alle Server, die
zur Zeit erreichbar sind. Ein Auszug aus der Ausgabe von netstat -a könnte
beispielsweise so aussehen:
Active Internet connections (including servers)
Proto Recv-Q Send-Q Local Address Foreign Address (State) User
tcp 0 0 *:netbios-ssn *:* LISTEN root
tcp 0 0 *:nntp *:* LISTEN root
tcp 0 0 *:auth *:* LISTEN root
tcp 0 0 *:sunrpc *:* LISTEN root
tcp 0 0 *:pop3 *:* LISTEN root
tcp 0 0 *:www *:* LISTEN root
tcp 0 0 *:finger *:* LISTEN root
tcp 0 0 *:midinet *:* LISTEN root
tcp 0 0 *:http-rman *:* LISTEN root
tcp 0 0 *:btx *:* LISTEN root
tcp 0 0 *:smtp *:* LISTEN root
tcp 0 0 *:telnet *:* LISTEN root
tcp 0 0 *:ftp *:* LISTEN root
tcp 0 0 *:netstat *:* LISTEN root
tcp 0 0 *:systat *:* LISTEN root
tcp 0 0 *:printer *:* LISTEN root
tcp 0 0 *:shell *:* LISTEN root
tcp 0 0 *:login *:* LISTEN root
tcp 0 0 *:exec *:* LISTEN root
udp 0 0 *:rplay *:*
udp 0 0 *:netbios-ns *:*
udp 0 0 *:sunrpc *:*
udp 0 0 *:ntalk *:*
udp 0 0 *:talk *:*
udp 0 0 *:syslog *:*
raw 0 0 *:1 *:*
Active UNIX domain sockets
Proto RefCnt Flags Type State Inode Path
unix 1 [ ACC ] SOCK_STREAM LISTENING 417 /dev/log
unix 2 [ ] SOCK_STREAM CONNECTED 440
unix 2 [ ] SOCK_STREAM UNCONNECTED 441 /dev/log
unix 2 [ ] SOCK_STREAM CONNECTED 499
unix 2 [ ] SOCK_STREAM UNCONNECTED 500 /dev/log
unix 2 [ ] SOCK_STREAM CONNECTED 517
unix 2 [ ] SOCK_STREAM UNCONNECTED 518 /dev/log
Die erste Spalte enthält das Transportprotokoll. Die zweite und dritte Spalte sagen
etwas über die Anzahl der Bytes in der Empfangs- bzw. Sende-Warteschlange aus. Die
nächsten beiden Spalten geben lokale und ferne Adressen einer Verbindung an. Diese
Adressen bestehen aus der Internet-Adresse und der Portnummer der Kommunikationspartner.
Ist der Rechner in der /etc/hosts bzw. der Dienst in der /etc/services eingetragen, so
werden statt der Adressen Rechnername bzw. der Name des Services aus gegeben. Dies
läßt sich durch den Aufruf von netstat -in verhindern. Handelt es sich
4611 um einen Eintrag für einen aktiven Server, so wird die lokale Adresse in der Form
"*.<portnummer>" und ferne Adressen in der Form "*.*" angegeben. Diese Art der
Ausgabe zeigt an, daß der entsprechende Dienst bereit ist. Bei TCP-Diensten zeigt
zusätzlich die letzte Spalte an, daß der Server auf LISTEN aesetzt ist. Kommt
für einen speziellen Dienst keine Verbindung zustande, obwohl andere Programme
(z.B. ping) funktionieren. so kann man mittels netstat -a auf dem
Zielsystem überprüfen, ob der Server dort aktiv ist. Nur dann kann eine entsprechende
Verbindung überhaupt aufgebaut werden.
traceroute
Um festzustellen, welchen Weg die Datenpakete zu einem fernen Rechner
nehmen und wie "gut" die Verbindung dorthin ist, kann man 'traceroute'
einsetzen. Das Programm schickt UDP-Pakete mit unterschiedlicher "Lebensdauer"
an einen unbenutzten Port und wertet so die Fehlermeldungen der einzelnen
Router und Gateways aus. Dem Kommando wird wie bei Ping nur der Rechnername
oder eine IP-Nummer als Parameter übergeben. Für jeden Gateway wird
dann auf dem Bildschirm eine Zeile ausgegeben:
Zähler Gateway-Name Gateway-IP-Nummer "round-trip"-Zeit (3 Werte)
Traceroute sendet jeweils drei Datenpakete. Wenn auf ein Paket keine
Antwort erfolgt, wird ein Sternchen (*) ausgegeben. Ist ein Gateway
nicht erreichbar, wird statt einer Zeitangabe '!N' (network unreachable)
oder '!H' (host unreachable) ausgegeben. Man kann so feststellen, wo
eine Verbindung unterbrochen ist, und auch, welchen Weg die Daten nehmen
- wo also der Zielrechner in etwa steht. Bei grafischen Benutzerschnittstellen
erfolgt die Parameterangabe über Dialogfelder und nicht in der Kommandozeile.
$ traceroute www.linux.org
traceroute to www.linux.org (198.182.196.56), 30 hops max, 40 byte packets
1 space-gw2m (194.97.64.8) 2.758 ms 3.637 ms 2.491 ms
2 Cisco-M-IV.Space.Net (195.30.0.123) 6.413 ms 4.118 ms 4.107 ms
3 Cisco-M-Fe0-0.Space.Net (195.30.0.126) 4.826 ms 4.508 ms 5.53 ms
4 Cisco-ECRC-H1-0.Space.Net (193.149.44.2) 5.977 ms 6.273 ms 20.832 ms
5 munich-ebs2-s0-0-0.ebone.net (192.121.158.189) 14.415 ms 17.018 ms 8.575 ms
6 newyork-ebs1-s5-0-0.ebone.net (195.158.224.21) 137.35 ms 139.103 ms 138.14 ms
7 serial0-0-1.br1.nyc4.ALTER.NET (137.39.23.81) 137.132 ms 141.742 ms 141.207 ms
8 134.ATM2-0.XR1.NYC4.ALTER.NET (146.188.177.178) 135.375 ms 128.12 ms 165.913 ms
9 189.ATM3-0.TR1.EWR1.ALTER.NET (146.188.179.54) 141.83 ms 144.798 ms 362.469 ms
10 105.ATM4-0.TR1.DCA1.ALTER.NET (146.188.136.185) 145.321 ms 147.889 ms 152.43 ms
11 299.ATM6-0.XR1.TCO1.ALTER.NET (146.188.161.169) 354.577 ms 133.535 ms 348.647 ms
12 193.ATM8-0-0.GW2.TCO1.ALTER.NET (146.188.160.49) 152.444 ms 369.313 ms 150.106 ms
13 uu-peer.oc12-core.ai.net (205.134.160.2) 365.008 ms 509.81 ms 144.898 ms
14 border-ai.invlogic.com (205.134.175.254) 270.065 ms 341.586 ms 153.441 ms
15 router.invlogic.com (198.182.196.1) 356.496 ms 506.371 ms 532.983 ms
16 www.linux.org (198.182.196.56) 584.957 ms 300.612 ms 380.004 ms
|
|
|