آموزش

خطای DNS_PROBE_FINISHED_NXDOMAIN؛ تشخیص و رفع در ۱۰ دقیقه

مرورگر می‌گوید DNS_PROBE_FINISHED_NXDOMAIN؟ با dig، whois و nslookup ریشهٔ خطای DNS را پیدا کنید: دامنهٔ منقضی، نیم‌سرور غلط یا کش محلی.

آموزش

مرورگر بالا باز نمی‌شود و فقط یک نوار خاکستری با پیام DNS_PROBE_FINISHED_NXDOMAIN می‌بینید. سایت دیروز کار می‌کرد، امروز نه. هیچ فایلی را دست نزده‌اید و پنل هاست هم سبز است. این خطای DNS دقیقاً یعنی مرورگر از سرور DNS پرسیده «آی‌پی این دامنه چیست؟» و جواب گرفته «چنین دامنه‌ای وجود ندارد». پس مشکل یا در ثبت دامنه است، یا در نیم‌سرور، یا در کش. تا این سه را از هم جدا نکنید، هر تغییری حدس‌وگمان است.

اول بفهمید خطا از سمت شماست یا از سمت دامنه

قبل از هر کاری، از یک شبکهٔ دیگر امتحان کنید. موبایل با اینترنت همراه، یا یک سرور دیگر. اگر آنجا سایت باز شد، مشکل کش محلی یا DNS اینترنت شماست. اگر آنجا هم باز نشد، دامنه یا نیم‌سرور خراب است. این یک تست، نصف مسیر را کوتاه می‌کند.

بعد از ترمینال لینوکس یا macOS این را بزنید:

dig +short example.com A
dig +short example.com NS
dig +short example.com A @1.1.1.1
dig +short example.com A @8.8.8.8

خط اول باید یک آی‌پی برگرداند. اگر خالی بود، دامنه در DNS عمومی وجود ندارد. خط دوم نیم‌سرورهای ثبت‌شده را نشان می‌دهد؛ اگر ns1.yourhost.com است ولی شما هاست را عوض کرده‌اید، همین‌جا خطا پیدا شد. خط سوم و چهارم را با هم مقایسه کنید: اگر 1.1.1.1 جواب می‌دهد ولی 8.8.8.8 نه، هنوز انتشار DNS تمام نشده و باید صبر کنید.

روی ویندوز معادلش این است:

nslookup example.com 1.1.1.1
nslookup -type=NS example.com

سه ریشهٔ واقعی خطای DNS_PROBE_FINISHED_NXDOMAIN

دامنه منقضی شده و کسی خبر ندارد

شایع‌ترین علت، و کمترین چیزی که به آن شک می‌کنید. دامنه‌ای که تمدید نشده، از zone حذف می‌شود و همه‌چیز یک‌شبه می‌خوابد. با whois چک کنید:

whois example.com | grep -i -E "expiry|expiration|status"

اگر تاریخ گذشته یا clientHold دیدید، بحث DNS نیست. باید تمدید شود. توجه کنید که در حالت clientHold دامنه در پنل شما فعال به‌نظر می‌رسد ولی در DNS عمومی وجود ندارد؛ همین باعث می‌شود ساعت‌ها دنبال نیم‌سرور بگردید.

نیم‌سرور اشتباه یا ناقص ثبت شده

وقتی هاست را عوض می‌کنید، باید هر دو نیم‌سرور را در پنل ثبت‌کننده تغییر دهید. اگر یکی را عوض کنید و یکی را جا بگذارید، بخشی از resolverها به سرور قدیمی می‌روند و بخشی به جدید. نتیجه، خطای پراکنده است: سایت برای شما باز می‌شود، برای مشتری نه. یا صبح باز است و عصر نه.

یک اشتباه رایج دیگر: ثبت نیم‌سرور با آی‌پی به‌جای نام. رکورد NS باید نام باشد، نه آی‌پی. اگر در پنل ثبت‌کننده جای نیم‌سرور آی‌پی گذاشته‌اید، zone هرگز معتبر نمی‌شود.

کش DNS محلی و مرورگر

اگر dig @1.1.1.1 جواب درست می‌دهد ولی مرورگر شما نه، مشکل کش است. TTL رکوردهای NS معمولاً ۲۴ ساعت است و رکوردهای A بین ۳۰۰ تا ۳۶۰۰ ثانیه. تا وقتی TTL تمام نشود، resolver قدیمی جواب قدیمی می‌دهد.

پاک‌کردن کش:

# لینوکس با systemd-resolved
sudo resolvectl flush-caches

# ویندوز
ipconfig /flushdns

# macOS
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

در کروم هم chrome://net-internals/#dns را باز کنید و Clear host cache را بزنید. اگر از DNS محلی مثل Pi-hole یا dnsmasq استفاده می‌کنید، آن را هم ری‌استارت کنید.

این‌جا اشتباه می‌کنند

بیشترین اشتباهی که دیده‌ام: تغییر نیم‌سرور و بعد تست فوری با مرورگر خودشان. سایت باز نمی‌شود، پس فکر می‌کنند نیم‌سرور را غلط زده‌اند و دوباره عوضش می‌کنند. این کار TTL را از نو شروع می‌کند و مشکل را چند ساعت عقب می‌اندازد. نشانه‌اش این است که سایت روی موبایل با اینترنت همراه باز می‌شود ولی روی لپ‌تاپ اداری نه. این یعنی DNS شما هنوز قدیمی است، نه اینکه تنظیمات غلط است.

اشتباه دوم: اضافه‌کردن رکورد A در پنل ثبت‌کننده وقتی نیم‌سرور روی هاست است. آن رکورد هیچ اثری ندارد چون zone از هاست خوانده می‌شود. تغییر را باید در DNS zone هاست بزنید، نه در پنل دامنه.

ترتیب درست عیب‌یابی

  1. از شبکهٔ دیگر تست کنید تا کش محلی رد شود.
  2. dig +short با resolver عمومی بزنید.
  3. whois برای انقضا و وضعیت دامنه.
  4. نیم‌سرورهای ثبت‌شده را با نیم‌سرورهای هاست مقایسه کنید.
  5. رکورد A یا CNAME را در zone هاست چک کنید.
  6. اگر همه درست بود، فقط صبر کنید تا TTL تمام شود.

یک نکتهٔ عملی: اگر روی هاست اشتراکی هستید و آی‌پی سرور عوض شده، ممکن است لازم باشد رکورد A را دستی به‌روز کنید. در هاست لینوکس این کار از پنل مدیریت انجام می‌شود و نیازی به دخالت ثبت‌کننده ندارد.

وقتی مشکل از سمت سرور است، نه DNS

گاهی DNS درست جواب می‌دهد ولی سایت باز نمی‌شود. آن‌وقت خطا عوض می‌شود: ERR_CONNECTION_TIMED_OUT یا صفحهٔ سفید. اگر وردپرس بالا می‌آید ولی محتوا نمی‌آید، ماجرا فرق دارد و باید سراغ صفحه سفید وردپرس؛ تشخیص و رفع در ده دقیقه بروید. اگر سایت باز می‌شود ولی کند است، مسئله DNS نیست و بهینه‌سازی سرعت وردپرس؛ راهنمای عملی و قابل اجرا مسیر درست‌تری است.

برای اطمینان از اینکه قطعی از DNS نبوده و سایت واقعاً از بیرون در دسترس است، پایش آپتایم سایت؛ راهنمای عملی برای هشدار قطعی بدون خطای کاذب را راه بیندازید. تفاوت «DNS جواب نمی‌دهد» و «سرور جواب نمی‌دهد» را فقط با لاگ می‌شود از هم تشخیص داد.

جمع‌بندی عملی

خطای DNS_PROBE_FINISHED_NXDOMAIN سه ریشه دارد و هر سه با یک دستور قابل تشخیص‌اند. اول dig با resolver عمومی، بعد whois، بعد مقایسهٔ نیم‌سرور. اگر هر سه سالم بود، مشکل کش است و راه‌حلش صبر است، نه تغییر تنظیمات. اگر دامنه منقضی است، هیچ تنظیم DNS نجاتش نمی‌دهد.

ابزارهای آنلاین بررسی DNS و رکوردها هم در ابزارهای رایگان سرورنت در دسترس است و برای تست سریع از چند نقطهٔ جغرافیایی به کار می‌آید. مستندات فنی مربوط به تنظیم zone و رکوردها را هم می‌توانید در مستندات و پایگاه دانش ببینید.

پرسش‌های پرتکرار

خطای DNS_PROBE_FINISHED_NXDOMAIN یعنی چه؟

یعنی مرورگر از resolver پرسیده آی‌پی دامنه چیست و پاسخ «وجود ندارد» گرفته است. این خطا ربطی به SSL، فایل‌های سایت یا پنل هاست ندارد؛ فقط می‌گوید نام دامنه در DNS حل نشد.

چرا سایت روی موبایل باز می‌شود ولی روی لپ‌تاپ نه؟

تقریباً همیشه یعنی کش DNS. لپ‌تاپ شما هنوز جواب قدیمی resolver را نگه داشته و TTL آن تمام نشده. با ipconfig /flushdns یا resolvectl flush-caches پاکش کنید و اگر نشد، DNS سیستم را موقتاً روی 1.1.1.1 بگذارید.

چقدر طول می‌کشد تا تغییر نیم‌سرور اعمال شود؟

بین چند دقیقه تا ۴۸ ساعت، بسته به TTL رکورد NS که معمولاً ۲۴ ساعت است. تا آن زمان بعضی کاربران سایت قدیمی را می‌بینند و بعضی جدید. این طبیعی است و نباید در این فاصله تنظیمات را دوباره عوض کنید.

اگر دامنه منقضی شده باشد، با تغییر نیم‌سرور درست می‌شود؟

نه. دامنهٔ منقضی یا در وضعیت clientHold از zone حذف می‌شود و هیچ تنظیم DNS آن را برنمی‌گرداند. اول باید در پنل ثبت‌کننده تمدید شود، بعد چند ساعت تا انتشار کامل صبر کنید.

پشتیبانی سرورنت

تیم فنی و تحریریه‌ی سرورنت — تخصص در زیرساخت، شبکه و میزبانی وب.

هاست وردپرس
اشتراک‌گذاری:

دیدگاه‌ها ۰

هنوز دیدگاهی ثبت نشده؛ اولین نفر باشید!

دیدگاه خود را بنویسید

سرویس مرتبط

هاست وردپرس

استک اختصاصی وردپرس با LiteSpeed Enterprise و NVMe — نصب خودکار، آپدیت امن، استیجینگ و کشی که سایت شما را در صدر نتایج گوگل نگه می‌دارد.