انتقل إلى المحتوى الرئيسي
العودة إلى الفئة

إعداد hostname وDNS للخادم: دليل خطوة بخطوة

ضبط hostname بـ hostnamectl وإعداد /etc/hosts و/etc/resolv.conf وتهيئة FQDN وأهمية سجل PTR والاختبار بـ dig/nslookup.

وقت القراءة: 10 دقيقة إدارة الخادم
hostnamednsfqdnhostnamectlresolv.confسجل ptrlinux

جدول المحتويات

إعداد hostname وDNS للخادم: دليل خطوة بخطوة

يشكّل اسم المضيف (hostname) وإعداد DNS لخادمك أساس التواصل الشبكي. قد يؤدي hostname غير المُهيَّأ بشكل صحيح إلى مشاكل في تسليم البريد الإلكتروني وارتباك في سجلات النظام وأعطال في بعض التطبيقات. يغطي هذا الدليل إعداد hostname وتهيئة DNS وخطوات التحقق.

ما هو hostname؟

اسم المضيف هو الاسم الذي يُعرِّف خادمك على الشبكة. يوجد نوعان:

  • اسم المضيف القصير: اسم الجهاز فقط (مثل webserver01)
  • FQDN (Fully Qualified Domain Name): اسم النطاق الكامل (مثل webserver01.rexe.tr)

يجمع FQDN بين اسم المضيف واسم النطاق ويُعرِّف خادمك بشكل فريد على الإنترنت.

استخدم دائماً FQDN على خوادم الإنتاج. هذا أمر بالغ الأهمية لخوادم البريد وشهادات SSL وإدارة السجلات.

عرض hostname الحالي

hljs bash
# اسم المضيف القصير
hostname

# FQDN
hostname -f

# جميع معلومات hostname
hostnamectl

ضبط hostname بـ hostnamectl

hostnamectl هو الأداة الحديثة لإدارة hostname على الأنظمة المستندة إلى systemd.

hljs bash
# ضبط hostname
sudo hostnamectl set-hostname webserver01

# ضبط hostname مع FQDN
sudo hostnamectl set-hostname webserver01.rexe.tr

# التحقق من التغيير
hostnamectl

# تطبيق التغيير بفتح shell جديد
exec bash

أنواع hostname

hljs bash
# hostname ثابت (دائم، يُكتب في /etc/hostname)
sudo hostnamectl set-hostname webserver01 --static

# hostname مؤقت (يُعاد ضبطه عند إعادة التشغيل)
sudo hostnamectl set-hostname webserver01 --transient

# hostname جميل (لأغراض العرض)
sudo hostnamectl set-hostname "Web Server 01" --pretty

ملف /etc/hostname

يُخزَّن hostname بشكل دائم في /etc/hostname:

hljs bash
# عرض الملف
cat /etc/hostname

# التحرير اليدوي
sudo nano /etc/hostname
webserver01

اكتب في /etc/hostname اسم المضيف القصير فقط، وليس FQDN. يتم إعداد FQDN في /etc/hosts.

إعداد /etc/hosts

ملف /etc/hosts هو جدول تحليل الأسماء المحلي الذي يُفحص قبل استعلامات DNS.

hljs bash
# عرض الملف
cat /etc/hosts

# التحرير
sudo nano /etc/hosts

إعداد /etc/hosts الصحيح

127.0.0.1       localhost
127.0.1.1       webserver01.rexe.tr webserver01

# عنوان IP الحقيقي للخادم
203.0.113.100   webserver01.rexe.tr webserver01

# IPv6
::1             localhost ip6-localhost ip6-loopback
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters

يُستخدم السطر 127.0.1.1 لـ FQDN على أنظمة Ubuntu/Debian. على أنظمة CentOS/RHEL، استخدم عنوان IP الحقيقي.

حالات استخدام /etc/hosts

hljs bash
# بيئة التطوير المحلية
192.168.1.10    db.local database
192.168.1.20    cache.local redis

# حجب نطاق معين
0.0.0.0         ads.example.com

# اسم مستعار للوصول السريع
10.0.0.5        prod-db production-database

إعداد DNS في /etc/resolv.conf

يُعرِّف /etc/resolv.conf خوادم DNS للنظام.

hljs bash
# عرض إعداد DNS الحالي
cat /etc/resolv.conf

مثال على resolv.conf

# خوادم DNS
nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 1.1.1.1

# نطاق البحث (للأسماء القصيرة)
search rexe.tr

# النطاق
domain rexe.tr

# الحد الأقصى لعدد محاولات DNS
options attempts:3
# مهلة DNS (بالثواني)
options timeout:2

إدارة DNS مع systemd-resolved

على Ubuntu 18.04+ وأنظمة Debian الحديثة، يُدار DNS بواسطة systemd-resolved:

hljs bash
# عرض حالة DNS
resolvectl status

# استعلام DNS لنطاق معين
resolvectl query rexe.tr

# مسح ذاكرة التخزين المؤقت لـ DNS
resolvectl flush-caches
hljs bash
# إعداد DNS دائم مع systemd-resolved
sudo nano /etc/systemd/resolved.conf
hljs ini
[Resolve]
DNS=8.8.8.8 8.8.4.4
FallbackDNS=1.1.1.1
Domains=rexe.tr
DNSSEC=no
DNSOverTLS=no
hljs bash
# إعادة تشغيل الخدمة
sudo systemctl restart systemd-resolved

إعداد FQDN

اتبع هذه الخطوات للإعداد الصحيح لـ FQDN:

hljs bash
# 1. ضبط hostname
sudo hostnamectl set-hostname webserver01

# 2. تحرير /etc/hosts
sudo nano /etc/hosts
127.0.0.1       localhost
127.0.1.1       webserver01.rexe.tr webserver01
203.0.113.100   webserver01.rexe.tr webserver01
hljs bash
# 3. التحقق من FQDN
hostname -f
# الناتج: webserver01.rexe.tr

# 4. التحقق من اسم المضيف القصير
hostname -s
# الناتج: webserver01

# 5. التحقق من عنوان IP
hostname -I

أهمية سجل PTR (DNS العكسي)

سجل PTR هو سجل DNS عكسي يحلّ عنوان IP إلى اسم مضيف.

لماذا تهم سجلات PTR

  • تسليم البريد الإلكتروني: تُرفض الرسائل من IPs بدون سجلات PTR من قِبل مرشحات البريد المزعج
  • الأمان: تتحقق أدوات أمان الشبكة من سجلات PTR
  • تحليل السجلات: رؤية أسماء المضيفين بدلاً من IPs يُسهّل قراءة السجلات
  • بعض الخدمات: قد تتطلب FTP وIRC وخدمات مماثلة سجلات PTR

إعداد سجل PTR

تُضبط سجلات PTR من قِبل مزود الخدمة أو مزود الاستضافة الذي يمتلك عنوان IP الخاص بك. يمكنك إدارة سجل PTR الخاص بك من لوحة عملاء REXE.

hljs bash
# التحقق من سجل PTR الحالي
dig -x 203.0.113.100

# أو
nslookup 203.0.113.100

اختبار DNS بـ dig

dig هو الأداة الأقوى لاختبار استعلامات DNS.

hljs bash
# استعلام سجل A
dig rexe.tr A

# استعلام سجل MX
dig rexe.tr MX

# استعلام سجل NS
dig rexe.tr NS

# استخدام خادم DNS محدد
dig @8.8.8.8 rexe.tr A

# ناتج مختصر
dig +short rexe.tr A

# استعلام DNS عكسي
dig -x 203.0.113.100

# التحقق من انتشار DNS
dig +trace rexe.tr

اختبار DNS بـ nslookup

hljs bash
# استعلام أساسي
nslookup rexe.tr

# مع خادم DNS محدد
nslookup rexe.tr 8.8.8.8

# DNS عكسي
nslookup 203.0.113.100

# الوضع التفاعلي
nslookup
> server 8.8.8.8
> set type=MX
> rexe.tr
> exit

استكشاف الأخطاء وإصلاحها

تغيير hostname لا يُطبَّق

hljs bash
# بدء shell جديد
exec bash

# أو إعادة تشغيل النظام
sudo reboot

# التحقق من /etc/hostname
cat /etc/hostname

تحليل DNS لا يعمل

hljs bash
# اختبار اتصال DNS
dig @8.8.8.8 google.com

# التحقق من resolv.conf
cat /etc/resolv.conf

# التحقق من حالة systemd-resolved
systemctl status systemd-resolved

# التحقق من nsswitch.conf
cat /etc/nsswitch.conf | grep hosts

عند مشاكل DNS، تحقق أولاً من /etc/hosts ثم /etc/resolv.conf. يحدد سطر hosts في nsswitch.conf ترتيب التحليل.

الخلاصة

الإعداد الصحيح لـ hostname وDNS هو أحد ركائز إدارة الخادم. يُعدّ ضبط FQDN بشكل صحيح على خوادم REXE أمراً بالغ الأهمية لتسليم البريد الإلكتروني وشهادات SSL وإعدادات التطبيقات. يمكنك استخدام لوحة عملاء REXE للتأكد من الإعداد الصحيح لسجل PTR الخاص بك.