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 - https://www.golinuxcloud.com/nmcli-command-examples-cheatsheet-centos-rhel/ - https://nullr0ute.com/2016/09/connect-to-a-wireless-network-using-command-line-nmcli/ 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://wiki.debian.org/NetworkManager - 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."