Network-Manager
(in Arbeit)
Datum: 16.05.2021
ZIEL: Komfortable Verwaltung der Netzwerkschnittstellen, besonders bei wechselnden Umgebungen.
Installation, Erkundung
Je nach Distribution ist die Installation schnell ausgeführt.
Unter Debian/Ubuntu lautet das Paket network-manager
. Wer einen Desktop nutzt, braucht darüberhinaus das grafische Systray-Programm nm-applet
, was sich im Paket network-manager-gnome
befindet. Für KDE Plasma gibt es es separates Widget im Paket plasma-nm
. Die Daemon-Komponente wird wie üblich automatisch an den Start gebracht, der Prozess wie auch die systemd-Unit heißen „NetworkManager“.
Unter RedHat/Rocky-Linux ist der Network-Manager sogar zum bevorzugten Tool für die Netzwerkkonfiguration geworden und demnach bereits vorinstalliert. Aber er aktiviert sie nicht ohne zutun. Für die erste Karte mit der Schnittstellenbezeichnung „enp0s3“ wird zwar eine gleichnamige Connection erzeugt, sie erhält aber nach einem Neustart des Systems nicht wieder den aktiven Zustand:
root@rocky ~]# nmcli con
enp0s3 ed7f4e88-7d03-49ed-bacf-ac5068132a65 ethernet --
[root@rocky ~]# nmcli con up enp0s3
Verbindung wurde erfolgreich aktiviert (aktiver D-Bus-Pfad: /org/freedesktop/NetworkManager/ActiveConnection/1)
[root@rocky ~]#
[root@rocky ~]# nmcli con
enp0s3 ed7f4e88-7d03-49ed-bacf-ac5068132a65 ethernet enp0s3 ## Diese Zeile wird jetzt grün dargestellt!
[root@rocky ~]#
Zum automatischen Wiederverbinden siehe die Eigenschaft „autoconnect“ unter wiki.ubuntuusers.de. Die Kommandozeile
nmcli con show enp0s3 | grep autoconnect
verrät uns, dass der Wert nicht gesetzt ist („nein“). Mittels der Zeile
nmcli con modify enp0s3 connection.autoconnect yes
ändern wir das, wobei die Karte zugleich aktiviert wird und eine IP-Adresse via DHCP erhält. Bei dem Aktivieren von „autoconnect“ wird die Datei /etc/sysconfig/network-scripts/ifcfg-enp0s3
neu generiert, man beachte die letzte Zeile, die sich von ONBOOT=no
auf ONBOOT=yes
geändert hat:
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s3
UUID=ed7f4e88-7d03-49ed-bacf-ac5068132a65
DEVICE=enp0s3
ONBOOT=yes
Also ist doch noch eine wohlbekannte Konfigurationsdatei ifcfg-enp0s3
vorhanden, allerdings wird sie vom NetworkManager verwaltet und sollte nicht mehr per Hand editiert werden!
Konfiguration
Neben den oben genannten grafischen Systray-Tools wie nm-applet
gibt es ein pseudografisches Werkzeug namens nmtui
und eins für die Kommandozeile nmcli
, was wir bereits benutzt haben. Wir wollen uns vor allem mit letzterem beschäftigen und mit den Konfigurationsdateien unterhalb von /etc/NetworkManager/
.
Kommandozeilenwerkzeug „nmcli“
Standardmäßig wird eine DHCP-basierte Grundkonfiguration für kabelgebundene Netzwerkkarten angeboten, die alles automatisch einrichtet.
Möchte man eine einfache, statische IP-Konfiguration vornehmen, kann eine solche Zeile wie folgt aussehen:
nmcli con add con-name nic1-static-lan ifname enp0s3 type ethernet ip4 192.168.2.212/24
Danach ist kein manuelles nmcli con up nic1-static-lan
erforderlich, wenn man sowieso vor hat, das System neu zu starten. Die neue, händisch angelegte Verbindung hat Vorrang und wird beim Booten automatisch aktiviert. Zur Kontrolle bitte nmcli dev
und nmcli con
verwenden.
Sollen darüberhinaus auch Gateway und Nameserver konfiguriert werden, wird die Zeile etwas länger - daher ist sie hier mit Umbrüchen dargestellt (Auf den Backslash muss direkt das CR/Enter-Zeichen folgen!):
nmcli con add con-name nic1-static-HOME ifname enp0s3 \
type ethernet ip4 192.168.5.251/24 \
gw4 192.168.5.254 \
ipv4.dns "192.168.2.1 8.8.8.8"
Zur Kontrolle können nun die hierbei erzeugten Profildateien unter /etc/NetworkManager/system-connections/
inspiziert werden.
Weitere Anwendungsbeispiele
Nameserver ändern, der Name der Connection lautet hier genauso wie die Schnittstelle, nämlich „eth0“:
nmcli con modify eth0 ipv4.dns "194.25.2.129 8.8.8.8" nmcli con down eth0 nmcli con up eth0
Hinweis: Die /etc/resolv.conf wird häufig vom NetworkManager verwaltet und darf in dem Falle nicht direkt bearbeitet werden, die Einstellungen würden verloren gehen! Dann einfach
nmcli con modify ...
verwenden.Löschen einer Connection:
nmcli con delete nic1-static-lan
Eine Connection namens ‚nic2-auto-HOME‘ mit der Netzwerkkarte ‚enp0s8‘ einrichten, die DHCP nutzt:
nmcli con add con-name nic2-auto-HOME type ethernet ifname enp0s8 ipv4.method auto
Eine Connection zu einem WLAN herstellen:
nmcli radio nmcli device nmcli device wifi list nmcli device wifi rescan nmcli device wifi connect myWiFiNetwork --ask # Alternativ mit direkter Passwort-Übergabe: nmcli device wifi connect myWiFiNetwork password mySecret0815Key
Siehe dazu auch
Konfigurationsdateien
Die Hauptkonfigurationsdatei ist die /etc/NetworkManager/NetworkManager.conf
, sie beinhaltet globale Voreinstellungen.
Per Default wird bei dynamischer Zuweisung einer IP-Adresse dem Linux-System ein neuer, generierter Hostname zugewiesen, womit aber das X-Window-System bei Arch/Artix Linux seine Probleme hat und nach Adressänderungen meldet, dass keine DISPLAY-Variable gesetzt sei! Um das zu beheben, fügen wir eine Zeile unterhalb [main] an, so dass die Datei schließlich so aussieht:
# Configuration file for NetworkManager.
# See "man 5 NetworkManager.conf" for details.
[main]
hostname-mode=none
Die Konfigurationsdateien der Verbindungsprofile liegen unter /etc/NetworkManager/system-connections/
. Eine solche Datei kann z.B. myWiFiNetwork.nmconnection
heißen und folgenden Inhalt haben:
[connection]
id=myWiFiNetwork
uuid=8793554f-2058-4a52-b842-656ebe2240e6
type=wifi
interface-name=wlan0
permissions=user:tux:;
timestamp=1614116352
[wifi]
mac-address-blacklist=
mode=infrastructure
seen-bssids=2F:31:A8:31:2B:E7;2C:81:DA:91:BC:C9;
ssid=myWiFiNetwork
[wifi-security]
auth-alg=open
key-mgmt=wpa-psk
psk=mySecret0815Key
[ipv4]
dhcp-hostname=artix
dns-search=
method=auto
[ipv6]
addr-gen-mode=stable-privacy
dns-search=
method=auto
[proxy]
HyperLinks
Weitere gute Seiten:
https://developer.gnome.org/NetworkManager/stable/manpages.html
https://www.linux-community.de/ausgaben/linuxuser/2018/11/netz-per-hand/
https://www.liquidweb.com/kb/how-to-install-and-configure-nmcli/
https://devconnected.com/network-manager-on-linux-with-examples/ Hier lesen wir einen wichtigen Satz: „When an Ethernet cable is plugged, it is first recognized by the udev module which will send a signal to the Network Manager in order to notify that a new cable has been plugged in.“