Skip to content
VDS · समस्या निवारण

नाम रिज़ॉल्व नहीं हो रहे (DNS)

मशीन पते देख सकती है पर नाम नहीं: रिज़ॉल्वर कैसे जाँचें, resolv.conf ठीक करें, और रीबूट के बाद सेटिंग खोने से बचें।

23 अगस्त 2026 को अपडेट किया गया

इस फ़ेलियर का लक्षण पहचानने योग्य होता है: ping 1.1.1.1 काम करता है, ping millida.net पर “Temporary failure in name resolution” आता है, apt update अटक जाता है और टाइम आउट हो जाता है। नेटवर्क ख़ुद ठीक है — सिर्फ़ नामों को पते में बदलने का काम बिगड़ा है।

स्टेप 1. पक्का करें कि दिक्कत नामों में है

ping -c3 1.1.1.1
getent hosts millida.net
dig +short millida.net @1.1.1.1

अगर साफ़ तौर पर दिए गए सर्वर के साथ dig जवाब देता है, लेकिन getent नहीं देता, तो सिस्टम को पता ही नहीं है कि किस रिज़ॉल्वर से संपर्क करना है। यह कॉन्फ़िगरेशन की दिक्कत है, कनेक्टिविटी की नहीं।

स्टेप 2. देखें कि रिज़ॉल्यूशन कौन संभालता है

cat /etc/resolv.conf
systemctl status systemd-resolved
resolvectl status

तीन स्थितियाँ हो सकती हैं:

  • फ़ाइल ख़ाली है या उसमें nameserver लाइनें नहीं हैं — कोई रिज़ॉल्वर सेट ही नहीं है;
  • फ़ाइल में nameserver 127.0.0.53 है, लेकिन systemd-resolved चल नहीं रहा — रिक्वेस्ट कहीं नहीं जातीं;
  • कोई थर्ड-पार्टी सर्वर सेट है जो हमारे नेटवर्क से पहुँच से बाहर है।

स्टेप 3. इसे ठीक करें

apt और curl वापस चलाने के लिए फ़ौरी रिकवरी:

echo 'nameserver 1.1.1.1' > /etc/resolv.conf
echo 'nameserver 8.8.8.8' >> /etc/resolv.conf

यह तुरंत काम करता है, लेकिन रीबूट या अगली नेटवर्क रीकॉन्फ़िगरेशन तक ही टिकता है। पक्का हल सिस्टम पर निर्भर करता है।

systemd-resolved वाले Debian और Ubuntu:

systemctl enable --now systemd-resolved
ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
resolvectl dns ens18 1.1.1.1 8.8.8.8

AlmaLinux और CentOS Stream:

nmcli con mod "System ens18" ipv4.dns "1.1.1.1 8.8.8.8"
nmcli con up "System ens18"

अगर /etc/resolv.conf /run में जाता हुआ सिंबॉलिक लिंक है, तो उसे हाथ से एडिट न करें। ऐसी फ़ाइल सर्विस ओवरराइट कर देती है, और आपका बदलाव पहले ही रीबूट पर ग़ायब हो जाएगा — एक हफ़्ते बाद वही फ़ेलियर फिर आएगा और आपको याद भी नहीं रहेगा कि क्यों।

स्टेप 4. ख़ास मामले

रिज़ॉल्वर काम करता है, लेकिन कोई ख़ास नाम नहीं मिल रहा। देखें कि रिकॉर्ड पब्लिश हुआ भी है या नहीं:

dig millida.net A @1.1.1.1
dig millida.net A @8.8.8.8

दो सर्वरों से अलग-अलग जवाब आने का मतलब है कि ज़ोन हाल ही में बदला है और कहीं पुराना कैश अब भी पड़ा है। dig के जवाब में दिए रिकॉर्ड के टाइम टू लिव (TTL) तक इंतज़ार करें।

मशीन के पते का रिवर्स रिकॉर्ड (PTR) इस दिक्कत से कोई लेना-देना नहीं रखता: यह मेल सर्वरों को चाहिए होता है, “Access” टैब में सेट होता है, और इससे मशीन ख़ुद कैसे नाम रिज़ॉल्व करती है, इस पर कोई असर नहीं पड़ता।

एक और आम चीज़ मिलती है — /etc/hosts में माइग्रेशन के बाद छूटी पुरानी लाइन। सिस्टम इसे DNS से पहले देखता है और ज़िद करके पुराने पते पर ही जाता रहता है:

cat /etc/hosts

फ़ालतू लाइनें हटा दें और 127.0.0.1 localhost तथा मशीन के अपने नाम वाली लाइन रखें।

अगर किसी भी सर्वर से नाम रिज़ॉल्व ही न हों

तो दिक्कत बड़ी है: मशीन पर नेटवर्क ग़ायब लेख की मदद से बेसिक कनेक्टिविटी जाँचें और पक्का करें कि आउटबाउंड पोर्ट 53 आपके ही पैकेट फ़िल्टर से ब्लॉक नहीं है।