عیب‌یابی DNS در DirectAdmin – وقتی named اجرا می‌شود اما دامنه resolve نمی‌شود

گاهی سرویس named (BIND) روی سرور اجرا می‌شود اما دامنه‌ها resolve نمی‌شوند یا از بیرون پاسخ DNS دریافت نمی‌شود. این مقاله یک راهنمای کامل برای بررسی listen، فایروال، تنظیمات named.conf، propagation، رکوردهای اشتباه، مشکلات ساب‌دامین، resolv.conf و خطاهای رایج DNS در DirectAdmin است.

DNS Troubleshooting

~3 دقیقه مطالعه • بروزرسانی ۱۰ اسفند ۱۴۰۴

1. Named اجراست اما هیچ Query دریافت نمی‌شود


این رایج‌ترین مشکل DNS است: سرویس named روشن است اما هیچ‌کس از بیرون نمی‌تواند رکوردی دریافت کند.

مرحله ۱: بررسی اینکه named روی همه IPها گوش می‌دهد


netstat -lnp | grep named

یا برای IPv6:


ss -lnp | grep :53

خروجی صحیح باید شبیه این باشد:


tcp LISTEN 0 128 0.0.0.0:53 0.0.0.0:* users:(("named",pid=1234))
udp UNCONN 0 0 0.0.0.0:53 0.0.0.0:* users:(("named",pid=1234))

اگر فقط 127.0.0.1:53 یا ::1:53 دیدی → named فقط روی localhost گوش می‌دهد.

---

مرحله ۲: اصلاح تنظیمات /etc/named.conf

این خطوط نباید وجود داشته باشند (یا باید کامنت شوند):


listen-on port 53 { 127.0.0.1; };
listen-on-v6 port 53 { ::1; };
allow-query { localhost; };

به این شکل تغییر بده:


listen-on port 53 { any; };
listen-on-v6 port 53 { any; };
allow-query { any; };
allow-recursion { localhost; localnets; };

سپس:


systemctl restart named
---

مرحله ۳: بررسی فایروال (TCP و UDP روی پورت ۵۳)

تست از داخل سرور:


dig google.com @127.0.0.1

اگر جواب داد اما از بیرون جواب نمی‌دهد → مشکل فایروال است.

خاموش کردن موقت فایروال برای تست:

firewalld:


systemctl stop firewalld

iptables:


service iptables stop

CSF:


csf -x

اگر مشکل حل شد → پورت ۵۳ را باز کن:


firewall-cmd --permanent --add-port=53/tcp
firewall-cmd --permanent --add-port=53/udp
firewall-cmd --reload
---

مرحله ۴: تست از بیرون

بهترین ابزار:


https://www.intodns.com

یا تست دستی:


dig domain.com @SERVER_IP
---

2. www.domain.com کار نمی‌کند اما domain.com کار می‌کند


این مشکل تقریباً همیشه به خاطر DNS propagation است.

راه‌حل:

  • ۴ تا ۲۴ ساعت صبر کن
  • قبل از تغییر IP، TTL را به ۳۰۰–۶۰۰ کاهش بده
  • وضعیت جهانی را چک کن:

https://www.whatsmydns.net
---

3. sub.domain.com کار نمی‌کند اما domain.com/sub کار می‌کند


چک‌لیست:

  • آیا رکورد A برای sub ساخته شده؟
  • از داخل سرور تست کن:

dig sub.domain.com @127.0.0.1
  • اگر resolve نمی‌شود → named مشکل دارد یا task.queue پردازش نشده
  • اگر resolve می‌شود اما سایت بالا نمی‌آید:

بررسی VirtualHost:

  • IP در DNS با IP در httpd.conf/nginx.conf یکی باشد
  • DocumentRoot درست باشد (Sub-Domains Setup → Document Root Override)

اگر DNS خارجی استفاده می‌کنی:

در DNS خارجی رکورد A ساب‌دامین را اضافه کن.

---

4. بررسی resolv.conf و DNS سرورهای محلی


اگر سرور خودش نمی‌تواند resolve کند، فایل زیر را چک کن:


/etc/resolv.conf

نمونه صحیح:


nameserver 8.8.8.8
nameserver 8.8.4.4

تست:


dig google.com @8.8.8.8
---

5. چرا صفحه “Apache is functioning normally” یا “This IP is shared” می‌بینم؟


دلایل اصلی:

  • دامنه به IP اشتباه resolve می‌شود
  • VirtualHost برای دامنه وجود ندارد

چک سریع:

IP دامنه:


dig domain.com

IP تنظیم‌شده در DirectAdmin:


Admin Level → Show All Users → دامنه → IP

اگر متفاوت بودند → رکورد A را اصلاح کن یا صبر کن propagation کامل شود.

بازنویسی کانفیگ وب‌سرور:


cd /usr/local/directadmin/custombuild
./build rewrite_confs

نوشته و پژوهش شده توسط دکتر شاهین صیامی