Linux में DNS Resolve न होने के कारण और समाधान

यदि Linux में इंटरनेट कनेक्शन मौजूद दिख रहा है, लेकिन वेबसाइट नहीं खुल रही, या IP address से कनेक्शन हो रहा है लेकिन domain name से नहीं, तो अक्सर DNS resolution में समस्या होती है। DNS का काम example.com जैसे domain name को वास्तविक IP address में बदलना है। यदि यही प्रक्रिया विफल हो जाए, तो नेटवर्क चालू होने पर भी सामान्य इंटरनेट उपयोग मुश्किल हो जाता है।

आम लक्षण

  • ब्राउज़र में “Server not found” या इसी तरह का संदेश दिखना
  • ping 8.8.8.8 सफल होना, लेकिन ping google.com विफल होना
  • apt, dnf, yum, pacman जैसे package manager का काम न करना
  • Temporary failure in name resolution त्रुटि दिखाई देना

सबसे पहले क्या जाँचना चाहिए

पहले यह तय करें कि समस्या पूरे नेटवर्क में है या केवल DNS में।

ping -c 4 8.8.8.8
ping -c 4 google.com
ip addr
ip route

यदि 8.8.8.8 तक पहुँच हो रही है लेकिन google.com तक नहीं, तो DNS में समस्या होने की संभावना बहुत अधिक है। यदि IP address तक भी पहुँच नहीं हो रही, तो समस्या network interface, Wi-Fi, gateway या routing में हो सकती है।

मुख्य कारण

1. /etc/resolv.conf की गलत सेटिंग

कई Linux सिस्टम में DNS server की जानकारी /etc/resolv.conf फ़ाइल में होती है। यदि इसमें सही nameserver नहीं है, तो domain name resolve नहीं होंगे।

cat /etc/resolv.conf

उदाहरण:

nameserver 8.8.8.8
nameserver 1.1.1.1

यदि यह फ़ाइल खाली है या किसी गलत local DNS को दिखा रही है, तो समस्या होगी। ध्यान दें कि आधुनिक Linux सिस्टम में यह फ़ाइल NetworkManager या systemd-resolved द्वारा अपने आप बनाई जा सकती है, इसलिए manual बदलाव बाद में overwrite हो सकते हैं।

2. systemd-resolved में समस्या

Ubuntu जैसे सिस्टम में systemd-resolved DNS resolution को संभालता है और अक्सर 127.0.0.53 को local stub resolver के रूप में इस्तेमाल करता है। यदि यह service बंद हो जाए, तो DNS resolution विफल हो सकता है।

systemctl status systemd-resolved
resolvectl status

समस्या होने पर service restart करें:

sudo systemctl restart systemd-resolved

3. NetworkManager द्वारा DNS सही तरह लागू न होना

Desktop Linux में NetworkManager अक्सर DHCP से DNS जानकारी प्राप्त करता है। यदि network profile खराब हो जाए या reconnection में दिक्कत हो, तो सही DNS लागू नहीं हो सकता।

nmcli dev show | grep DNS
nmcli connection show

ज़रूरत पड़ने पर इसे restart करें:

sudo systemctl restart NetworkManager

4. VPN, proxy या firewall का प्रभाव

कभी-कभी VPN DNS requests को गलत रास्ते पर भेज देता है, या firewall port 53 को block कर देता है। ऐसे में बाकी नेटवर्क चलता हुआ लगेगा, लेकिन domain name resolve नहीं होंगे।

5. DNS cache की समस्या

यदि local cache पुरानी या खराब हो गई है, तो कुछ domains resolve नहीं होंगे। यदि सिस्टम systemd-resolved या nscd का उपयोग कर रहा है, तो cache साफ़ करना उपयोगी हो सकता है।

sudo resolvectl flush-caches

व्यावहारिक समाधान

कदम 1: Public DNS को सीधे query करें

nslookup google.com 8.8.8.8
dig google.com @8.8.8.8

यदि यहाँ सही उत्तर मिलता है, तो बाहरी DNS सामान्य है और समस्या local configuration में होने की संभावना है।

कदम 2: अस्थायी रूप से public DNS सेट करें

sudo sh -c 'printf "nameserver 8.8.8.8\nnameserver 1.1.1.1\n" > /etc/resolv.conf'

यह अस्थायी समाधान है। Reboot या reconnect के बाद यह सेटिंग वापस बदल सकती है। स्थायी समाधान के लिए NetworkManager, netplan या systemd-resolved की configuration ठीक करनी होगी।

कदम 3: Ubuntu में netplan जाँचें

sudo nano /etc/netplan/*.yaml

उदाहरण:

nameservers:
  addresses: [8.8.8.8,1.1.1.1]

बदलाव के बाद लागू करें:

sudo netplan apply

कदम 4: DHCP जानकारी फिर से प्राप्त करें

sudo dhclient -r
sudo dhclient

यदि DHCP server ने गलत DNS जानकारी दी थी, तो यह कदम मदद कर सकता है।

जाँच के लिए उपयोगी कमांड

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

दोबारा समस्या न हो इसके लिए

  • सिर्फ /etc/resolv.conf को manually edit करके न रुकें
  • समझें कि DNS को DHCP, NetworkManager या systemd-resolved में से कौन manage कर रहा है
  • VPN उपयोग के बाद DNS settings बदल गई हैं या नहीं, यह जाँचें
  • Server environment में static DNS स्पष्ट रूप से सेट करें

निष्कर्ष

Linux में DNS resolve न होने पर सबसे पहले यह जाँचना महत्वपूर्ण है कि IP address तक पहुँच है या नहीं। इससे स्पष्ट हो जाता है कि समस्या केवल DNS की है या पूरे नेटवर्क की। इसके बाद /etc/resolv.conf, systemd-resolved, NetworkManager, DHCP और VPN settings को क्रम से जाँचें। केवल अस्थायी सुधार करने के बजाय यह समझना अधिक महत्वपूर्ण है कि आपके सिस्टम में वास्तव में DNS को कौन नियंत्रित कर रहा है।

Leave a Reply

ਤੁਹਾਡਾ ਈ-ਮੇਲ ਪਤਾ ਪ੍ਰਕਾਸ਼ਿਤ ਨਹੀਂ ਕੀਤਾ ਜਾਵੇਗਾ। ਲੋੜੀਂਦੇ ਖੇਤਰਾਂ 'ਤੇ * ਦਾ ਨਿਸ਼ਾਨ ਲੱਗਿਆ ਹੋਇਆ ਹੈ।