2026-06-04 05:28:48 +00:00
2026-06-04 05:28:48 +00:00

Home Server IP ändert sich nach Neustart

Server-Infos

Eigenschaft Wert
Betriebssystem Ubuntu 24.04.4 LTS
Hostname minecraft
Netzwerkkarte eno1 (MAC: ac:e2:d3:05:b8:46)
Gewünschte feste IP 192.168.178.57
Falsche IP (nach Neustart) 192.168.178.117
Gateway / DNS 192.168.178.1 (Fritzbox)
Netplan-Konfig /etc/netplan/01-static.yaml

Was war das Problem?

Ubuntu 24.04 verwendet Netplan zur Netzwerkkonfiguration. Beim Boot gab es zwei widersprüchliche Netplan-Dateien:

Datei Inhalt Problem
/etc/netplan/01-static.yaml Feste IP für Interface ens18 Falsches Interface das echte heißt eno1
/etc/netplan/50-cloud-init.yaml DHCP für eno1 Überschrieb die statische Konfig, weil Dateinamen alphabetisch/numerisch priorisiert werden

cloud-init ist ein Dienst der beim Boot automatisch Netzwerkkonfigurationen generiert und die 50-cloud-init.yaml bei jedem Neustart neu erstellt hat. Da diese Datei dhcp4: true für eno1 gesetzt hat, hat der Server jedes Mal eine zufällige IP vom Fritzbox-DHCP bekommen obwohl die statische Konfig vorhanden war.


Angewandte Lösung (Einmalig durchgeführt)

Schritt 1 cloud-init dauerhaft für Netzwerk deaktiviert

echo "network: {config: disabled}" > /etc/cloud/cloud.cfg.d/99-disable-network.cfg

→ Verhindert, dass cloud-init die 50-cloud-init.yaml beim nächsten Boot neu erstellt.

Schritt 2 Die DHCP-Datei gelöscht

rm /etc/netplan/50-cloud-init.yaml

Schritt 3 Statische Konfig korrigiert

Das Interface ens18 in 01-static.yaml auf das richtige Interface eno1 geändert:

nano /etc/netplan/01-static.yaml

Inhalt der Datei (genau so):

network:
  version: 2
  ethernets:
    eno1:
      dhcp4: no
      addresses:
        - 192.168.178.57/24
      routes:
        - to: default
          via: 192.168.178.1
      nameservers:
        addresses: [192.168.178.1, 8.8.8.8]

Schritt 4 Berechtigungen gesetzt und Konfig angewendet

chmod 600 /etc/netplan/01-static.yaml
netplan apply

Schritt 5 Erfolgreich geprüft

ip addr show eno1

Erwartete Ausgabe (kein dynamic, valid_lft forever):

2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> ...
    inet 192.168.178.57/24 brd 192.168.178.255 scope global eno1
       valid_lft forever preferred_lft forever

Wenn das Problem wieder auftritt Schritt für Schritt

Diagnose

1. Per SSH verbinden (mit der aktuell falschen IP falls nötig):

ssh root@192.168.178.117
# oder mit der richtigen IP falls erreichbar:
ssh root@192.168.178.57

2. Aktuelle IP und Interface anzeigen:

ip addr show eno1

Wenn dynamic in der Ausgabe steht → DHCP ist wieder aktiv. Weiter mit Schritt 3.

3. Alle vorhandenen Netplan-Dateien anzeigen:

ls -la /etc/netplan/
cat /etc/netplan/*.yaml

Erwartetes Ergebnis: Nur 01-static.yaml mit dhcp4: no.
Wenn 50-cloud-init.yaml wieder vorhanden ist → cloud-init hat sie neu erstellt → weiter mit Fix.

4. cloud-init-Sperre prüfen:

cat /etc/cloud/cloud.cfg.d/99-disable-network.cfg

Erwartete Ausgabe: network: {config: disabled}
Wenn die Datei fehlt oder leer ist → weiter mit Fix Schritt 1.


Fix

Schritt 1 cloud-init-Sperre neu setzen:

echo "network: {config: disabled}" > /etc/cloud/cloud.cfg.d/99-disable-network.cfg
# Prüfen:
cat /etc/cloud/cloud.cfg.d/99-disable-network.cfg

Schritt 2 DHCP-Datei löschen:

rm -f /etc/netplan/50-cloud-init.yaml
# Prüfen ob wirklich weg:
ls /etc/netplan/

Schritt 3 Statische Konfig prüfen und ggf. korrigieren:

cat /etc/netplan/01-static.yaml

Datei muss exakt so aussehen:

network:
  version: 2
  ethernets:
    eno1:
      dhcp4: no
      addresses:
        - 192.168.178.57/24
      routes:
        - to: default
          via: 192.168.178.1
      nameservers:
        addresses: [192.168.178.1, 8.8.8.8]

Falls die Datei fehlt oder falsch ist, neu schreiben:

cat > /etc/netplan/01-static.yaml << 'NETPLAN'
network:
  version: 2
  ethernets:
    eno1:
      dhcp4: no
      addresses:
        - 192.168.178.57/24
      routes:
        - to: default
          via: 192.168.178.1
      nameservers:
        addresses: [192.168.178.1, 8.8.8.8]
NETPLAN

Schritt 4 Berechtigungen setzen:

chmod 600 /etc/netplan/01-static.yaml
# Prüfen (muss -rw------- zeigen):
ls -la /etc/netplan/

Schritt 5 Konfig anwenden:

netplan apply

Keine Fehlermeldungen = gut. Warnungen über Berechtigungen = chmod aus Schritt 4 wiederholen.

Schritt 6 IP prüfen:

ip addr show eno1

Erwartete Ausgabe:

inet 192.168.178.57/24 brd 192.168.178.255 scope global eno1
   valid_lft forever preferred_lft forever

Kein dynamic → fertig.

Schritt 7 Neustart zur Bestätigung:

reboot
# Nach dem Neustart neu verbinden und prüfen:
ssh root@192.168.178.57
ip addr show eno1

Wichtige Dateipfade

Datei Bedeutung
/etc/netplan/01-static.yaml Netplan-Konfig mit fester IP (die richtige Datei)
/etc/netplan/50-cloud-init.yaml Netplan-Konfig von cloud-init (darf nicht existieren!)
/etc/cloud/cloud.cfg.d/99-disable-network.cfg Sperrdatei für cloud-init Netzwerkkonfig

Erwarteter Zustand nach dem Fix

root@minecraft:~# ls /etc/netplan/
01-static.yaml         # Nur diese eine Datei!

root@minecraft:~# cat /etc/cloud/cloud.cfg.d/99-disable-network.cfg
network: {config: disabled}

root@minecraft:~# ip addr show eno1
2: eno1: ...
    inet 192.168.178.57/24 brd 192.168.178.255 scope global eno1
       valid_lft forever preferred_lft forever   # kein "dynamic"!
Description
No description provided
Readme 29 KiB