# Grundlagen

# Statische IP für LAN (eth0) einrichten

Diese Anleitung gilt für **Raspberry Pi OS auf Trixie-Basis** (Debian 13). Standardmäßig bezieht der Pi seine IP-Adresse automatisch per DHCP vom Router. Für Server soll sie aber fest sein, damit sie sich nicht ändert.

## System und aktuelle Lage prüfen

Bestätigen, dass es Trixie ist und netplan verwaltet wird:

```bash
cat /etc/os-release
nmcli connection show
```

Steht in der ersten Ausgabe `trixie` und in der zweiten ein Profil wie `netplan-eth0`, bist du hier richtig.

Vorhandene netplan-Konfiguration ansehen:

```bash
ls /etc/netplan/
```

Dort liegt meist eine oder mehrere YAML-Dateien. Wir fassen die vorhandenen nicht an, sondern legen eine eigene mit hoher Nummer an, die zuletzt geladen wird.

## netplan-Konfiguration anlegen

Neue Datei im Editor öffnen:

```bash
sudo vim /etc/netplan/99-eth0-static.yaml
```

Folgenden Inhalt einfügen und die Adressen an dein Netzwerk anpassen:

```yaml
network:
  version: 2
  renderer: NetworkManager
  ethernets:
    eth0:
      dhcp4: false
      addresses:
        - 192.168.1.50/24
      routes:
        - to: default
          via: 192.168.1.1
      nameservers:
        addresses:
          - 192.168.1.1
          - 1.1.1.1
```

Was die Einträge bedeuten:

<table id="bkmrk-eintrag-bedeutung-re"><thead><tr><th>Eintrag</th><th>Bedeutung</th></tr></thead><tbody><tr><td>`renderer: NetworkManager`</td><td>netplan gibt die Config an den NetworkManager weiter (Standard auf dem Pi)</td></tr><tr><td>`dhcp4: false`</td><td>kein automatischer Bezug per DHCP mehr</td></tr><tr><td>`addresses`</td><td>die gewünschte feste Adresse, `/24` ist die übliche Netzmaske (255.255.255.0)</td></tr><tr><td>`routes: to: default / via`</td><td>das Gateway, also die Adresse des Routers (oft `.1` am Ende)</td></tr><tr><td>`nameservers`</td><td>DNS-Server, hier der Router plus Cloudflare (1.1.1.1) als Reserve</td></tr></tbody></table>

Wichtig zur YAML-Syntax: Eingerückt wird ausschließlich mit **Leerzeichen**, niemals mit Tabs. Die Einrückung muss exakt stimmen, sonst lehnt netplan die Datei ab.

Wichtig zur Adresse: Die gewählte IP (im Beispiel `192.168.1.50`) muss im selben Netz wie der Router liegen und darf nicht schon belegt sein. Am besten eine Adresse außerhalb des DHCP-Bereichs des Routers wählen.

## Vim-Kurzhilfe für diese Datei

Falls vim ungewohnt ist:

<table id="bkmrk-taste-funktion-i-ein"><thead><tr><th>Taste</th><th>Funktion</th></tr></thead><tbody><tr><td>`i`</td><td>Einfügemodus starten (jetzt kann man tippen)</td></tr><tr><td>`Esc`</td><td>zurück in den Normalmodus</td></tr><tr><td>`:wq`</td><td>speichern und beenden</td></tr><tr><td>`:q!`</td><td>beenden ohne zu speichern (verwerfen)</td></tr></tbody></table>

Tipp: YAML-Dateien lassen sich in vim angenehmer bearbeiten, wenn die Einrückung sichtbar ist. Mit `:set list` zeigt vim Tabs und Zeilenenden an, so sieht man sofort, ob sich ein Tab eingeschlichen hat.

## Berechtigungen setzen

netplan erwartet, dass die Konfigurationsdatei nur für root lesbar ist, sonst gibt es eine Warnung:

```bash
sudo chmod 600 /etc/netplan/99-eth0-static.yaml
```

## Testen und anwenden

Zuerst die Syntax prüfen, ohne etwas zu übernehmen:

```bash
sudo netplan generate
```

Kommt keine Fehlermeldung, ist die Datei gültig. Dann anwenden:

```bash
sudo netplan apply
```

Hinweis: Bei einer SSH-Sitzung bricht die Verbindung dabei ab, weil sich die IP ändert. Danach verbindest du dich mit der neuen, festen Adresse.

Wer auf Nummer sicher gehen will, nutzt stattdessen:

```bash
sudo netplan try
```

Dieser Befehl wendet die Änderung an und macht sie nach 120 Sekunden automatisch rückgängig, falls man nicht mit Enter bestätigt. So sperrt man sich nicht versehentlich aus.

## Ergebnis prüfen

```bash
ip addr show eth0     # zeigt die jetzt gesetzte IP-Adresse
ip route              # zeigt das Gateway (default via ...)
ping -c 4 192.168.1.1 # erreicht der Pi den Router?
ping -c 4 1.1.1.1     # kommt der Pi ins Internet?
```

Wenn `ip addr show eth0` die gewünschte Adresse zeigt und beide `ping`-Tests Antworten liefern, ist alles korrekt. Am besten zur Kontrolle einmal neu starten und erneut prüfen, ob die Adresse den Reboot übersteht.

## Zurück auf DHCP (automatisch)

Falls die feste IP wieder rückgängig gemacht werden soll, einfach die eigene Datei löschen und netplan neu anwenden:

```bash
sudo rm /etc/netplan/99-eth0-static.yaml
sudo netplan apply
```

## Häufige Stolpersteine

- **netplan generate meldet einen Fehler:** Fast immer ein YAML-Einrückungsfehler. Auf konsequente Leerzeichen achten, keine Tabs, und die Einrückungstiefe der Beispiele exakt übernehmen.
- **Pi nicht mehr erreichbar:** Vermutlich liegt die neue IP nicht im Netz des Routers oder ist doppelt vergeben. Adresse und Gateway kontrollieren.
- **Internet geht, lokale Namen nicht (oder umgekehrt):** Meist sind die `nameservers` falsch gesetzt.
- **nmcli zeigt weiterhin DHCP:** Normal. netplan steuert die Konfiguration, das `netplan-eth0`-Profil wird daraus erzeugt. Nicht versuchen, es direkt mit `nmcli` zu ändern.