Linuxfibel - Nutzerkommandos - Netzwerkkommandos
Aus LinWiki.de
Inhaltsverzeichnis
|
[Bearbeiten] ftp - Einfacher FTP-Client
Aufruf: ftp [OPTIONEN] [host]
Das File Transfer Protocol ermöglicht den Austausch von Daten zwischen einem FTP-Server und den Clients. Beim Kommando ftp handelt es sich um einen einfachen, kommandozeilen-orientierten FTP-Client, der jeder Distribution beiliegen sollte.
Der Zugang auf einen FTP-Server erfordert prinzipiell die Angaben von Nutzerkennzeichen und einem Passwort. Alle Server, die allgemein zugängliche Daten zur Verfügung stellen, ermöglichen daher die Anmeldung als Nutzer ftp oder anonymous. Als Passwort ist die Angabe der eigenen email-Adresse üblich (aber nicht unbedingt erforderlich).
ftp startet, wird es ohne Angabe eines Zielrechners aufgerufen, im interaktiven Modus und erwartet weitere Eingaben. Als eine der ersten Aktionen ist die Verbindung zu einem Server mit dem Kommando open Servername sicherlich sinnvoll:
user@sonne> ftp ftp> open localhost Connected to localhost. 220 sonne.galaxis.de FTP server (Version 6.2/OpenBSD/Linux-0.11) ready. Name (localhost:user): ftp 331 Guest login ok, send your complete e-mail address as password. Password: 230 Guest login ok, access restrictions apply. Remote system type is UNIX. Using binary mode to transfer files. ftp>
Zur Login-Aufforderung gelangt man unmittelbar, wenn der Zielrechner per Kommandozeile angegeben wird.
Die Kommandos von ftp lassen sich grob in drei Gruppen einordnen: Kommandos zur Zugriffssteuerung, Kommandos zur Vereinbarung der Übertragungsparameter und Kommandos zum Datentransfer, wobei in diesem Abschnitt einzig elementare Kommandos zur Datenübertragung von Interesse sein sollen.
Den Inhalt des aktuellen Verzeichnisses (Kommando pwd) auf dem FTP-Server zeigen ls oder dir an. Um das Verzeichnis auf dem Server zu wechseln, gibt man cd [Verzeichnisname] ein. Ohne Angabe des Verzeichnisses landet man im FTP-Basisverzeichnis des Servers.
Datenübertragungen finden nun zwischen aktuellem Serververzeichnis und aktuellem Verzeichnis auf dem lokalen Rechner statt. Letzteres kann mit dem Befehl lcd [Verzeichnisname] geändert werden. Dateien vom Server lädt man mit get Datei herunter, möchte man Metazeichen im Dateinamen verwenden, nutzt man mget Datei_mit_Metazeichen:
user@sonne> ftp localhost Connected to localhost. 220 spitz.maus.de FTP server (Version 6.2/OpenBSD/Linux-0.11) ready. Name (localhost:user): ftp 331 Guest login ok, send your complete e-mail address as password. Password: 230 Guest login ok, access restrictions apply. Remote system type is UNIX. Using binary mode to transfer files. ftp> cd ftp1 250 CWD command successful. ftp> pwd 257 "/pub/ftp1" is current directory. ftp> lcd /tmp Local directory now /tmp ftp> ls 200 PORT command successful. 150 Opening ASCII mode data connection for '/bin/ls'. foo1 foo2 foo3 226 Transfer complete. ftp> mget f* mget foo1? y 200 PORT command successful. 150 Opening BINARY mode data connection for 'foo1' (0 bytes). 226 Transfer complete. mget foo2? n mget foo3? n ftp> bye 221 Goodbye.
Die Gegenrichtung, das Senden von Dateien zum Server, ist bei anonymem FTP meist untersagt. Möglich ist es mit den Kommandos put Datei bzw. mput Datei_mit_Metazeichen. Auch ein Anlegen von Verzeichnissen kann bei entsprechender Konfiguration erlaubt sein mkdir [Verzeichnisname].
[Bearbeiten] ifconfig - Status der Netzwerkinterface betrachten
Aufruf: ifconfig [interface]
Das Kommando ifconfig dient dem Administrator zur Konfiguration der Netzwerkschnittstellen. Der "normale" Benutzer kann sich einzig die aktuellen Konfigurationseinstellungen anzeigen lassen. Ohne Argumente aufgerufen, listet ifconfig die Einstellungen aller Schnittstellen auf, mit dem Namen einer Schnittstelle nur deren Charakteristiken:
# Der Pfad /sbin ist selten in $PATH eines Nutzers enthalten, deswegen Aufruf mit vollständigem Pfad
user@sonne> /sbin/ifconfig
eth0 Link encap:Ethernet HWaddr 00:90:27:8F:FC:86
inet addr:192.168.99.127 Bcast:192.168.99.255 Mask:255.255.255.0
UP brOADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:8203 errors:0 dropped:0 overruns:0 frame:0
TX packets:7363 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
Interrupt:10 Base address:0x8000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:3924 Metric:1
RX packets:94 errors:0 dropped:0 overruns:0 frame:0
TX packets:94 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
Die interessanteren Informationen zu einer Schnittstelle sind sicherlich die IP-Adresse (inet addr), die Broadcast-Adresse (Bcast), die Subnetzmaske (Mask). "UP" besagt, dass die Schnittstelle aktiv ist, unter "RX" und "TX" sind einige Informationen über empfangene und gesendete Pakete abzulesen.
[Bearbeiten] ping- Erreichbarkeit von Rechnern testen
Aufruf: ping [OPTIONEN] host
Ob ein Rechner derzeit im Netzwerk ansprechbar ist, verrät ping. Das Kommando sendet kleine Pakete an den Zielrechner und misst die Antwortzeiten. Der Rechner kann mittels seiner IP-Adresse oder als symbolischer Name angegeben werden. In letzterem Fall muss dieser aber auflösbar sein (irgendein Mechanismus muss zum Namen die entsprechende Adresse liefern können).
user@sonne> ping erde PING erde.galaxis.de (192.168.100.111): 56 data bytes 64 bytes from 192.168.100.111: icmp_seq=0 ttl=253 time=23.118 ms 64 bytes from 192.168.100.111: icmp_seq=1 ttl=253 time=9.612 ms 64 bytes from 192.168.100.111: icmp_seq=2 ttl=253 time=11.366 ms[Ctrl]+[C] --- erde.galaxis.de ping statistics --- 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 9.612/14.698/23.118 ms
ping wiederholt den Sendevorgang bis zum expliziten Abbruch durch Eingabe von [Ctrl]-[C]. Anschließend verrät es eine Statistik mit u.a. verlorenen Paketen (Zeitüberschreitung beim Empfang der Antwort), und den Zeiten der schnellsten/durchschnittlichen/langsamsten Übertragung.
Mit der Option -c Anzahl lässt sich die Anzahl der Testdurchläufe von vornherein beschränken. Ist man an der Aufzeichnung des Weges, den das Paket nimmt, interessiert, ist die Option -R nütze. Die weiteren Optionen betreffen im Wesentlichen die Manipulation spezieller Felder des IP-Headers sowie das Aussehen der Testpakete (zum Ändern der Paketgröße (normal 56 Bytes) wähle man -s Bytes):
user@sonne> ping -R -c 1 -s 512 www.linuxfibel.de
PING www.linuxfibel.de (195.211.141.227): 512 data bytes
520 bytes from 195.211.141.227: icmp_seq=0 ttl=125 time=30.403 ms
RR: sonne.galaxis.de (192.168.99.127)
erde.galaxis.de (192.168.51.1)
mars.galaxis.de (192.168.5.2)
aura.saxsys.de (195.211.141.226)
www.linuxfibel.de (195.211.141.227)
base.saxsys.de (192.168.5.1)
amor.saxsys.de (192.168.51.10)
192.168.99.2
sonne.galaxis.de (192.168.99.127)
0.0.0.89 (truncated route)
--- www.linuxfibel.de ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 30.403/30.403/30.403 ms
[Bearbeiten] netstat - Allerlei Netzwerkstatistiken...
Aufruf: netstat [OPTIONEN]
netstat ist ein Kommando, um Fehler oder Schwachpunke in der Netzwerkkonfiguration zu lokalisieren. Die Behebung der Fehler bleibt zwar dem Administrator vorbehalten, aber die verschiedenen Informationen werden auch dem normalen Benutzer nicht vorenthalten.
Aus der Fülle der Optionen möchten wir nur einige wenige vorstellen.
Ohne Option gerufen, listet netstat den Status aller geöffneter Sockets (Kommunikationsendpunkte) auf. Etwas Licht ins Dunkel bringt da -p, das die Namen der Programme anzeigt, die den Socket eröffnet haben:
user@sonne> netstat -p | head -7 (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name Active UNIX domain sockets (w/o servers) Proto RefCnt Flags Type State I-Node PID/Program name Path unix 1 [ N ] StrEAM CONNECTED 2675 - @000004b8 unix 1 [ N ] StrEAM CONNECTED 2271 394/netscape @000003ee unix 1 [ ] StrEAM CONNECTED 623 360/kpanel @000000bf
Eine Statistik der aktiven Verbindungen erhält man mit der Option -a
user@sonne> netstat -a | head -10 Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:6000 *:* LISTEN tcp 0 0 *:auth *:* LISTEN tcp 0 0 *:ssh *:* LISTEN tcp 0 0 *:swat *:* LISTEN tcp 0 0 *:http-rman *:* LISTEN tcp 0 0 *:finger *:* LISTEN tcp 0 0 *:pop3 *:* LISTEN tcp 0 0 *:login *:* LISTEN
Die Routing-Tabelle bringt die Option -r zum Vorschein:
user@sonne> netstat -r Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface loopback * 255.0.0.0 U 0 0 0 lo
Und die Statistiken bezüglich der verschiedenen Protokolle sollen auch noch Erwähnung finden (Option -s):
user@sonne> netstat -s
Ip:
580 total packets received
0 forwarded
0 incoming packets discarded
0 incoming packets delivered
580 requests sent out
Icmp:
...
Tcp:
35 active connections openings
0 passive connection openings
0 failed connection attempts
0 connection resets received
0 connections established
580 segments received
580 segments send out
0 segments retransmited
0 bad segments received.
0 resets sent
Udp:
...
TcpExt:
[Bearbeiten] nslookup - Den Nameserver befragen
Aufruf: nslookup [-option ...] [host-to-find | -[server]]
Wie erhält man zu einem Rechnernamen dessen IP-Adresse? Oder man kennt die Adresse und würde gern den zugehörigen Namen erfahren? Dann sollte man den Domain Name Service befragen und mit dem Werkzeug nslookup eine Anfrage stellen.
user@sonne> nslookup www.gnu.org Server: localhost Address: 127.0.0.1
Name: www.gnu.org Address: 198.186.203.18
user@sonne> nslookup 198.186.203.18 Server: localhost Address: 127.0.0.1
Name: gnudist.gnu.org Address: 198.186.203.18
Im interaktiven Modus (Aufruf ohne Angabe eines Rechnernamens) lassen sich dem Server eine Reihe weiterer Informationen entlocken. Da die damit verbundenen Möglichkeiten den Rahmen des Erträglichen sprengen würden, schauen wir uns nur an, welche Information zu "www.gnu.org" verfügbar sind:
user@sonne> nslookup Default Server: localhost Address: 127.0.0.1
> set type=any > www.gnu.org Server: localhost Address: 127.0.0.1
Non-authoritative answer: www.gnu.org internet address = 198.186.203.18
Authoritative answers can be found from: gnu.org nameserver = ns1.gnu.org gnu.org nameserver = sfi.santafe.edu gnu.org nameserver = nic.cent.net gnu.org nameserver = ns2.cent.net ns1.gnu.org internet address = 158.121.106.18 > exit user@sonne>
Mit "Non-authoritative answer" deutet uns das Programm schon an, dass andere DNS-Server eventuell genauere Informationen liefern könnten. Also versuchen wir eine Anfrage bei "ns1.gnu.org", indem wir den Servernamen auf der Kommandozeile einem Minus/Leerzeichen folgen lassen:
user@sonne> nslookup - ns1.gnu.org Default Server: ns1.gnu.org Address: 158.121.106.18
> set type=any > www.gnu.org Server: ns1.gnu.org Address: 158.121.106.18
www.gnu.org CPU = INTEL-686 OS = GNU/LINUX www.gnu.org preference = 10, mail exchanger = mescaline.gnu.org www.gnu.org preference = 20, mail exchanger = tug.org www.gnu.org internet address = 198.186.203.18 gnu.org nameserver = ns1.gnu.org gnu.org nameserver = sfi.santafe.edu gnu.org nameserver = nic.cent.net gnu.org nameserver = ns2.cent.net mescaline.gnu.org internet address = 158.121.106.21 tug.org internet address = 158.121.106.10 ns1.gnu.org internet address = 158.121.106.18 sfi.santafe.edu internet address = 192.12.12.1 nic.cent.net internet address = 140.186.1.4 ns2.cent.net internet address = 140.186.1.14 > exit user@sonne>
Jetzt wissen wir, dass Linux den Gnu-Rechner dirigiert, ein Pentium (oder Klone) in seinem Inneren den Takt angibt und wir kennen die verantwortlichen Mailserver und...
[Bearbeiten] telnet - Entfernte Terminalsitzung
Aufruf: telnet [OPTIONEN] [host [port]]
telnet ermöglicht eine Terminal-Sitzung auf einem entfernten Rechner, d.h. man arbeitet bei bestehender Verbindung (fast) genauso, als würde man auf dem lokalen Rechner die Befehle eintippen.
telnet wird aus Sicherheitsgründen (z.B. fehlender Passwort-Verschlüsselung) häufig deaktiviert, aber dieses Vorgehen wie auch die Möglichkeiten zur Konfiguration sind Bestandteil des Netzwerkkapitels zu Telnet.
Ohne Argumente gerufen, wechselt das Kommando in den interaktiven Modus und deutet die Bereitschaft zur Entgegennahme der Kommandos an:
user@sonne> telnet telnet> help Commands may be abbreviated. Commands are:
close close current connection logout forcibly logout remote user and close the connection display display operating parameters mode try to enter line or character mode ('mode ?' for more) open connect to a site quit exit telnet send transmit special characters ('send ?' for more) set set operating parameters ('set ?' for more) unset unset operating parameters ('unset ?' for more) status print status information toggle toggle operating parameters ('toggle ?' for more) slc change state of special charaters ('slc ?' for more) z suspend telnet ! invoke a subshell environ change environment variables ('environ ?' for more) ? print help information telnet> quit user@sonne>
Um die Verbindung zu einem Rechner herzustellen, ist nun open Rechnername [Port] einzugeben.
telnet> open localhost Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. Welcome to Linux (i386) - Kernel 2.2.16 (pts/3).
sonne login:
Als Nutzerkennzeichen ist nun ein auf dem entfernten Rechner existierendes Kennzeichen zu wählen. Nach anschließender Verifizierung des Passwortes eröffnet man eine Sitzung, auf der analog zu einem lokalen Konsolen-Login verfahren wird. Die Sitzung beendet man mittels logout oder exit.
telnet kann dem Zielrechner auch per Kommandozeilenargument mitgeteilt werden, dann wird unverzüglich mit dem Verbindungsaufbau begonnen und mit Beenden der entfernten Terminalsitzung ist auch telnet beendet. Der Telnet-Dienst verwendet Port 23, durch Angabe eines alternativen Ports kann auch mit anderen Diensten kommuniziert werden, als Beispiel führen wir einen kurzen Dialog mit dem sendmail-Mailserver (am Port 25):
user@sonne> telnet sonne smtp Trying 192.168.10.101... Connected to sonne.galaxis.de Escape character is '^]'. 220 sonne.galaxis.de ESMTP Sendmail 8.8.8/8.8.8; Mon, 19 Apr 1999 14:44:05 +0200 HELO galaxis.de 250 sonne.galaxis.de Hello user@sonne.galaxis.de [192.168.10.101], pleased to meet you HELP 214-This is Sendmail version 8.8.8 214-Topics: 214- HELO EHLO MAIL RCPT DATA 214- RSET NOOP QUIT HELP VRFY 214- EXPN VERB EtrN DSN 214-For more info use "HELP <topic>". 214-To report bugs in the implementation send email to 214- sendmail-bugs@sendmail.org. 214-For local information send email to Postmaster at your site. 214 End of HELP info MAIL FROM:user@galaxis.de 250 user@galaxis.de... Sender ok RCPT TO:root@sonne.galaxis.de 250 root@sonne.galaxis.de... Recipient ok DATA 354 Enter mail, end with "." on a line by itself <ENTER> Date: Mon Apr 1 11:11:11 MEST 2000 From: <user@sonne.galaxis.de> To: <root@sonne.galaxis.de> Subjects: demonstration this is the mail body. . 250 OAA01356 Message accepted for delivery QUIT 221 sonne.galaxis.de closing connection Connection closed by foreign host.
Von der Optionen sind -l Nutzer (kleines L) und -x interessant. Ersteres teilt telnet mit, dass wir eine Verbindung unter dem Nutzerkennzeichen "Nutzer" wünschen. Die "login"-Aufforderung entfällt damit. Und "-x" ermöglicht eine verschlüsselte Datenübertragung, allerdings nur, wenn Client und Server diese unterstützen.
[Bearbeiten] traceroute - Den Weg eines Paketes aufzeichnen
Aufruf: traceroute [OPTIONEN] host [Paketgröße]
traceroute verfolgt die Route, die ein Paket zu einem Zielrechner (anzugeben als IP-Adresse oder symbolischer Name) nimmt. Das Kommando nutzt die Tatsache, dass ein jedes IP-Paket nur eine bestimmte Lebensdauer haben kann (TTL time to live). Ist diese Dauer abgelaufen, wird der Rechner, bei dem der Verfall auftrat, eine Fehlernachricht an den Absender schicken.
traceroute erhöht nun in jedem Schritt das TTL-Feld des Paketes, so dass es vom jeweils nächsten Vermittlungsrechner verworfen wird. Pro Knotenrechner wird der Vorgang drei Mal wiederholt (Ändern mit -q Anzahl) und die Zeiten gemessen. Auf die Reaktion eines Rechners wird 3 Sekunden gewartet (Ändern mit -w Sekunden).
user@sonne> /usr/sbin/traceroute www.gnu.org traceroute to www.gnu.org (198.186.203.18), 30 hops max, 40 byte packets 1 erde.galaxis.de (194.180.239.1) 0 ms 0 ms 1 ms 2 sphere.galaxis.de (192.168.5.1) 1 ms 1 ms 1 ms 3 195.211.141.1 (195.211.141.1) 3 ms 3 ms 3 ms 4 br2.frankfurt.gigabell.net (195.211.224.12) 18 ms 19 ms 18 ms 5 cr1.frankfurt.gigabell.net (195.211.199.30) 17 ms 19 ms 17 ms 6 atm1-145.cr1.newyork.gigabell.net (195.211.114.30) 111 ms 113 ms 113 ms 7 usa-gate1.cr2.newyork.lightning.net (216.66.2.77) 110 ms 112 ms 110 ms 8 a4-0-0.br1.nycmny.us.lightning.net (216.66.3.1) 188 ms 173 ms 139 ms 9 a2-0-0.br1.snvaca.us.lightning.net (216.66.3.6) 179 ms 177 ms 186 ms 10 s0-1-0.br1.plalca.us.lightning.net (216.66.2.90) 182 ms 186 ms 180 ms 11 paix2.via.net (198.32.175.80) 185 ms 180 ms 183 ms 12 209.81.23.54 (209.81.23.54) 185 ms 180 ms 181 ms 13 gnudist.gnu.org (198.186.203.18) 184 ms 182 ms 186 ms
[Bearbeiten] ypwhich - NIS-Server und Dateien lokalisieren
Aufruf: ypwhich [OPTIONEN]
ypwhich soll hier stellvertretend für die Kommandos des Network Information Systems stehen. Dieses System ist ein Verzeichnisdienst, mit dem bestimmte Konfigurations- und Verwaltungsdateien für einen Bereich des Netzwerkes (die NIS-Domäne) gleichsam zur Verfügung gestellt werden können. Somit ist es z.B. möglich, dass sich die Benutzer an einem beliebigen Rechner eines NIS-Bereiches anmelden und überall dieselbe Umgebung vorfinden.
Ohne Argumente aufgerufen, meldet das Kommando den konfigurierten NIS-Server, der für den Rechner verantwortlich ist. Mit der Option -x werden alle Dateien aufgelistet, die anstatt lokal vom NIS-Server bezogen werden:
user@sonne> ypwhich nis.galaxis.de user@sonne> ypwhich -x Benutze "ethers" für Map "ethers.byname" Benutze "aliases" für Map "mail.aliases" Benutze "services" für Map "services.byname" Benutze "protocols" für Map "protocols.bynumber" Benutze "hosts" für Map "hosts.byname" Benutze "networks" für Map "networks.byaddr" Benutze "group" für Map "group.byname" Benutze "passwd" für Map "passwd.byname"


