resolvectl to narzędzie do rozmów z usługą systemd-resolved — czyli z lokalnym resolverem DNS, który w nowoczesnych dystrybucjach (Ubuntu, Fedora, Debian, Arch z systemd) odpowiada za zamianę nazw domen na adresy IP. Służy do dwóch rzeczy: odpytywania DNS (rozwiązywanie nazw, konkretnych rekordów, usług SRV) oraz podglądu i zmiany konfiguracji resolvera — które serwery DNS są używane, na którym interfejsie, czy działa DNSSEC i co siedzi w cache. To w praktyce następca starego systemd-resolve (ten sam binarny plik, tylko ładniejsza nazwa).
Składnia i najważniejsze opcje
Podstawowa składnia: resolvectl POLECENIE [NAZWA...]
query NAZWA— rozwiązuje nazwę domeny albo odwrotnie adres IP (reverse). To domyślne polecenie, jeśli podasz samą nazwę.status— pokazuje globalne i per-interfejsowe ustawienia DNS aktualnie w użyciu. Bez argumentu jest to domyślna akcja całej komendy.statistics— wyświetla statystyki resolvera: liczbę zapytań, trafień w cache oraz czy DNSSEC jest włączony i sprawny.flush-caches— czyści lokalny cache DNS (przydatne, gdy rekord się zmienił, a Ty wciąż widzisz stary).-t TYP,--type=TYP— przyquerywymusza typ rekordu (A, AAAA, MX, TXT, NS…). Klasa domyślnie IN.-p PROTOKÓŁ,--protocol=...— ogranicza rozwiązywanie do wybranego protokołu, np.dns,llmnr,mdns.--cache=no— pomija lokalny cache i pyta serwer od nowa.--no-pager— wypluwa wynik bez pagera, wygodne w skryptach.
Przykłady użycia
resolvectl query learningzone.pl— zwraca adresy IP (A/AAAA) dla domeny wraz z informacją, skąd przyszła odpowiedź.resolvectl query -t MX gmail.com— pyta o rekordy MX, czyli serwery pocztowe domeny.resolvectl status— pokazuje, jakie serwery DNS są ustawione na każdym interfejsie i czy działa DNSSEC.resolvectl statistics— sprawdzasz, ile zapytań trafiło w cache, zanim zaczniesz oskarżać sieć o wolność.sudo resolvectl flush-caches— czyścisz cache po zmianie rekordu DNS, żeby nie czekać na wygaśnięcie TTL.
Częste błędy i pułapki
To działa tylko z systemd-resolved. Jeśli usługa nie jest włączona (systemctl status systemd-resolved), komenda nic sensownego nie pokaże, a Twoje DNS i tak ustawia coś innego — NetworkManager, dnsmasq albo gołe /etc/resolv.conf. Nie myl też resolvectl status z zawartością /etc/resolv.conf: gdy resolved jest aktywny, ten plik to zwykle symlink na 127.0.0.53, a prawdziwe serwery zobaczysz dopiero w status.
Pamiętaj, że flush-caches oraz polecenia zmieniające konfigurację (np. resolvectl dns INTERFEJS ADRES) wymagają sudo. Same query, status i statistics są tylko do odczytu, więc bez uprawnień nic nie popsujesz.
Powiązane komendy: systemd-resolve (stara nazwa tego samego narzędzia), dig, host, nslookup, systemctl.