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.