Əgər Linux sistemində internet bağlantısı mövcud görünürsə, amma saytlar açılmırsa, yaxud IP ünvanı ilə əlaqə qurmaq olur, amma domen adı ilə olmursa, çox vaxt problem DNS həllində olur. DNS-in vəzifəsi example.com kimi domen adlarını real IP ünvanlarına çevirməkdir. Bu proses pozulanda şəbəkə işləyirmiş kimi görünə bilər, amma adi internet istifadəsi ciddi şəkildə məhdudlaşır.
Tez-tez rast gəlinən əlamətlər
- Brauzer serverin tapılmadığını göstərir
ping 8.8.8.8işləyir, ammaping google.comuğursuz olurapt,dnf,yum,pacmankimi paket menecerləri işləməyə bilərTemporary failure in name resolutionxətası görünür
Əvvəlcə nəyi yoxlamaq lazımdır
İlk addım problemin bütün şəbəkədə, yoxsa yalnız DNS-də olduğunu müəyyənləşdirməkdir.
ping -c 4 8.8.8.8
ping -c 4 google.com
ip addr
ip route
Əgər 8.8.8.8 işləyir, amma google.com işləmir, bu, güclü ehtimalla DNS problemidir. Əgər IP ünvanına da çıxış yoxdur, onda problem Wi-Fi, şəbəkə interfeysi, gateway və ya routing ilə bağlı ola bilər.
Əsas səbəblər
1. /etc/resolv.conf faylında səhv
Bir çox Linux sistemində DNS server məlumatı /etc/resolv.conf faylında saxlanılır. Əgər orada düzgün nameserver yoxdursa, domen adları həll olunmayacaq.
cat /etc/resolv.conf
Nümunə:
nameserver 8.8.8.8
nameserver 1.1.1.1
Fayl boşdursa və ya yanlış lokal DNS-ə yönəlirsə, problem yaranır. Amma müasir Linux sistemlərində bu fayl çox vaxt NetworkManager və ya systemd-resolved tərəfindən avtomatik yaradılır, buna görə əl ilə edilən dəyişikliklər sonradan üzərinə yazıla bilər.
2. systemd-resolved xidməti ilə bağlı problem
Ubuntu kimi sistemlərdə systemd-resolved DNS həllini idarə edir və çox vaxt 127.0.0.53 lokal resolver kimi istifadə olunur. Bu xidmət dayandıqda DNS işləməyə bilər.
systemctl status systemd-resolved
resolvectl status
Problem olduqda xidməti yenidən başladın:
sudo systemctl restart systemd-resolved
3. NetworkManager DNS-i düzgün tətbiq etmir
Masaüstü Linux sistemlərində NetworkManager çox vaxt DNS məlumatını DHCP vasitəsilə alır. Əgər şəbəkə profili zədələnibsə və ya yenidən qoşulma zamanı problem olubsa, düzgün DNS tətbiq olunmaya bilər.
nmcli dev show | grep DNS
nmcli connection show
Lazım gəlsə, yenidən başladın:
sudo systemctl restart NetworkManager
4. VPN, proxy və ya firewall təsiri
VPN DNS sorğularını yanlış marşrutla göndərə bilər, firewall isə 53-cü portu bloklaya bilər. Bu zaman şəbəkə işləyir kimi görünür, amma domen adları həll olunmur.
5. DNS keşində problem
Lokal keş köhnəlmiş və ya zədələnmişdirsə, bəzi domenlər açılmaya bilər. systemd-resolved və ya nscd istifadə olunan sistemlərdə keşi təmizləmək kömək edə bilər.
sudo resolvectl flush-caches
Praktiki həll addımları
Addım 1: Public DNS-ə birbaşa sorğu göndərin
nslookup google.com 8.8.8.8
dig google.com @8.8.8.8
Bu işləyirsə, deməli xarici DNS normaldır və problem daha çox lokal sazlamadadır.
Addım 2: Müvəqqəti public DNS təyin edin
sudo sh -c 'printf "nameserver 8.8.8.8\nnameserver 1.1.1.1\n" > /etc/resolv.conf'
Bu yalnız müvəqqəti həll yoludur. Yenidən başlatma və ya şəbəkəyə yenidən qoşulmadan sonra fayl əvvəlki vəziyyətinə qayıda bilər. Daimi həll üçün NetworkManager, netplan və ya systemd-resolved sazlamasını düzəltmək lazımdır.
Addım 3: Ubuntu-da netplan faylını yoxlayın
sudo nano /etc/netplan/*.yaml
Nümunə:
nameservers:
addresses: [8.8.8.8,1.1.1.1]
Sonra tətbiq edin:
sudo netplan apply
Addım 4: DHCP məlumatını yenidən alın
sudo dhclient -r
sudo dhclient
Əgər DHCP server yanlış DNS məlumatı veribsə, bu addım problemi həll edə bilər.
Yoxlama üçün faydalı əmrlər
ping -c 4 8.8.8.8
ping -c 4 google.com
cat /etc/resolv.conf
systemctl status systemd-resolved
resolvectl status
nmcli dev show | grep DNS
nslookup google.com
dig google.com
journalctl -u systemd-resolved --no-pager | tail -n 50
Təkrar baş verməməsi üçün
- Yalnız
/etc/resolv.conffaylını əl ilə düzəltməklə kifayətlənməyin - DNS-in DHCP, NetworkManager və ya systemd-resolved tərəfindən idarə olunduğunu anlayın
- VPN quraşdırıldıqdan sonra DNS sazlamasını yoxlayın
- Server mühitində sabit DNS ünvanlarını açıq şəkildə təyin edin
Nəticə
Linux-də DNS həll olunmursa, ən vacib ilk addım IP ünvanı ilə əlaqənin işləyib-işləmədiyini yoxlamaqdır. Bu, problemin yalnız DNS-də, yoxsa ümumi şəbəkədə olduğunu anlamağa kömək edir. Daha sonra /etc/resolv.conf, systemd-resolved, NetworkManager, DHCP və VPN sazlamaları ardıcıl şəkildə yoxlanmalıdır. Ən yaxşı yanaşma yalnız müvəqqəti düzəliş deyil, sistemdə DNS-i hansı komponentin həqiqətən idarə etdiyini anlamaqdır.