Linux ist von Anfang an für die Vernetzung mit anderen Rechnern geschaffen worden. Linux stellt deshalb auf der Kommandozeile alle nötigen Befehle für die Netzwerk-Konfiguration zur Verfügung. Software mit einer grafischen Benutzeroberfläche ist für die Netzwerk-Konfiguration also nicht zwingend erforderlich.
Die Shell-Befehle alias Kommandozeilen-Befehle haben zwei wesentliche Vorteile:
1. Sie stehen auf allen Linux-Systemen mit der gleichen Syntax zur Verfügung beziehungsweise lassen sich schnell mit Paketmanagementsystemen wie apt nachinstallieren. Unabhängig davon, welche Distribution Sie verwenden. Sie müssen sich also nicht mit den unterschiedlichen Konfigurations-Tools der diversen Desktop-Managern vertraut machen.
2. Sie können diese Befehle auch dann noch nutzen, wenn beispielsweise Ihr Desktop-Manager beschädigt ist und Sie keine grafische Benutzeroberfläche mehr starten können (was beispielsweise nach einem großen Update, das schief geht, der Fall sein kann. Oder wenn Sie eine neue Grafikkarte einbauen, für die Linux noch keine Treiber zur Verfügung hat).
Im professionellen Umfeld, also bei der Server-Administration, sind die Kommandozeilen-Befehle sogar der Standard-Weg zur Administration. Wer also die typischen Linux-Befehle für die Netzwerk-Konfiguration und die Überprüfung der Internetverbindung kennt, dem fällt der berufliche Einstieg hier leichter. Die eigentlichen Serverbefehle wie ssh oder das Starten des Apache-Webservers sowie Befehle aus dem Kontext Samba stellen wir in diesem Artikel aber nicht vor. Zudem beschränken wir uns darauf, die Grundfunktionen der einzelnen Befehle vorzustellen. Denn für die meisten Linux-Befehle gibt es viele Parameter und Optionen, die gerade Einsteiger schnell verwirren.
Hinweis 1: Die hier vorgestellten Linux-Befehle sollten auf allen Linux-Distributionen funktionieren; unsere Testbasis waren zwei Ubuntu-Notebooks. Gegebenenfalls müssen Sie das entsprechende Programmpaket über die Paketverwaltung Ihres Linux-Systems erst noch installieren. Das erledigen Sie auf Debian-basierten Linux-Distributionen wie zum Beispiel Ubuntu entweder direkt auf der Kommandozeile mit „apt“ oder eben über das entsprechende Programm in ihrer Desktop-Oberfläche.
Hinweis 2: Die grundlegende Funktionsweise der Linux-Shell beziehungsweise Kommandozeile sollte Ihnen vertraut sein. Falls Sie noch nie einen Linux-Befehl eingetippt haben, sollten Sie zunächst diesen Artikel lesen: Die 10 wichtigsten Linux-Befehle für Einsteiger. Und danach hier wieder weiterlesen.
Und los geht es mit den zehn wichtigsten Befehlen für Netzwerk und Internet:
1. ip addr/ip a zum Verwalten der Netzwerkschnittstellen
Der Befehl ip aus der iproute2-Toolsammlung ersetzt seit einiger Zeit den Befehl "ifconfig" (siehe unten Punkt 2) und deckt auch IPv6 umfassend ab (ip ersetzt auch die alten Befehle "arp" und "route"). Mit ip addr lassen Sie sich schnell alle vorhandenen Netzwerkschnittstellen anzeigen und konfigurieren. Eth0 bezeichnet die erste LAN-Netzwerkkarte, lo das Loopback und wlan0 den ersten WLAN-Chip. Wobei einige Linux-Systeme mittlerweile eigene Bezeichnungen für die Schnittstellen verwenden.
Gibt ip addr beziehungsweise ifconfig nur bei der Loop-Schnittstelle eine IP-Adresse an (bei lo ist das immer 127.0.0.1), dann sind die anderen Schnittstellen, also für LAN-Kabel oder WLAN, noch nicht konfiguriert.
Mit "ip -4 addr show" lässt man sich gezielt nur die IP4-Adressen anzeigen. "ip -6 addr show" lieferte die entsprechende Ausgabe für IP6.
Sie wollen die Mac-Adresse wissen? Der Befehl "ip -0 addr show" liefert diese. Und "ip n s" zeigt den ARP-Cache an.
Mit " ip addr show " lassen Sie sich die Netzwerkschnittstellen nur anzeigen. Der Befehl "ip a" liefert exakt die gleiche Ausgabe. Der Befehl "hostname" wiederum liefert exakt diesen Namen und sonst nichts. Und der Befehl "hostname -I" liefert die IP-Adresse des eigenen Rechners. Die IP-Adresse, unter der Ihr Rechner vom Internet aus erreichbar ist, finden Sie dagegen mit "curl ifconfig.me".
Die Eingabe ip route show wiederum zeigt die Adresse des Gateways an, es ersetzt also den Befehl "route" (siehe unten Punkt 9)
2. Veralteter Befehl: ifconfig zum Verwalten der Netzwerkschnittstellen
Mit ifconfig informierten Sie sich viele Jahre lang auf Linux-Rechnern über alle vorhandenen Netzwerkschnittstellen und konnten diese bei Bedarf auch konfigurieren. Und zwar sowohl für Kabelnetzwerke (LAN) als auch Funknetzwerke (WLAN). Doch ifconfig wird zunehmend durch ip ersetzt . Weil ifconfig in fast jedem Buch zu Linux-Befehlen noch vorkommt, stellen wir diesen noch oft zitierten Befehl hier vor. Sie sollten aber stattdessen "ip" von Punkt 1 dieser Aufzählung verwenden.
Achtung: Verwechseln Sie die Syntax des Befehls nicht mit ipconfig – so lautet der entsprechende CMD-Befehl auf Windows-Rechnern.
Wenn Sie ifconfig -a eingeben, dann liefert Ihnen der Befehl die Konfigurationsdaten zu allen auf dem Linux-Rechner konfigurierten Schnittstellen. Mit ifconfig ohne Zusatz bekommen Sie nur die aktiven Schnittstellen angezeigt. Mit der Eingabe dieses Befehls prüfen Sie auch gleich, ob das Linux-System den Netzwerkadapter überhaupt erkannt hat.
Das sind dann die LAN-Verbindung (als eth0 bezeichnet), das Loopback (lo) und die WLAN-Verbindung (wlan0). Sie sehen zu den LAN- und WLAN-Schnittstellen die Mac-Adressen ("Hardware Adresse") und die zugewiesenen IP- und IPv6-Adressen sowie Fehlerinformationen. Außerdem die Broadcast-Adresse und die Subnetzmaske.
Fehlt bei eth0 die IP-Adresse, dann funktioniert die Verbindung zum Router nicht. Sitzt das LAN-Kabel fest oder hat es einen Knick? Prüfen Sie das nach.
Über die Broadcast-Schnittstellen werden an alle weiteren Netzwerkadressen im lokalen Netzwerk Nachrichten versandt. Die Subnetzmaske dient dazu, um Netzwerkadresse und Rechneradresse in der IP-Adresse zu unterscheiden.
Steht "UP" bei einer Netzwerkschnittstelle, dann ist sie aktiviert, "BROADCAST" signalisiert, dass Broadcast-Meldungen entgegengenommen werden. "RUNNING" bedeutet, dass die Netzwerkschnittstelle vom Kernel erkannt wurde. "MULTICAST" wiederum zeigt an, dass Multicast-Meldungen entgegengenommen werden (also Meldungen an mehrere Empfänger - im Unterschied zu Broadcast an alle Empfänger). "MTU" gibt die maximale unfragmentierte Größe eines Datenpaketes an. Wichtig sind noch "RX" und "TX": Die Anzahl der empfangen und der gesendeten Datenpakete, jeweils mit Angabe der Fehler und verlorenen Pakete.
Die Loopback-Schnittstelle (IP-Adresse: 127.0.0.1) existiert nicht physisch, weshalb Ihnen ifconfig dafür auch keine Hardware-Adresse anzeigt. Bei Loopback handelt es sich um eine zum lokalen System zurückführende Schnittstelle. Alle darüber versendeten Daten werden wieder vom lokalen System empfangen. Lokal auf dem Linux-Rechner ablaufende Prozesse können damit via TCP/IP miteinander kommunizieren. Wollen Sie zum Beispiel Daten zur Loopback-Schnittstelle abrufen, dann tippen Sie ifconfig lo ein. Eine funktionierende Loopback-Adresse ist für eine funktionierende Netzwerkverbindung nötig.
Gibt man ifconfig zusammen mit einer einzelnen Netzwerkschnittstelle wie zum Beispiel eth0 an, dann kann man sich gezielt nur die Informationen dazu anzeigen lassen.
Zudem kann man mit ifconfig auch eine konkrete Netzwerkschnittstelle konfigurieren. Dazu gibt man neben der Bezeichnung der Schnittstelle, also zum Beispiel eth0, auch noch die erforderlichen Angaben wie IP-Adresse und Netzwerkmaske sowie Broadcastadresse an.
Tipp: Mit "ifconfig --help" können Sie sich alle möglichen Optionen anzeigen lassen.
Den Befehl ifconfig darf jeder Benutzer auf einem Linux-Rechner eintippen, sofern der Befehl nur zum Anzeigen der Informationen verwendet wird. Will man dagegen die Netzwerkschnittstelle konfigurieren, dann benötigt man Root-Rechte.
3. iwconfig: Alle WLAN-Daten ausgeben
Iwconfig entspricht grundsätzlich ifconfig, nur halt ausschließlich in Bezug auf WLAN-Verbindungen. Der Befehl iw ist eine jüngere Alternative zu iwconfig.
4. rfkill: Drahlose Schnittstellen abfragen, ein- und ausschalten
Mit rfkill schalten Sie drahtlose Schnittstellen wie Bluetooth und WLAN aber auch UMTS ein und aus. Damit senken Sie den Stromverbrauch, was besonders bei Notebooks wichtig ist. Und vermeiden zudem unnötige Sicherheitslücken.
Rfkill list zeigt den Zustand aller drahtlosen Schnittstellen des Linux-Rechners an. Und zwar aufgetrennt danach, ob die betreffende Schnittstelle soft blocked oder hard blocked ausgeschaltet ist (oder eingeschaltet ist).
Mit "soft blocked" ist das Abschalten per Kommandobefehl rfkill gemeint. Rfkill block 0 schaltet zum Beispiel das WLAN ab, wenn der WLAN-Adapter in rfkill list mit 0 gekennzeichnet ist. Rfkill unblock 0 schaltet das WLAN wieder ein. Auf dem Screenshot oben demonstrieren wir das Ein- und Auschalten der WLAN- und Bluetooth-Apdater.
"Hard blocked" dagegen meint das Abschalten über den am Notebook angebrachten physischen WLAN-Schalter. "Hard blocked" übertrumpft immer "soft blocked".
5. Ping: Netzwerkverbindung prüfen
Zu den Klassikern der Netzwerkbefehle unter Linux (und auch Windows) gehört ping (Paket Internet Groper). Dieser Befehl gehört zum Internet Control Message Protocol (ICMP). ICMP wird für die Übertragung von kurzen Nachrichten verwendet, in erster Linie handelt es sich dabei um Status- und Fehlerinformationen.
Ping geben Sie ein, wenn Sie schnell prüfen wollen, a) ob Ihr Rechner überhaupt eine Verbindung zum Internet herstellen kann. Und b) Sie überprüfen damit die Verfügbarkeit einer Webseite. Diese Anfrage nennt man Echo Request. Der angepingte Host antwortet, wenn er erreichbar ist, mit einem Echo Reply. Wenn die Verbindung einwandfrei funktioniert, sollten Sie eine Ausgabe bekommen, die anzeigt, ob von der angepingten Website Datenpakete als Antwort erhalten wurden.
Zu a) Netzwerkverbindung prüfen
Geben Sie ping und die URL einer bekannten Webseite ein, von der Sie annehmen dürfen, dass sie verfügbar ist. Zum Beispiel ping www.google.de. Der Befehl Ping schickt dann so genannte ICMP-Echo-Request-Pakete an die besagte Internatadresse. Sofern die Verbindung zum Internet funktioniert, liefert Ihnen die Ausgabe die IP-Adresse zur URL. Und Sie sehen, wie Sie Datenpakete (ICMP-Echo-Response-Paketen) von der angepingten Webseite empfangen und wie lange diese benötigen. Außerdem sehen Sie, ob Pakete verloren gehen. Mit STRG+C brechen Sie die fortlaufende Ausgabe ab.
Die Angabe "Zeit/time" in der Ausgabe des Ping-Befehls sagt, wie lange die 32 Bytes großen Datenpakete und deren Antwort benötigen. Je kleiner die Zahl, desto besser. TTL (Time-To-Live) gibt die Anzahl der Zwischenstationen (Hops) an, die das Datenpaket zwischen Absender und Empfänger benötigt. Dieser Wert wird immer um 1 pro Router/Gerät reduziert, wobei ein Wert wie 64 zum Start vorgegeben ist. Die Ping-Statistik sollte keine verlorenen Datenpakate aufweisen. Sind die Antwortzeiten okay und gehen keine Pakete verloren, dann passt alles.
Funktioniert ping dagegen nicht oder es kommt die Meldung „unknown host“ oder eine Zeitüberschreitung, dann stimmt etwas mit ihrer Internetverbindung nicht oder die angepingte Website ist nicht verfügbar.
In diesem Fall sollten Sie prüfen, ob Sie Ihr Gateway anpingen können. Die Adresse des Gateways ermitteln Sie mit dem route- beziehungsweise netstat-Befehl (siehe unten). Wenn das Anpingen des Gateways auch nicht klappt, so haben Sie keine Verbindung von Client zum Gateway. Prüfen sie also die Verkabelung beziehungsweise ob eine WLAN-Verbindung zum Router besteht und ob die Konfigurationen ihrer Clientrechner und des Gateways in Ordnung sind.
Antwortet aber das Gateway, dann könnte vielleicht die Namensauflösung nicht funktionieren. Oder aber die angepingte Webseite ist offline. Probieren Sie dann eine andere bekannte Webseite aus.
Sie können mit ping auch Ihren lokalen Host prüfen indem Sie die Loopback-Adresse anpingen: ping localhost oder ping 127.0.0.1. Kommt daraufhin die korrekte Antwort, ist IP auf dem Host einwandfrei installiert, was eine Voraussetzung für eine funktionierende Internetverbindung ist. Das Testen des Loopback garantiert aber noch nicht, dass Sie auch ins Internet können, weil durch den Ping auf localhost beispielsweise keine Aussage über Ihr Gateway getroffen wird. Pingen Sie dafür wieder die IP-Adresse Ihres Gateways an. Ist dieses erreichbar, funktioniert zumindest die Verbindung zwischen PC und Gateway.
Standardmäßig liefert ping auf einem Linuxsystem eine fortlaufende Ausgabe, die Sie mit STRG+C abbrechen können (auf Windows-Rechnern wird nach vier Zeilen abgebrochen). Indem Sie bei ping den Zusatz „–c 3“ anfügen, liefert die Ausgabe nur drei Zeilen. Sie sparen sich dann das Abbrechen der Ausgabe mit STRG+c.
b) Verfügbarkeit einer Webseite prüfen. Funktioniert genauso wie a.
Schneller Routercheck mit ping
Aber auch innerhalb Ihres eigenen Netzwerks können Sie den Ping-Befehl verwenden. Pingen Sie beispielsweise die IP-Adresse Ihres Routers an (die Fritzbox beispielsweise verwendet 192.168.178.1 als Adresse) um sicher zu stellen, ob Sie den Router von Ihrem Rechner aus überhaupt erreichen können. Bei einer Fritzbox würde der Befehl also lauten: ping 192.168.178.1. Das ist einer der grundlegenden Tests zum Prüfen Ihrer LAN-Verbindung überhaupt. Auf die gleiche Weise testen Sie auch die Erreichbarkeit anderer PCs in Ihrem Netzwerk, indem Sie deren IP-Adresse anpingen.
6. Traceroute: Welchen Weg nimmt das Datenpaket?
Mit dem Befehl traceroute (unter Windows heißt der Befehl tracert) verfolgen Sie den Weg eines IP-Datenpakets von Ihrem Linux-Rechner zu der Zieladresse. Zum Beispiel: traceroute www.pcwelt.de. Sie sehen die Adresse Ihres Gateways, alle Zwischenstationen (die „Hops“) und schließlich die IP-Adresse des Zielrechners/-Servers.
Sie erfahren zudem, wieviel Zeit das Datenpaket von einer Station zur nächsten benötigt. Traceroute kann sowohl mit einer IP-Adresse als auch mit einem Hostnamen genutzt werden. Zu Hostnamen gibt Tracert die IP-Adresse an.
7. Arp: Mac-Adressen und IP-Adressen anzeigen
Jeder Netzwerkcontroller hat eine einmalige unverwechselbare und nicht veränderbare Mac-Adresse (Media Access Control), die für die Adressierung der Datenpakete im Internet unverzichtbar ist – die Mac-Adresse ist somit die physische Adresse Ihrer Netzwerkkarte, die sich in der Regel in einem festen EEPROM-Speicher auf der Netzwerkkarte beziehungsweise beim Onboard-LAN-Adapter im Bios-Chip befindet. Die Mac-Adressen werden zentral verwaltet, jede Adresse besteht aus zwölf hexadezimalen Ziffern.
Die hinlänglich bekannten IP-Adressen, die zunächst einmal für die Adressierung der Datenpakete verantwortlich sind, werden auf die Mac-Adressen abgebildet. Bei jeder Internetkommunikation muss also die zu einer IP-Adresse gehörige Mac-Adresse gesucht werden. Dafür ist das Adress Resolution Procotol ARP zuständig.
Im so genannten ARP-Cache (Adress Resolution Protocol) werden IP-Adressen gespeichert, die bereits in Mac-Adressen aufgelöst wurden. Wird ARP hier nicht fündig, wird eine Rundsendung (Broadcast) an alle im Netzwerk erreichbaren Rechner verschickt, um die Mac-Adresse zur angefragten IP-Adresse zu ermitteln. Das Gerät, zu dem die gesuchte IP-Adresse gehört, antwortet und schickt seine Mac-Adresse. Darauf trägt ARP im anfragenden Rechner die IP-Adresse in den ARP-Cache ein, alle Anfragen an diesen Rechner werden nun direkt zugestellt. Nach einem Neustart werden alle ARP-Einträge gelöscht
Mit der Eingabe von ARP ermitteln Sie die Mac-Adresse Ihrer Ethernet- und WLAN-Netzwerkschnittstelle. Außerdem sehen Sie, welche (veränderbare) IP-Adresse der (unveränderbaren) Mac-Adresse zugeordnet ist. Mit arp –a lassen Sie sich die gesamte Adress-Tabelle anzeigen.
ARP lässt sich auch mit diversen Optionen verwenden. Damit können Sie dann die automatisiert erstellten Einträge der Adressumwandlungstabelle manuell verändern.
8. Netstat: Geöffnete Netzwerkverbindungen anzeigen
Mit netstat lassen Sie sich anzeigen, welche Netzwerkverbindungen auf Ihrem lokalen Rechner offen sind. Mit netstat –a sehen Sie alle aktiven und nicht aktiven Socketverbindungen. Netstat –l zeigt nur die aktiven Sockets an.
Netstat –r zeigt die aktuelle Routing-Tabelle an; Sie sehen also zum Beispiel die IP-Adresse des Gateways (also beispielsweise die von Ihrer Fritzbox). Wenn Sie noch ein -n (numeric) dahinter setzen, dann wird nicht der Rechnername, also zum Beispiel fritz.box, sondern dessen IP-Adresse angezeigt.
Wenn Sie wissen wollen, wohin die offenen Ports ihre Daten schicken, dann geben Sie netstat –tp ein. Unter „Foreign Address“ sehen Sie die Ziele der Datenpakete. In dem obigen Screenshot haben wir die Online-Produktsuche unseres Ubuntu-Notebooks von Tuxedo abgeschaltet, nachdem uns netstat angezeigt hatte, dass diese noch läuft.
9. Route: IP-Adresse des Gateways anzeigen
Der Befehl Route beziehungsweise route -n (hier werden numerische Rechnernamen nicht aufgelöst, sondern als IP-Adressen angezeigt) zeigt die Routing-Tabelle Ihres Rechners an. Damit ermitteln Sie die IP-Adressen der Gateways. Das „G“ in der Zeile markiert das Gateway, also zum Beispiel die Fritzbox. Das „U“ zeigt an, dass die Route aktiv ist.
Zudem können Sie mit route die Routingtabelle manuell verändern.
Tipp: Mit dem jüngeren Befehl "ip route" lassen Sie sich die IP-Adresse des Gateways Ihres Netzwerkes anzeigen. Diese Adresse finden Sie in der Zeile, die mit "default" beginnt.
10. Nslookup: IP-Adresse zu Domainnamen anzeigen
Mit nslookup ermitteln Sie die IP-Adressen zu Domainnamen. Mit nslookup können Sie manuell eine Anfrage an einen Nameserver schicken, um einen Hostnamen aufzulösen.
Extra-Tipp: Der Linuxbefehl Host liefert zu einem Domainnamen ebenfalls die IP-Adresse.
Überblick: Die wichtigsten Netzwerk-Befehle
Lokales Netz (LAN) | |
ifconfig | zeigt alle wesentlichen Netzwerkinfos wie IP und MAC-Adresse, schaltet Adapter ab, holt neue IP-Adresse. |
ip | ersetzt zunehmend ifconfig (umfangreicher, aber komplizierter) |
iwlist iwconfig | iwlist sucht nach Funknetzen und zeigt diese an - Voraussetzung für die nachfolgende Verbindung mit iwconfig. |
net | Sammlung von Befehlen zur Netzwerk- und Samba-Administration analog zum Windows-Tool net. |
net usershare | wichtiger net-Unterbefehl für Samba-Freigaben (auf Benutzerebene): erstellt, löscht und informiert über Freigaben |
rfkill | zeigt alle drahtlosen Adapter (Bluetooth, WLAN, UMTS) und schaltet sie ein ("unblock") oder aus ("block") |
route | zeigt die Routingtabelle des Systems und die IP-Adresse des Gateways (Router) |
smbpasswd | fügt Samba-Benutzer hinzu ("-a") oder löscht ("-x"), aktiviert ("-e") und deaktiviert sie ("-d") |
Internet (WAN) | |
curl | beherrscht Downloads und Uploads von und auf Webserver |
dig | liefert Infos zu Internetdomains gemäß Auskunft des DNS-Nameservers |
ftp | : Verwechseln Sie die Syntax des Befehls nicht mit ipconfig – so lautet der entsprechende CMD-Befehl auf Windows-Rechnern. |
traceroute | verfolgt den Weg eines IP-Pakets vom Gateway über alle Zwischen-"Hops" zur Zieladresse des Servers |
wget | lädt Dateien von Webservern mit der Kernsyntax: "wget [Protokoll]://[Adresse]/[Datei]" |
whois | liefert Domaininfos über Hosting, Besitzer, Adresse, Telefon. Der Umfang ist abhängig von der Domainkonfiguration. |
LAN & WAN | |
nmap | Komplettübersicht der lokalen LAN-Adressen, Dienste und Ports sowie Analyse von öffentlichen WAN-Adressen |
ping | informiert, ob eine Internetsite oder ein lokaler Rechner online und erreichbar ist |
ssh | öffnet den Fernzugriff auf Server oder Linux-Desktops, Schalter "-X" für X11-Forwarding, Schalter "-p" für Portangabe (falls von Standardport 22 abweichend); das Zugriffskonto kann bereits im Befehl angegeben werden. |
(PC-Welt)