Netplan to generator konfiguracji sieciowej. Sam w sobie nie zarządza siecią bezpośrednio, lecz działa jako warstwa abstrakcji (frontend). Użytkownik zapisuje konfigurację w czytelnym formacie YAML, a Netplan „tłumaczy” ją na instrukcje zrozumiałe dla konkretnego komponentu systemowego (tzw. renderera).
System ten opiera się na trzech filarach:
Pliki YAML: Znajdują się w katalogu /etc/netplan/. To tam wpisujemy nasze ustawienia.
Renderery (Backendy):
systemd-networkd: Standard dla serwerów (lekki, wydajny).
NetworkManager: Standard dla komputerów stacjonarnych (obsługuje Wi-Fi, VPN, profile mobilne).
Narzędzie CLI: Polecenie netplan, które służy do generowania i nakładania zmian.
YAML (Yet Another Markup Language) to format zapisu danych, który stawia na czytelność dla człowieka.
Struktura drzewiasta: Dane są zorganizowane w hierarchię.
Brak nawiasów: W przeciwieństwie do JSON czy XML, YAML nie używa klamer {} ani tagów <>.
Kluczowe znaczenie mają wcięcia (indentacja).
To najczęstszy błąd! Standard YAML zabrania używania tabulatorów.
Interpretacja: Różne edytory tekstu mogą różnie interpretować szerokość tabulatora (np. jako 4 lub 8 spacji), co niszczy strukturę logiczną pliku.
Błędy składni: Parser Netplan wyrzuci błąd, jeśli napotka znak tabulacji. Zawsze używamy 2 spacji na każdy poziom wcięcia.
Podstawowy plik (np. /etc/netplan/01-netcfg.yaml) zazwyczaj wygląda tak:

version: 2: Określa wersję składni (obecnie zawsze 2).
renderer: Wskazuje, kto ma zarządzać siecią (networkd lub NetworkManager).
ethernets / wifis / bridges: Sekcje definiujące typ interfejsu.
dhcp4 / dhcp6: Przyjmuje wartość true lub false (włączanie/wyłączanie automatycznego IP).
addresses: Lista adresów IP przypisanych do karty (zapisana w notacji CIDR, np. /24).
routes: Definicja trasowania. Klucz to: default oznacza bramę domyślną.
nameservers: Konfiguracja serwerów DNS.
Każdy kolejny „podpunkt” w hierarchii musi być przesunięty w prawo względem swojego „rodzica”.
Poziom 0: network: (0 spacji)
Poziom 1: version: 2 (2 spacje)
Poziom 2: ethernets: (2 spacje)
Poziom 3: enp0s3: (4 spacje)
Poziom 4: addresses: (6 spacji)
To bardzo ważne: pomiędzy kluczem (opcją), a jego wartością musi wystąpić dokładnie jedna spacja.
Źle: dhcp4:no (brak spacji)
Źle: dhcp4: no (za dużo spacji)
Dobrze: dhcp4: no
Jeśli podajesz listę adresów w nawiasach kwadratowych, po przecinku również powinna znaleźć się jedna spacja dla czytelności:
addresses: [192.168.1.10/24, 10.0.0.5/24]
YAML nie używa klamerek jak język C czy Java. Dla komputera liczba spacji to jedyny sposób, by zrozumieć, co do czego należy. Jeśli jedna linia będzie miała 2 spacje wcięcia, a kolejna (na tym samym poziomie) 3 spacje, Netplan wyrzuci błąd invalid YAML: indentation mismatch.
Ciekawostka: Większość profesjonalnych edytorów (jak VS Code czy PyCharm) ma wtyczki do YAML, które same pilnują tych odstępów. W prostym edytorze nano na serwerze musisz po prostu liczyć uderzenia w spację co jest niezbędne do poprawnego zaliczenia zadania egzaminacyjnego.
Krok 1: Edycja
Otwórz plik edytorem z uprawnieniami roota: sudo nano /etc/netplan/00-installer-config.yaml
Krok 2: Generowanie konfiguracji
Zanim ją wprowadzisz, sprawdź, czy plik nie ma błędów składniowych: sudo netplan generate
Krok 3: Testowanie (Najważniejszy krok!)
Zawsze używaj komendy: sudo netplan try To polecenie nakłada konfigurację na 120 sekund. Jeśli w tym czasie nie potwierdzisz zmian (klawiszem Enter), Netplan automatycznie przywróci poprzednie ustawienia. To ratuje życie, gdy przez pomyłkę odetniesz sobie dostęp do serwera przez SSH!
Krok 4: Stałe zatwierdzenie
Jeśli jesteś pewien ustawień i nie użyłeś try: sudo netplan apply
Samo netplan apply nie wystarczy, by mieć pewność, że wszystko działa. Użyj tych poleceń:
ip a: Sprawdź, czy adres IP został przypisany do właściwego interfejsu.
ip route: Sprawdź, czy brama domyślna (default) jest poprawnie ustawiona.
ping google.com: Sprawdź połączenie ze światem i działanie DNS.
networkctl status: (Dla renderera networkd) Pokazuje szczegółowy stan kart sieciowych.
Po zapoznaniu się z działaniem Netplan w Linux Serwer przechodzimy do wykonania zadań: ->>TUTAJ<–