diff --git a/README.md b/README.md index 6cf4b3c..fff3f70 100644 --- a/README.md +++ b/README.md @@ -1,27 +1,40 @@ -# Statische IP mit Netplan konfigurieren +# Home Server – IP ändert sich nach Neustart -Anleitung zur Einrichtung einer statischen IP-Adresse unter Ubuntu/Debian mit Netplan – ohne die bestehende `50-cloud-init.yaml` anzufassen. +## Was war das Problem? + +Ubuntu 24.04 nutzt **Netplan** zur Netzwerkkonfiguration. +Es gab zwei widersprüchliche Netplan-Dateien: + +| Datei | Inhalt | Problem | +|---|---|---| +| `01-static.yaml` | Feste IP für `ens18` | Falsches Interface (Interface heißt `eno1`) | +| `50-cloud-init.yaml` | DHCP für `eno1` | Überschrieb die statische Konfig | + +`cloud-init` hat die DHCP-Datei bei jedem Boot neu erstellt → der Server bekam jedes Mal eine zufällige IP vom Router. --- -## 1. Neue Netplan-Datei anlegen - -Bestehende Dateien bleiben unverändert. Stattdessen eine neue Konfigurationsdatei erstellen: +## Angewandte Lösung +### 1. cloud-init für Netzwerk deaktiviert ```bash -sudo nano /etc/netplan/01-static.yaml +echo "network: {config: disabled}" > /etc/cloud/cloud.cfg.d/99-disable-network.cfg ``` -**Inhalt:** +### 2. DHCP-Datei gelöscht +```bash +rm /etc/netplan/50-cloud-init.yaml +``` +### 3. Statische Konfig korrigiert (`/etc/netplan/01-static.yaml`) ```yaml network: version: 2 ethernets: - ens18: + eno1: dhcp4: no addresses: - - 192.168.178.88/24 + - 192.168.178.57/24 routes: - to: default via: 192.168.178.1 @@ -29,59 +42,62 @@ network: addresses: [192.168.178.1, 8.8.8.8] ``` -> **Hinweis:** Netplan verarbeitet Konfigurationsdateien in alphabetischer Reihenfolge. Die `01-static.yaml` überschreibt dabei die DHCP-Einstellung aus der `50-cloud-init.yaml` effektiv. - ---- - -## 2. Konfiguration testen (empfohlen) - -Vor dem endgültigen Anwenden zunächst testen: - +### 4. Berechtigungen gesetzt und angewendet ```bash -sudo netplan try +chmod 600 /etc/netplan/01-static.yaml +netplan apply ``` -Der Befehl wendet die Konfiguration temporär an und macht sie nach 120 Sekunden automatisch rückgängig, falls keine Bestätigung erfolgt. So bleibt der Zugang auch bei einem Fehler erhalten. - --- -## 3. Konfiguration anwenden +## Wenn das Problem wieder auftritt +### Schritt 1 – Aktuelle IP und Interface prüfen ```bash -sudo netplan apply +ip addr show eno1 ``` +Richtige IP: `192.168.178.57` +Wenn `dynamic` in der Ausgabe steht → DHCP ist wieder aktiv. ---- - -## 4. SSH-Verbindung nach dem Apply - -> ⚠️ **Wichtig bei Remote-Zugriff via SSH!** -> -> Nach dem Apply ist die alte IP nicht mehr erreichbar. -> -> | Vorher | Nachher | -> |--------|---------| -> | `192.168.178.123` | `192.168.178.88` | -> -> Neue Verbindung aufbauen mit: -> ```bash -> ssh user@192.168.178.88 -> ``` - ---- - -## Option: cloud-init dauerhaft deaktivieren - -Für Homeserver (kein Cloud/VPS-Umfeld) empfiehlt es sich, cloud-init's Netzwerkverwaltung vollständig abzuschalten: - +### Schritt 2 – Netplan-Dateien prüfen ```bash -sudo nano /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg +cat /etc/netplan/*.yaml +``` +Es darf **nur eine Datei** existieren (`01-static.yaml`) mit `dhcp4: no`. +Wenn `50-cloud-init.yaml` wieder da ist → cloud-init hat sie neu erstellt. + +### Schritt 3 – cloud-init-Sperre prüfen +```bash +cat /etc/cloud/cloud.cfg.d/99-disable-network.cfg +``` +Ausgabe muss sein: `network: {config: disabled}` +Wenn die Datei fehlt → neu anlegen: +```bash +echo "network: {config: disabled}" > /etc/cloud/cloud.cfg.d/99-disable-network.cfg ``` -**Inhalt:** - -```yaml -network: {config: disabled} +### Schritt 4 – DHCP-Datei wieder löschen +```bash +rm -f /etc/netplan/50-cloud-init.yaml ``` -Danach verwaltet cloud-init das Netzwerk nicht mehr und die eigene Netplan-Datei ist alleinige Quelle der Wahrheit. \ No newline at end of file +### Schritt 5 – Statische Konfig prüfen und anwenden +```bash +cat /etc/netplan/01-static.yaml # Inhalt kontrollieren +chmod 600 /etc/netplan/01-static.yaml +netplan apply +ip addr show eno1 # Prüfen: kein "dynamic", valid_lft forever +``` + +--- + +## Server-Infos + +| Eigenschaft | Wert | +|---|---| +| Betriebssystem | Ubuntu 24.04.4 LTS | +| Hostname | minecraft | +| Netzwerkkarte | `eno1` (MAC: `ac:e2:d3:05:b8:46`) | +| Feste IP | `192.168.178.57` | +| Gateway / DNS | `192.168.178.1` (Fritzbox) | +| Netplan-Konfig | `/etc/netplan/01-static.yaml` | \ No newline at end of file