Képzeld el a helyzetet: ülsz a géped előtt, Ubuntu fut rajta, és semmi nem működik. Konkrétan: nincs internet. A böngésző csak forog, a levelező kliens hibát jelez, és a kedvenc online játékkal is búcsút inthetsz. Frusztráló, igaz? Az esetek jelentős részében a probléma gyökere a /etc/resolv.conf
fájlban rejlik – a DNS-beállítások kulcsfontosságú helyszínén.
Mi is az a resolv.conf és miért fontos? 🧐
A /etc/resolv.conf
egy konfigurációs fájl, ami az Ubuntu (és egyéb Linux rendszerek) számára megmondja, hol keressen a DNS-szerverek után. A DNS (Domain Name System) az az okos rendszer, ami a weboldalak ember számára is olvasható címeit (pl. google.com) átfordítja a számítógépek által értelmezhető IP-címekre (pl. 142.250.185.142). Ha ez a fájl hibás, hiányzik, vagy egyszerűen rosszul van beállítva, a számítógéped nem fogja tudni „lefordítani” a webcímeket, és így nem fogsz tudni elérni az internetet.
Gyakorlatilag ez a fájl a „telefonkönyv” az internethez. Ha rossz a telefonszámod (a DNS-szerver címe), senkit sem fogsz tudni felhívni (elérni az interneten).
A rejtélyes resolv.conf tartalma 🕵️
A resolv.conf
fájl általában nagyon egyszerű. Néhány sorból áll, amik a nameserver
direktívával kezdődnek. Például:
nameserver 8.8.8.8
nameserver 8.8.4.4
Ez a példa azt mutatja, hogy a számítógép a Google nyilvános DNS-szervereit használja. Az elsődleges DNS-szerver a 8.8.8.8
, a másodlagos pedig a 8.8.4.4
. Ha az első nem elérhető, a gép automatikusan megpróbálja a másodikat.
Lehetnek még benne egyéb opciók, mint például a domain
vagy a search
, de ezek nem annyira kritikusak az alapvető internetkapcsolat szempontjából.
Miért romolhat el a resolv.conf? 🤔
A probléma ott kezdődik, hogy az Ubuntu modern verziói (elsősorban a NetworkManager használatával) dinamikusan generálják a resolv.conf
fájlt. Ez azt jelenti, hogy nem szabad manuálisan szerkeszteni! Ha mégis megteszed, a következő újraindításkor, vagy hálózati kapcsolat változáskor a rendszer felülírja a módosításaidat.
A leggyakoribb okok, amiért a resolv.conf
„elromlik”:
- Manuális szerkesztés, amit a rendszer felülír.
- Hálózati konfigurációs problémák (pl. DHCP szerver nem ad DNS-címet).
- A NetworkManager helytelen beállításai.
- VPN kapcsolatok, amik megváltoztatják a DNS-beállításokat és nem állítják vissza helyesen.
A helyes konfiguráció lépései 🛠️
Ahelyett, hogy közvetlenül a resolv.conf
fájlt szerkesztenéd, a NetworkManager-t kell konfigurálnod. Íme a helyes út:
- A NetworkManager GUI használata: Kattints a hálózati ikonra a tálcán, válaszd ki a használt hálózatot (vezetékes vagy vezeték nélküli), majd kattints a „Settings” (Beállítások) gombra.
- Az „IPv4” fülön: Válaszd ki a „Manual” (Kézi) módot a „DNS” résznél. Itt megadhatod a kívánt DNS-szerverek címeit, vesszővel elválasztva őket (pl.
8.8.8.8, 8.8.4.4
). - Mentés és újraindítás: Mentsd el a beállításokat, és indítsd újra a hálózati kapcsolatot. Ezt megteheted a hálózati ikonon keresztül, vagy a terminálban a
sudo systemctl restart NetworkManager
paranccsal.
Alternatív megoldás: A terminál használata (nmcli
)
Ha a terminált részesíted előnyben, az nmcli
parancssori eszközzel is beállíthatod a DNS-t. Például:
nmcli connection modify "HálózatNeve" ipv4.dns "8.8.8.8,8.8.4.4"
nmcli connection modify "HálózatNeve" ipv4.method manual
nmcli connection up "HálózatNeve"
Ahol a "HálózatNeve"
a hálózatod neve (ezt a nmcli connection show
paranccsal tudod megnézni).
Vigyázat! A systemd-resolved buktatói ⚠️
Az Ubuntu 18.04 és újabb verzióiban a systemd-resolved
is szerepet játszik a DNS-kezelésben. Ez a szolgáltatás egy helyi DNS-feloldó, ami „közbeékelődik” a resolv.conf
és a tényleges DNS-szerverek között. Gyakran generál egy /etc/resolv.conf
fájlt, ami csak egy sort tartalmaz:
nameserver 127.0.0.53
Ez azt jelenti, hogy a rendszer a saját, helyi DNS-feloldóját használja, ami továbbítja a kéréseket a beállított DNS-szervereknek. Ez alapvetően nem probléma, de ha valamiért a systemd-resolved
nem működik megfelelően, akkor a net ismét eltűnhet.
Ha ilyet látsz, ne ess kétségbe! A NetworkManager beállításai továbbra is érvényesek, csak a systemd-resolved
használja őket.
Ha továbbra is problémáid vannak, érdemes ellenőrizni a
/etc/systemd/resolved.conf
fájlt is. Itt adhatsz meg globális DNS-beállításokat, amik felülírják a NetworkManager beállításait. De ezt csak akkor tedd, ha tudod, mit csinálsz!
Néhány tipp és trükk a végső megoldáshoz 💡
- Próbáld ki a Google, Cloudflare vagy a helyi szolgáltatód DNS-szervereit: A Google DNS (
8.8.8.8
és8.8.4.4
) általában megbízható, de a Cloudflare DNS (1.1.1.1
és1.0.0.1
) is egy jó alternatíva. A helyi szolgáltatód DNS-e is jó lehet, de néha lassabb vagy kevésbé megbízható. - Ellenőrizd a tűzfalbeállításokat: Bizonyosodj meg arról, hogy a tűzfalad nem blokkolja a DNS-forgalmat (53-as port).
- Frissítsd a rendszert: Egy elavult rendszerben is előfordulhatnak hálózati problémák. Futtasd a
sudo apt update && sudo apt upgrade
parancsot. - Indítsd újra a routert: Néha a legegyszerűbb megoldás a legjobb. Húzd ki a routert a konnektorból, várj 30 másodpercet, majd dugd vissza.
Végső gondolatok és tapasztalatok 💭
Saját tapasztalatom szerint a resolv.conf
problémák az Ubuntu-ban leginkább akkor szoktak előjönni, amikor valaki kísérletezik a hálózati beállításokkal, vagy VPN-t használ. A NetworkManager helyes konfigurálása szinte mindig megoldja a problémát. Ne feledd: a direkt szerkesztés helyett a NetworkManager a barátod!
Remélem, ez a cikk segített neked megoldani a DNS-problémáidat az Ubuntu-ban. Ha továbbra is kérdéseid vannak, ne habozz kommentelni!