مشكلة اتصال SSH: لا يمكن الاتصال بالخادم — الحل
دليل حل مشاكل اتصال SSH: قواعد جدار حماية Path.net، Default Block، إنشاء قاعدة تصفية لمنفذ SSH وخطوات استكشاف الأخطاء وإصلاحها.
دليل شامل لتشخيص وحل مشاكل DNS باستخدام أوامر dig و nslookup، فحص انتشار DNS، مسح ذاكرة التخزين المؤقت وحلول أخطاء DNS الشائعة.
DNS (نظام أسماء النطاقات) هو أحد المكونات الأساسية للبنية التحتية للإنترنت. يقوم هذا النظام بتحويل أسماء النطاقات إلى عناوين IP، وعندما لا يعمل بشكل صحيح، يمكن أن تتعطل العديد من الخدمات مثل الوصول إلى المواقع وتسليم البريد الإلكتروني واتصالات الخادم.
في هذا الدليل، سنستعرض بالتفصيل الأدوات والطرق التي يمكنك استخدامها لتشخيص وحل مشاكل DNS.
| نوع السجل | الوصف | مثال |
|---|---|---|
| A | تعيين عنوان IPv4 | example.com → 1.2.3.4 |
| AAAA | تعيين عنوان IPv6 | example.com → 2001:db8::1 |
| CNAME | اسم مستعار لنطاق آخر | www → example.com |
| MX | توجيه خادم البريد | mail.example.com (أولوية: 10) |
| TXT | سجل نصي (SPF, DKIM إلخ) | v=spf1 ip4:1.2.3.4 -all |
| NS | تعريف خادم الأسماء | ns1.example.com |
| PTR | سجل DNS العكسي | 4.3.2.1 → example.com |
| SOA | سجل سلطة المنطقة | TTL, serial, refresh |
المستخدم → ذاكرة DNS المحلية → المحلل التكراري → NS الجذر → NS نطاق المستوى الأعلى → NS المعتمد → عنوان IP
dig (Domain Information Groper) هو أقوى أداة لتشخيص مشاكل DNS.
# استعلام سجل A
dig example.com A
# استعلام من خادم DNS محدد
dig @8.8.8.8 example.com A
# إخراج مختصر
dig example.com +short
# استعلام جميع أنواع السجلات
dig example.com ANY
# استعلام سجل MX
dig example.com MX
# استعلام سجل NS
dig example.com NS
# استعلام سجل TXT
dig example.com TXT
# وضع التتبع — يعرض عملية الحل خطوة بخطوة
dig example.com +trace
# سجل SOA — معلومات المنطقة
dig example.com SOA
# استعلام DNS العكسي
dig -x 1.2.3.4
# استعلام عبر TCP (للردود الكبيرة)
dig example.com +tcp
# التحقق من DNSSEC
dig example.com +dnssec
$ dig example.com A
;; QUESTION SECTION:
;example.com. IN A
;; ANSWER SECTION:
example.com. 300 IN A 93.184.216.34
;; AUTHORITY SECTION:
example.com. 86400 IN NS ns1.example.com.
;; Query time: 23 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; MSG SIZE rcvd: 56
الحقول الرئيسية:
nslookup أداة أبسط لاستعلامات DNS:
# استعلام أساسي
nslookup example.com
# استعلام من خادم DNS محدد
nslookup example.com 8.8.8.8
# استعلام سجل MX
nslookup -type=MX example.com
# استعلام سجل NS
nslookup -type=NS example.com
# DNS العكسي
nslookup 1.2.3.4
عند إجراء تغييرات DNS، يستغرق الأمر وقتًا لانتشار السجلات الجديدة إلى جميع خوادم DNS.
| نوع السجل | TTL النموذجي | وقت الانتشار |
|---|---|---|
| A / AAAA | 300-3600 ثانية | 5 دقائق - ساعة |
| MX | 3600-86400 ثانية | 1 - 24 ساعة |
| NS | 86400 ثانية | 24 - 48 ساعة |
| TXT | 300-3600 ثانية | 5 دقائق - ساعة |
# Google DNS
dig @8.8.8.8 example.com A +short
# Cloudflare DNS
dig @1.1.1.1 example.com A +short
# Quad9 DNS
dig @9.9.9.9 example.com A +short
أدوات فحص الانتشار عبر الإنترنت:
لتسريع انتشار DNS، قم بتخفيض قيمة TTL قبل إجراء التغييرات (مثلاً 300 ثانية). يمكنك زيادة TTL مرة أخرى بعد اكتمال التغيير.
# Linux (systemd-resolved)
sudo systemd-resolve --flush-caches
sudo resolvectl flush-caches
# macOS
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder
# Windows
ipconfig /flushdns
# مسح ذاكرة BIND named
sudo rndc flush
# لمنطقة محددة
sudo rndc flushname example.com
# مسح ذاكرة Unbound
sudo unbound-control flush_zone example.com
لمسح ذاكرة DNS في Chrome:
chrome://net-internals/#dns → Clear host cache
$ dig nonexistent.example.com
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN
الأسباب:
الحل:
# تحقق من معلومات WHOIS للنطاق
whois example.com
# تحقق من خوادم الأسماء
dig example.com NS +short
# استعلم من NS المعتمد
dig @ns1.example.com example.com A
الأسباب:
الحل:
# تحقق من إمكانية الوصول لخادم الأسماء
dig @ns1.example.com example.com A
# تحقق من حالة DNSSEC
dig example.com +dnssec
# جرب محلل مختلف
dig @1.1.1.1 example.com A
الحل:
# امسح الذاكرة المؤقتة
sudo systemd-resolve --flush-caches
# استعلم مباشرة من NS المعتمد
dig @ns1.example.com example.com A +short
# تحقق من مسار الحل باستخدام trace
dig example.com +trace
الحل:
# قياس وقت استجابة DNS
dig example.com | grep "Query time"
# مقارنة خوادم DNS مختلفة
for dns in 8.8.8.8 1.1.1.1 9.9.9.9; do
echo "$dns: $(dig @$dns example.com +short +stats | grep 'Query time')"
done
لإعدادات DNS الدائمة، استخدم تكوين systemd-resolved أو NetworkManager بدلاً من تحرير /etc/resolv.conf مباشرة.
#!/bin/bash
DOMAIN="example.com"
echo "=== تشخيص DNS: $DOMAIN ==="
echo -e "\n[1] خوادم الأسماء:"
dig $DOMAIN NS +short
echo -e "\n[2] سجل A:"
dig $DOMAIN A +short
echo -e "\n[3] سجل MX:"
dig $DOMAIN MX +short
echo -e "\n[4] سجلات TXT:"
dig $DOMAIN TXT +short
echo -e "\n[5] فحص الانتشار:"
for dns in 8.8.8.8 1.1.1.1 9.9.9.9; do
result=$(dig @$dns $DOMAIN A +short)
echo " $dns → $result"
done
echo -e "\n=== اكتمل الفحص ==="
مشاكل DNS من أكثر المشاكل شيوعًا في إدارة الخوادم. باستخدام أدوات dig و nslookup بفعالية، يمكنك تشخيص المشاكل بسرعة وتتبع عمليات الانتشار وحل مشاكل الذاكرة المؤقتة. تذكر تخفيض قيم TTL قبل تغييرات DNS والتحقق من خوادم DNS مختلفة بعد التغييرات.
يعتمد وقت انتشار DNS على قيمة TTL. مع TTL منخفض (300 ثانية)، يمكن أن تنتشر التغييرات في 5-30 دقيقة. مع TTL مرتفع (86400 ثانية)، قد يستغرق 24-48 ساعة. تغييرات سجل NS عادة ما تستغرق أطول وقت.
Ubuntu/Debian: sudo apt install dnsutils، CentOS/RHEL: sudo yum install bind-utils، macOS: ثبته عبر Homebrew باستخدام brew install bind.
قد يكون خادم DNS لمزود الخدمة لا يزال يخزن السجل القديم. اختبر باستخدام Google DNS (8.8.8.8) أو Cloudflare DNS (1.1.1.1). لا تنسَ أيضًا مسح ذاكرة DNS في المتصفح.
تحقق من أن النطاق لم تنتهِ صلاحيته باستخدام whois. تأكد من أن خوادم الأسماء مُعدة بشكل صحيح باستخدام dig domain.com NS. تحقق من وجود سجل DNS على خادم الأسماء المعتمد باستخدام dig @ns1.domain.com domain.com A.
في Linux، يمكنك تغيير خادم DNS بتحرير /etc/resolv.conf أو تحديث تكوين systemd-resolved. للتغييرات الدائمة، يُوصى باستخدام تكوين NetworkManager أو netplan.
دليل حل مشاكل اتصال SSH: قواعد جدار حماية Path.net، Default Block، إنشاء قاعدة تصفية لمنفذ SSH وخطوات استكشاف الأخطاء وإصلاحها.
دليل حل مشاكل اتصال RDP: قواعد جدار حماية Path.net، Default Block، إنشاء قاعدة تصفية لمنفذ RDP وخطوات استكشاف الأخطاء وإصلاحها.
دليل اختبار الشبكة باستخدام WinMTR وLinux MTR، إنشاء قاعدة فلترة ICMP وإرسال النتائج لفريق الدعم. تشخيص فقدان الحزم والتأخير في الشبكة.