152 lines
2.8 KiB
Markdown
152 lines
2.8 KiB
Markdown
# Linux Static IP Configurator
|
|
|
|
Ein kleines Bash-Script zum interaktiven Setzen einer statischen IPv4-Adresse unter Linux.
|
|
|
|
Unterstützt werden:
|
|
|
|
- NetworkManager (`nmcli`)
|
|
- Netplan
|
|
- Ubuntu Desktop
|
|
- Ubuntu Server
|
|
- viele aktuelle Debian-/Ubuntu-basierte Systeme mit NetworkManager oder Netplan
|
|
|
|
> Das Script verändert die Netzwerkkonfiguration des Systems. Bei einer SSH-Verbindung kann die Verbindung abbrechen, sobald die neue IP-Adresse aktiviert wird.
|
|
|
|
## Dateien
|
|
|
|
```text
|
|
set-static-ip.sh
|
|
README.md
|
|
```
|
|
|
|
## Installation
|
|
|
|
Repository klonen oder die Datei `set-static-ip.sh` herunterladen.
|
|
|
|
Danach das Script ausführbar machen:
|
|
|
|
```bash
|
|
chmod +x set-static-ip.sh
|
|
```
|
|
|
|
## Verwendung
|
|
|
|
Das Script benötigt Root-Rechte:
|
|
|
|
```bash
|
|
sudo ./set-static-ip.sh
|
|
```
|
|
|
|
Danach:
|
|
|
|
1. Netzwerkinterface auswählen, zum Beispiel `ens18`, `enp1s0` oder `eth0`
|
|
2. gewünschte IPv4-Adresse eingeben
|
|
3. CIDR-Präfix eingeben
|
|
4. Standard-Gateway eingeben
|
|
5. DNS-Server eingeben
|
|
6. Konfiguration bestätigen
|
|
|
|
Beispiel:
|
|
|
|
```text
|
|
IPv4-Adresse: 10.100.0.20
|
|
CIDR-Präfix: 24
|
|
Gateway: 10.100.0.1
|
|
DNS: 10.100.0.10 1.1.1.1
|
|
```
|
|
|
|
Das entspricht:
|
|
|
|
```text
|
|
10.100.0.20/24
|
|
```
|
|
|
|
## NetworkManager
|
|
|
|
Wenn `nmcli` vorhanden und NetworkManager aktiv ist, verwendet das Script die vorhandene Verbindung des ausgewählten Netzwerkinterfaces.
|
|
|
|
Falls keine passende Verbindung existiert, wird automatisch eine neue Verbindung angelegt.
|
|
|
|
Vor der Änderung wird nach Möglichkeit ein Backup unter folgendem Pfad erstellt:
|
|
|
|
```text
|
|
/root/network-backup-YYYYMMDD-HHMMSS/
|
|
```
|
|
|
|
## Netplan
|
|
|
|
Wenn Netplan verwendet wird, erstellt das Script:
|
|
|
|
```text
|
|
/etc/netplan/99-static-ip.yaml
|
|
```
|
|
|
|
Vorhandene Netplan-Dateien werden vorher gesichert:
|
|
|
|
```text
|
|
/root/netplan-backup-YYYYMMDD-HHMMSS/
|
|
```
|
|
|
|
Anschließend werden ausgeführt:
|
|
|
|
```bash
|
|
netplan generate
|
|
netplan apply
|
|
```
|
|
|
|
## Aktuelle IP prüfen
|
|
|
|
```bash
|
|
ip addr
|
|
```
|
|
|
|
oder nur IPv4:
|
|
|
|
```bash
|
|
ip -4 addr
|
|
```
|
|
|
|
Routing prüfen:
|
|
|
|
```bash
|
|
ip route
|
|
```
|
|
|
|
## Hinweis zu IP-Konflikten
|
|
|
|
Bevor eine statische IP vergeben wird, sollte geprüft werden, ob die Adresse bereits von einem anderen Gerät benutzt wird.
|
|
|
|
Beispiel:
|
|
|
|
```bash
|
|
ping 10.100.0.20
|
|
```
|
|
|
|
Zusätzlich kann die ARP-/Neighbor-Tabelle geprüft werden:
|
|
|
|
```bash
|
|
ip neigh
|
|
```
|
|
|
|
Am besten wird eine statische Adresse verwendet, die:
|
|
|
|
- außerhalb des DHCP-Pools liegt, oder
|
|
- im DHCP-Server ausdrücklich für dieses Gerät reserviert wurde.
|
|
|
|
Dadurch werden doppelte IP-Adressen im Netzwerk vermieden.
|
|
|
|
## Unterstützte Systeme
|
|
|
|
Das Script ist hauptsächlich für aktuelle Linux-Systeme gedacht, die eines dieser Netzwerk-Backends verwenden:
|
|
|
|
```text
|
|
NetworkManager
|
|
Netplan
|
|
```
|
|
|
|
Klassische Debian-Systeme, die ausschließlich `/etc/network/interfaces` verwenden, werden aktuell nicht automatisch konfiguriert.
|
|
|
|
## Lizenz
|
|
|
|
Du kannst das Script für eigene Projekte frei verwenden und anpassen.
|