Ubuntu – zmiana adresu IP: Netplan, NetworkManager, nmcli, ip addr – poradnik
Pytanie
Jak zmienić adres IP w Ubuntu
Odpowiedź Sztucznej Inteligencji
Bezpośrednia odpowiedź na pytanie
- Najprościej:
- Ubuntu Desktop (NetworkManager/GUI): Ustawienia → Sieć → IPv4 → Ręczna → podaj IP/maskę/bramę/DNS → Zastosuj.
- Ubuntu Desktop/Server (trwale, Netplan): edytuj /etc/netplan/*.yaml → addresses/gateway/routes/DNS → sudo netplan try → sudo netplan apply.
- Tymczasowo (do testów): sudo ip addr add …; sudo ip route replace default via … (nie przetrwa restartu).
- Kluczowe punkty:
- Najpierw ustal właściwy interfejs (ip -br a).
- Wybierz metodę zgodną z menedżerem sieci: NetworkManager (GUI/nmcli) lub Netplan (YAML).
- Zawsze testuj i miej plan awaryjny (netplan try, druga sesja/terminal).
Szczegółowa analiza problemu
-
Identyfikacja środowiska:
- Desktop (domyślnie): NetworkManager. Sprawdź: nmcli general status.
- Server (domyślnie): Netplan + systemd-networkd. Sprawdź: netplan status lub networkctl.
- Obrazy chmurowe: zmiany może nadpisywać cloud-init (plik 50-cloud-init.yaml).
-
Metoda A — Ubuntu Desktop (NetworkManager, trwale) przez nmcli
- Znajdź nazwę połączenia i interfejs:
- nmcli con show
- ip -br a (np. enp0s31f6, wlp2s0)
- Przełącz IPv4 na tryb ręczny i ustaw IP/bramę/DNS:
- sudo nmcli con mod "Wired connection 1" ipv4.method manual
- sudo nmcli con mod "Wired connection 1" ipv4.addresses "192.168.1.50/24"
- sudo nmcli con mod "Wired connection 1" ipv4.gateway "192.168.1.1"
- sudo nmcli con mod "Wired connection 1" ipv4.dns "1.1.1.1,8.8.8.8"
- (opcjonalnie) sudo nmcli con mod "Wired connection 1" ipv4.ignore-auto-dns yes
- Zastosuj:
- sudo nmcli con up "Wired connection 1"
- Weryfikacja:
- ip -br a; ip route; resolvectl status; ping 192.168.1.1; ping 8.8.8.8; ping google.com
-
Metoda B — Ubuntu Server (Netplan, trwale)
- Plik konfiguracyjny: /etc/netplan/*.yaml (np. 00-installer-config.yaml, 50-cloud-init.yaml).
- Przykład (jeden z dwóch równoważnych wariantów – użyj tylko jednego sposobu na bramę):
Wariant z routes (zalecany w nowszych konfiguracjach):network:
version: 2
renderer: networkd
ethernets:
enp3s0:
dhcp4: false
addresses: [192.168.1.50/24]
nameservers:
addresses: [1.1.1.1,8.8.8.8]
routes:
- to: default
via: 192.168.1.1
Wariant z gateway4 (również powszechnie stosowany):
network:
version: 2
renderer: networkd
ethernets:
enp3s0:
dhcp4: false
addresses: [192.168.1.50/24]
gateway4: 192.168.1.1
nameservers:
addresses: [1.1.1.1,8.8.8.8]
- Zastosowanie i test:
- sudo netplan try (bezpieczny test z automatycznym wycofaniem)
- sudo netplan apply
- ip -br a; ip route; ping; resolvectl status
Dodatki Netplan:
-
Metoda C — GUI (Desktop)
- Ustawienia → Sieć → Zębatka przy Wi‑Fi/Ethernet → IPv4 → Ręczna → Adres/Maska/Brama/DNS → Zastosuj → przełącz interfejs OFF/ON.
-
Metoda D — Tymczasowo (do testów; zniknie po restarcie)
- Usuń stare IP (opcjonalnie): sudo ip addr flush dev enp3s0
- Dodaj IP: sudo ip addr add 192.168.1.50/24 dev enp3s0
- Ustaw trasę domyślną: sudo ip route replace default via 192.168.1.1 dev enp3s0
- Weryfikacja: ip -br a; ip route; ping
-
Weryfikacja i diagnostyka (po każdej metodzie)
- Adresy: ip -br a
- Trasy: ip route
- DNS: resolvectl status (systemd-resolved)
- Łączność: ping brama/Zewnętrzny IP/Nazwa
- Logi: journalctl -u NetworkManager, journalctl -u systemd-networkd
Aktualne informacje i trendy
- Netplan pozostaje standardową warstwą deklaratywną w Ubuntu 18.04+; na Desktop rolę wykonawczą pełni zwykle NetworkManager (renderer: NetworkManager), na Server – systemd-networkd (renderer: networkd).
- Oba zapisy bramy (routes: to: default via: … oraz gateway4/gateway6) są powszechnie wspierane; coraz częściej promuje się wariant z routes dla spójności z bardziej złożonym routingiem.
- W środowiskach chmurowych konfigurację sieci często zarządza cloud-init; ręczne poprawki w Netplan mogą być nadpisywane przy restarcie, jeśli nie zmienisz polityki cloud-init.
Wspierające wyjaśnienia i detale
Aspekty etyczne i prawne
- W sieciach firmowych/uczelni zmiana IP bez przydziału z Działu IT może naruszać polityki bezpieczeństwa i RODO (logowanie ruchu, identyfikacja hostów). Zawsze uzyskaj zgodę i rezerwację adresu.
- Unikaj konfliktów IP – statyczne adresy muszą być zarezerwowane w planie adresacji.
Praktyczne wskazówki
- Zdalnie (SSH): używaj sudo netplan try lub miej otwarte dwie sesje; rozważ plan awaryjny (konsola KVM/iDRAC/IPMI).
- Kopia konfiguracji: sudo cp /etc/netplan/*.yaml /etc/netplan/backup-$(date +%F).yaml
- Domowe sieci: wygodna alternatywa to rezerwacja DHCP w routerze na podstawie MAC (host nadal działa jako DHCP, ale zawsze dostaje ten sam IP).
- Po zmianach NM: jeśli interfejs nie wstaje, sprawdź autoconnect: nmcli con mod "…" connection.autoconnect yes.
- Linki „spoza podsieci”: dodaj on-link: true w routes, inaczej kernel może odrzucić bramę.
- Interfejs z wieloma sieciami: pamiętaj o priorytecie tras (metric) i o ustawieniu „ipv4.never-default yes” w NM dla łącza pomocniczego bez domyślnej trasy.
Ewentualne zastrzeżenia lub uwagi dodatkowe
- cloud-init/MAAS mogą nadpisywać Netplan przy starcie – wówczas zmieniaj konfigurację na poziomie narzędzia orkiestracji.
- W maszynach wirtualnych tryb NAT/Mostkowany (bridge) w hyperwizorze wpływa na łączność niezależnie od IP w systemie gościa.
- W kontenerach (LXC/Docker/Podman) adresacją zwykle zarządza warstwa kontenerowa – zmiany w gościu nie zawsze mają sens.
Sugestie dalszych badań
- man netplan, netplan get/apply/try/status – składnia i dobre praktyki.
- man nmcli – szczególnie sekcje „connection”, „device”, „general”.
- man ip-address, ip-route – diagnostyka i routing.
- Dokumentacja systemd-resolved i resolvectl – diagnostyka DNS.
Krótkie podsumowanie
- Dla Desktop: użyj GUI lub nmcli (trwale).
- Dla Server: edytuj /etc/netplan/*.yaml i zastosuj netplan try/apply.
- Do testów: ip addr/ip route (tymczasowo).
- Zawsze sprawdź interfejs, unikaj konfliktów IP, testuj łączność i miej plan awaryjny.
Jeśli podasz wersję Ubuntu i nazwę interfejsu, przygotuję dokładny, gotowy plik Netplan lub kompletny zestaw komend nmcli pod Twoją sieć.
Zastrzeżenie: Odpowiedzi udzielone przez sztuczną inteligencję (model językowy) mogą być niedokładne i wprowadzające w błąd. Elektroda nie ponosi odpowiedzialności za dokładność, rzetelność ani kompletność prezentowanych informacji. Wszystkie odpowiedzi powinny być zweryfikowane przez użytkownika.
Zadaj dodatkowe pytanie Sztucznej Inteligencji