DNS, czyli system nazw domenowych, zamienia czytelne nazwy stron internetowych na adresy IP. W Linuksie DNS można ustawić na kilku poziomach: globalnie dla całego systemu, dla konkretnego interfejsu sieciowego, przez menedżera sieci, w pliku resolv.conf albo — jeśli konfigurujesz własny serwer DNS — w plikach BIND9 takich jak named.conf.options i named.conf.local.
- Co to jest DNS i po co go zmieniać
- Gdzie ustawić serwer DNS w Linuksie
- Najprostsza zmiana DNS w Linuksie
- Jak ustawić DNS na stałe
- Jak sprawdzić, czy DNS działa po zmianie
- Gdzie ustawić własny serwer DNS w Linuksie
- Jak wygląda przykładowa zmiana DNS na serwerze Ubuntu
- Najważniejsze pliki, które warto znać
- Najczęstsze problemy po zmianie DNS
- Jak napisać to w formie krótkiej instrukcji na stronę internetową
- Którą metodę wybrać
Co to jest DNS i po co go zmieniać
DNS odpowiada za tłumaczenie nazw typu example.com na adresy IP, dzięki czemu przeglądarka i inne aplikacje mogą znaleźć właściwy serwer. Zmiana DNS jest przydatna, gdy chcesz przyspieszyć rozwiązywanie nazw, poprawić prywatność, skorzystać z filtrów antyphishingowych albo używać własnego DNS w sieci lokalnej.
Najczęstsze powody zmiany DNS w Linuksie to:
- szybsze ładowanie stron,
- stabilniejsze działanie internetu,
- korzystanie z DNS od dostawcy, Google, Cloudflare, Quad9 lub OpenDNS,
- używanie lokalnego serwera DNS w firmie lub domu,
- testowanie własnej domeny i rekordów DNS.
Gdzie ustawić serwer DNS w Linuksie
Jeśli chcesz zmienić DNS na komputerze lub serwerze z Linuksem, zwykle ustawiasz go w konfiguracji sieci: przez resolv.conf, NetworkManager, netplan albo resolvconf.
Jeśli chcesz uruchomić własny serwer DNS, konfigurujesz BIND9 w plikach named.conf.options, named.conf.local oraz w plikach stref, a potem wskazujesz systemowi ten serwer jako resolver.
W praktyce ważne jest rozróżnienie między dwoma rolami: DNS klienta (system pyta inne serwery o adresy domen) oraz DNS serwera (system sam odpowiada na zapytania jako serwer nazw).
Najprostsza zmiana DNS w Linuksie
W wielu dystrybucjach DNS można zmienić przez ustawienia interfejsu sieciowego lub menedżera sieci. Najczęściej używane są: resolv.conf, netplan, nmcli oraz resolvconf.
1. Sprawdź, jak system zarządza DNS
Najpierw sprawdź, czy DNS nie jest nadpisywany przez usługę systemową. W nowoczesnych systemach często spotyka się mechanizmy, które automatycznie generują /etc/resolv.conf, a w niektórych konfiguracjach można zobaczyć lokalny stub resolver, np. 127.0.0.53.
Przydatne polecenia diagnostyczne:
cat /etc/resolv.conf
resolvectl status
nmcli device show
Jeśli w /etc/resolv.conf widzisz adres lokalny, np. 127.0.0.53, oznacza to, że plik może być zarządzany przez systemowy resolver, a nie ręcznie edytowany.
2. Zmień DNS przez NetworkManager
Jeżeli używasz NetworkManagera, DNS najlepiej ustawić na poziomie połączenia. To rozwiązanie jest stabilniejsze niż ręczna edycja resolv.conf, ponieważ system nie nadpisze konfiguracji przy restarcie.
Przykładowo możesz użyć nmcli:
nmcli con show
nmcli con mod "NAZWA_POLACZENIA" ipv4.dns "1.1.1.1 8.8.8.8"
nmcli con mod "NAZWA_POLACZENIA" ipv4.ignore-auto-dns yes
nmcli con up "NAZWA_POLACZENIA"
To ustawia ręcznie serwery DNS dla danego połączenia i ignoruje DNS pobierany automatycznie z DHCP.
3. Zmień DNS w resolv.conf
W prostszych instalacjach DNS można wpisać bezpośrednio do /etc/resolv.conf. W tym pliku dodajesz linie nameserver z adresami IP serwerów DNS.
Przykład edycji pliku:
sudo nano /etc/resolv.conf
Następnie dodaj:
nameserver 1.1.1.1
nameserver 8.8.8.8
Warto jednak pamiętać, że w wielu systemach ten plik może być nadpisywany przez usługę sieciową, więc ta metoda nie zawsze jest trwała.
4. Zmiana DNS w Debianie i pochodnych przez resolvconf
W części instalacji używany jest pakiet resolvconf. Ustawienia wpisuje się do plików takich jak /etc/resolvconf/resolv.conf.d/base albo /etc/resolvconf/resolv.conf.d/head, po czym odświeża konfigurację.
Przykład:
sudo apt-get install resolvconf
sudo nano /etc/resolvconf/resolv.conf.d/base
Dodaj:
nameserver 1.1.1.1
nameserver 8.8.8.8
Potem wykonaj:
sudo resolvconf -u
Następnie możesz sprawdzić wynik w /etc/resolv.conf.
Jak ustawić DNS na stałe
Jeśli chcesz, by zmiana była trwała, najlepsza metoda zależy od dystrybucji i sposobu zarządzania siecią. Z praktyki wynikają trzy najczęstsze podejścia:
- NetworkManager / nmcli — najlepsze na desktopach i wielu laptopach,
- netplan — często stosowany w Ubuntu Server,
- resolvconf / pliki interfejsu — użyteczne w starszych systemach Debian/Ubuntu.
W przypadku serwerów zawsze sprawdź, czy DNS nie jest ustawiany przez DHCP — ręczne wpisy mogą zostać zastąpione przy odnowieniu połączenia.
Dla szybkiego porównania najpopularniejszych metod zapoznaj się z poniższą tabelą:
| Metoda | Gdzie ustawić | Typowe zastosowanie | Trwałość/uwagi |
|---|---|---|---|
| NetworkManager (nmcli) | profil połączenia | laptopy i desktopy | trwałe; nie nadpisuje DHCP przy włączonym ignore-auto-dns |
| netplan | pliki YAML w /etc/netplan | Ubuntu Server | trwałe; wymaga zastosowania konfiguracji i zgodności z rendererem |
| resolv.conf | /etc/resolv.conf | proste, testowe konfiguracje | często nadpisywane przez usługi systemowe |
| resolvconf | /etc/resolvconf/resolv.conf.d/* | starsze Debian/Ubuntu | trwałe po odświeżeniu konfiguracji poleceniem resolvconf -u |
Jak sprawdzić, czy DNS działa po zmianie
Po zmianie konfiguracji trzeba przetestować, czy system rzeczywiście korzysta z nowego serwera DNS. Do testowania polecane są dig i nslookup.
Przykłady:
dig example.com
nslookup example.com
Jeżeli chcesz sprawdzić konkretny serwer DNS:
dig @1.1.1.1 example.com
nslookup example.com 1.1.1.1
Dobrą praktyką jest też sprawdzenie reverse DNS:
dig -x 8.8.8.8
Gdzie ustawić własny serwer DNS w Linuksie
Jeśli nie chodzi o zmianę DNS klienta, tylko o postawienie własnego serwera DNS, najczęściej używa się BIND9. Konfiguracja obejmuje pliki named.conf, named.conf.options, named.conf.local oraz pliki stref, które trzeba utworzyć i odpowiednio wskazać w konfiguracji.
Typowy układ wygląda tak:
named.conf.options— opcje globalne serwera,named.conf.local— definicje stref,- pliki stref forward i reverse — rekordy A, AAAA, PTR, CNAME itp.
Podstawowy schemat konfiguracji BIND9
Poniżej znajdziesz najczęściej wykonywane kroki przy konfiguracji:
- instalacja pakietów
bind9ibind9utils, - utworzenie definicji stref,
- przygotowanie plików stref,
- sprawdzenie składni poleceniem
named-checkconf, - restart usługi
bind9, - testy przy pomocy
diginslookup.
Przykładowa instalacja:
sudo apt install bind9 bind9utils
Sprawdzenie składni:
sudo named-checkconf
Restart i włączenie usługi:
sudo systemctl restart bind9
sudo systemctl enable bind9
Gdzie wpisuje się adres DNS w konfiguracji serwera
Jeśli konfigurujesz serwer DNS jako resolver lub forwarder, kluczowy jest plik named.conf.options — tam ustawiasz forwardery i reguły dostępu.
Jeśli konfigurujesz własną domenę i strefy, definicje umieszcza się w named.conf.local, a rekordy zapisuje w plikach strefowych.
W praktyce wygląda to tak:
- w
named.conf.optionsustawiasz ogólne zachowanie serwera, - w
named.conf.localdeklarujesz strefy, - w plikach stref zapisujesz konkretne rekordy domeny.
Jak wygląda przykładowa zmiana DNS na serwerze Ubuntu
W przypadku Ubuntu Server typowy scenariusz to: instalacja bind9, konfiguracja named.conf.options, definicja stref forward i reverse w named.conf.local, utworzenie plików stref na podstawie szablonów oraz restart usługi.
Najważniejsze kroki są następujące:
- Zainstaluj BIND9.
- Skonfiguruj opcje serwera w
named.conf.options. - Dodaj strefy w
named.conf.local. - Utwórz pliki stref dla wyszukiwania do przodu i do tyłu.
- Ustaw odpowiednie uprawnienia plików.
- Sprawdź konfigurację
named-checkconf. - Uruchom ponownie
bind9. - Przetestuj działanie poleceniami
diginslookup.
Najważniejsze pliki, które warto znać
W kontekście DNS w Linuksie najczęściej spotkasz następujące pliki:
/etc/resolv.conf— klasyczna konfiguracja resolvera klienta,/etc/resolvconf/resolv.conf.d/baselubhead— konfiguracja przyresolvconf,- konfiguracja połączenia w
NetworkManagerlubnmcli— trwała zmiana DNS dla interfejsu, - pliki
netplan— w Ubuntu Server dla sieci i DNS, /etc/bind/named.conf.options— ustawienia serwera BIND9,/etc/bind/named.conf.local— deklaracje stref DNS,- pliki stref, np.
db.*, własne pliki forward/reverse — rekordy domeny.
Najczęstsze problemy po zmianie DNS
Po zmianie DNS użytkownicy najczęściej napotykają podobne problemy:
- system nadal używa starego DNS, bo konfigurację nadpisuje DHCP lub NetworkManager,
- edytowany
resolv.confnie jest trwały, - serwer DNS nie odpowiada, bo usługa
bind9nie została uruchomiona, - w plikach stref są błędy składni,
- zapora blokuje port 53 UDP/TCP,
- rekordy PTR lub A są niezgodne z konfiguracją stref.
Jak napisać to w formie krótkiej instrukcji na stronę internetową
Jeśli potrzebujesz zwięzłego bloku instrukcyjnego do publikacji, możesz użyć takiej wersji:
- otwórz ustawienia sieci lub plik
/etc/resolv.conf, - wpisz adresy serwerów DNS w polach
nameserveralbo w konfiguracji połączenia, - zapisz zmiany i zrestartuj połączenie sieciowe albo usługę DNS,
- sprawdź działanie komendami
diginslookup.
Którą metodę wybrać
Najbardziej praktyczne podejście zależy od sytuacji:
- na komputerze domowym najlepiej użyć NetworkManagera lub ustawień sieci,
- na serwerze Ubuntu zwykle najlepiej skonfigurować DNS przez
netplanlub właściwą usługę systemową, - na starszym Debianie spotykane są metody z
resolvconfi ręcznym wskazywaniem DNS, - gdy stawiasz własny DNS użyj BIND9 i skonfiguruj pliki
named.conf.*oraz strefy.








