GNU/Linux - NetworkManager CLI
- Eine GNU/Linux Installation, bzw. eine Linux Kommandozeile wie z.B. die GNU Bash.
- Um eine sichere Systemumgebung zu gewährleisten, bin ich als regulärer Benutzer mit
sudo
Berechtigung angemeldet.
Folgende Festlegung gelten:
Zeilenanfang | Bedeutung |
---|---|
# |
Wenn ein Kommando mit einem # beginnt, muss der folgende Linux-Befehl mit Root-Rechten, entweder direkt als Root-Benutzer oder mit dem Befehl sudo ausgeführt werden. |
$ |
Bedeutet, dass der angegebene Linux-Befehle als regulärer, nicht privilegierter Benutzer ausgeführt werden kann. |
Als Betriebssystem nutze ich in der Regel Fedora Workstation. Die gezeigten Befehle sollten aber unter allen gängigen, modernen Distribuionen mit der GNU Bash Shell funktionieren.
Der Netzwerk Manager auf der Kommandozeile “nmcli”
Es gibt unter den meisten “Mainstream Linux Distributionen” drei Möglichkeiten sich mit einem Netzwerk zu verbinden, bzw. dieses zu konfigurieren.
- Der
NetworkManager
ist auf der grafischen Oberfläche im Tray und in den Systemeinstellungen zu finden. - Auf der Konsole gibt es den grafischen, menügeführten Netzwerkmanager
nmtui
. - Und es gibt den
nmcli
, welcher ein reiner kommandozeilen Netzwerkmanager darstellt und sich somit auch für Scripte eignet.
Ich denke, die meisten werden die grafische Oberfläche nutzen und damit auch gut klar kommen. Jeder, der
sich ein bisschen mit Netzwerk und seinen Begrifflichkeiten auskennt, wird auch mit nmtui
sehr gut klar
kommen. Aus diesem Grund hier die Grundlagen zu meinem Favoriten nmcli
für alle Anderen.
Konventionen bei “nmcli”
Der Netzwerkmanager nmcli
wird als normaler Benutzer und nicht mit Administratorberechtigungen
konfiguiert. Das bedeutet, dass das Kommando sudo
nicht benötigt wird!
Des Weiteren kann man die Kommandos für nmcli
in einer langen und einer kurzen Version schreiben. So wie
unter dem Betriebssystem der Cisco-Geräte. In diesem Beispiel sind alle drei Befehle identisch:
|
|
Es kann so lange gekürzt werden, wie die Befehle eindeutig sind.
Übersicht der Verbindungen
Als erstes gucke ich immer, wie der Zustand meines Netzwerkes ist. Dafür reicht einfaches nmcli
, ohne
weitere Parameter. Hier ein Beispiel:
|
|
Hier kann man gut sehen, dass meine Hardware erkannt wurde und schon eine bestehede Verbindung aktiv ist. In den meisten Terminalprogrammen wird die aktive Verbindung auch noch in grüner Schrift dargestellt.
Netzwerkhardware anzeigen
Falls man nicht das Glück hat, dass die Verbindunge schon bestehen, fängt am besten bei der Hardware an. Diese wird folgendermaßen aufgelistet.
|
|
Das Device wlp0s20f3 ist die Wlan-Karte und enp0s31f6 die Ethernet-Karte im System. Wenn diese den Status nicht verfügbar hat, bedeutet das in der Regel, dass kein Ethernetkabel angeschlossen ist.
Für den Fall, dass in der Liste kein Gerät mit den Typ ethernet vorhanden ist, wurde die Netzwerk-Hardware nicht erkannt.
Netzwerkverbindungen anzeigen
Wenn man ein Device konfiguriert, dann erhält man eine Verbindung. Diese kann über einen selbst gewählten Namen gespeichert werden. Es verhält sich ähnlich, wie mit Wifi-Netzwerken, wo man zu jedem Netzwerk eine eigene Verbindung speichert.
Das heißt, dass ich ein Gerät, egal ob Wifi oder Ethernet, mit mehreren Verbindungen konfigurieren kann und diese Konfiguration dann wahlweise aktiviere oder deaktiviere.
Erstmal die vorhandenen Verbindungen anzeigen lassen:
|
|
Die Verbindung HotSpot ist in diesem Beispiel auch in grüner Schrift und da ihr ein Device zugeordnet ist, bedeutet dass das sie aktiv ist.
Also die von mir vorkonfigurierte Verbindung HotSpot ist für das Device wlp0s20f3
konfiguriert
worden und aktiv.
Wenn der Gerätename mit enp oder eth beginnt, dann handelt es sich um eine Hardware für Ethernet und bei Gerätenamen mit wlp oder wifi um WLAN-Hardware.
Netzwerkverbindung einrichten
Um eine Verbindung zu konfigurieren, muss sie erstmal angelegt werden.
Eine neue Ethernet-Verbindung anlegen
Der Name, den wir für unsere Verbindung benutzen, darf noch nicht vergeben sein, soll heißen, dass er eindeutig sein muss. Wie so oft unter Linux, sollte man möglichst keine Großbuchstaben und Leerzeichen nutzen, damit die Befehle leichter zu tippen sind. Andernfalls muss man diese immer case-sensitiv schreiben, bzw. im Fall von Leerzeichen Hochkommatas ’ nutzen.
Um zum Beispiel eine Ethernet-Verbindung mit der IP-Adresse 192.168.100.44/24
(/24 bedeutet die Subnetmask
255.255.255.0), einem Default-Gateway und DNS-Adresse 192.168.100.254
mit “nmcli” einzurichten, kann man die
folgenden Schritte ausführen:
Eine neue Ethernet-Verbindung mit dem Namen “eth0” anlegen.
|
|
Also:
|
|
IP-Adresse, Default-Gateway und DNS Adresse der Verbindung konfigurieren.
|
|
Natürlich können die Befehle auch in einer Zeile kombiniert werden.
Zusätzliche Route in ein anderes Netz
Braucht man dauerhaft eine zusätzlichen Route in das Netzwerk 10.0.0.0/24 über die Adresse 192.168.100.95, dann geht das mit dem Befehl:
|
|
Ein zusätzliche Route entfernen
Um eine Konfiguration an der Verbindung wieder zu entferen, setzt man einfach ein “-” vor den Schalter.
|
|
Eine WIFI-Netzwerkverbindung anlegen
Zuerst muss überprüft werden, ob das System einen WLAN-Adapter installiert hat.
|
|
Liste der verfügbaren WLAN-Netzwerke anzeigen:
|
|
Die Verbindung zum Netzwerk herstellen:
|
|
Überprüfen mit:
|
|
Der folgende Befehl legt auch eine WLAN-Verbindung an, das Passwort wird aber interaktiv abgefragt und erscheint auf diese Weise nicht in der Command-History.
|
|