فارسی (Farsi)
€EUR

اتصال نام دامنه به VPS لینوکس با رکوردهای DNS

3 min
سرور مجازی (VPS/VDS)

نام دامنه تا زمانی که رکوردهای DNS آن محل سرور شما را مشخص نکنند فایده‌ای ندارد. در این راهنما دامنه را به VPS Linux Infrawire وصل می‌کنید، رکوردهای IPv4 و IPv6 و www را اضافه می‌کنید و درست حل شدن همه‌چیز را بررسی می‌کنید.

📋 پیش‌نیازها

  • یک VPS با آدرس IPv4 عمومی (و در صورت تمایل IPv6). از فضای مشتری خود می‌توانید IP و گذرواژه root سرور را پیدا کنید.
  • یک نام دامنه ثبت‌شده (example.com) و دسترسی به ناحیه DNS آن، نزد ثبت‌کننده یا ارائه‌دهنده DNS.
  • ابزارهای dig و nslookup روی سیستم خود یا روی VPS:
Bash
# Ubuntu 24.04 / Debian 12 sudo apt update && sudo apt install -y dnsutils # AlmaLinux 9 / Rocky 9 sudo dnf install -y bind-utils

🧭 آشنایی با انواع رکورد

نوعکاربردنمونه مقدار
Aنام به آدرس IPv4VPS_IP
AAAAنام به آدرس IPv6VPS_IPV6
CNAMEنام مستعار برای نامی دیگرexample.com.

رکورد CNAME را نمی‌توان روی دامنه اصلی (example.com) گذاشت، چون با دیگر رکوردهای ناحیه تداخل پیدا می‌کند. آنجا از A/AAAA و برای زیردامنه‌هایی مثل www از CNAME استفاده کنید.

✍️ ساخت رکوردهای A و AAAA

در ویرایشگر ناحیه DNS نزد ثبت‌کننده، این رکوردها را اضافه کنید. نماد @ در فیلد میزبان یعنی دامنه اصلی.

TEXT
Type Host Value TTL A @ VPS_IP 3600 AAAA @ VPS_IPV6 3600

برخی رابط‌ها به‌جای @ نام کامل (example.com.) می‌خواهند. نقطه پایانی را فقط وقتی نگه دارید که ویرایشگر نام کاملاً معتبر بخواهد. اگر هنوز از IPv6 استفاده نمی‌کنید، رکورد AAAA نسازید: AAAA نادرست بدتر از نبودن آن است، چون بسیاری از کلاینت‌ها اول IPv6 را امتحان می‌کنند.

🔗 افزودن www با CNAME

کاری کنید که www از نام اصلی پیروی کند تا IP را فقط در یک جا تغییر دهید:

TEXT
Type Host Value TTL CNAME www example.com. 3600

زیردامنه‌های دیگر هم همین‌طور کار می‌کنند. وقتی زیردامنه‌ای باید به سرور دیگری اشاره کند (مثلاً api به IP دیگر) از رکورد A استفاده کنید.

⏱️ TTL و انتشار

مقدار TTL (زمان زنده‌ماندن، به ثانیه) به حل‌کننده‌ها می‌گوید پاسخ را تا چه مدت در حافظه نهان نگه دارند. رکورد جدید معمولاً ظرف چند دقیقه ظاهر می‌شود، اما تغییر رکورد موجود تا پایان TTL قبلی دیده نمی‌شود.

  • پیش از مهاجرت، یک روز قبل TTL را روی 300 بگذارید و سپس IP را عوض کنید.
  • پس از پایدار شدن تغییر، آن را به 3600 یا بیشتر برگردانید.
  • انتشار کامل هرگز آنی نیست: از چند دقیقه تا چند ساعت انتظار داشته باشید.

✅ بررسی با dig و nslookup

از حل‌کننده خودتان و سپس از یک حل‌کننده عمومی بپرسید و مقایسه کنید:

Bash
dig +short example.com A dig +short example.com AAAA dig +short www.example.com CNAME # پرس‌وجو از یک حل‌کننده عمومی مشخص dig @1.1.1.1 +short example.com A dig @8.8.8.8 +short example.com A # پرسش مستقیم از سرورهای معتبر (بدون حافظه نهان) dig +short NS example.com dig @NAMESERVER +short example.com A

همین بررسی با nslookup:

Bash
nslookup example.com nslookup -type=AAAA example.com nslookup www.example.com 1.1.1.1

پاسخ باید برابر VPS_IP باشد. سپس مسیر تا سرور را آزمایش کنید:

Bash
ping -c 3 example.com curl -I http://example.com

🔁 DNS معکوس (PTR)

DNS مستقیم نام را به IP تبدیل می‌کند. DNS معکوس (رکورد PTR) برعکس عمل می‌کند: VPS_IP را به یک نام میزبان نگاشت می‌کند. این رکورد در ناحیه دامنه شما مدیریت نمی‌شود بلکه نزد مالک بلوک آدرس است، پس از ارائه‌دهنده خود بخواهید آن را تنظیم کند. سرورهای ایمیل به آن بسیار تکیه می‌کنند؛ آن را روی نامی بگذارید که برای ارسال ایمیل استفاده می‌کنید، مثلاً mail.example.com، و مطمئن شوید این نام رکورد A متناظر دارد.

Bash
dig -x VPS_IP +short host VPS_IP

☁️ حالت ویژه: پروکسی Cloudflare

وقتی رکوردی پروکسی شده است (ابر نارنجی)، DNS عمومی آدرس‌های Cloudflare را برمی‌گرداند نه VPS_IP را. این طبیعی است: dig هرگز IP سرور شما را نشان نمی‌دهد.

  • ترافیک وب (80/443) از Cloudflare عبور می‌کند؛ سرویس‌های دیگر مثل SSH، ایمیل یا سرور بازی عبور نمی‌کنند.
  • برای هر چیزی که HTTP(S) نیست، رکوردی در حالت فقط DNS (ابر خاکستری) بسازید، مثلاً ssh.example.com که به VPS_IP اشاره کند.
  • رکوردهای ایمیل (mail و مقصدهای MX) همیشه باید فقط DNS باشند.
  • حالت SSL را روی Full (strict) نگه دارید و روی VPS گواهی معتبر نصب کنید، وگرنه با حلقه تغییر مسیر یا خطای 525 روبه‌رو می‌شوید.

🛠️ رفع اشکال

IP قدیمی هنوز نمایش داده می‌شود. TTL قبلی هنوز تمام نشده است. با dig @NAMESERVER از سرور معتبر بپرسید تا از درستی ناحیه مطمئن شوید و سپس صبر کنید. در صورت نیاز حافظه نهان محلی را پاک کنید:

Bash
sudo resolvectl flush-caches

NXDOMAIN یا بدون پاسخ. رکورد در ناحیه اشتباه است، نام میزبان غلط املایی دارد، یا دامنه از نام‌سرورهای دیگری استفاده می‌کند. خروجی dig NS example.com را با نام‌سرورهای اعلام‌شده نزد ثبت‌کننده مقایسه کنید.

دامنه حل می‌شود اما سایت باز نمی‌شود. DNS سالم است؛ مشکل از سرویس است. بررسی کنید که یک وب‌سرور روی پورت گوش می‌دهد و فایروال آن را مجاز کرده است:

Bash
sudo ss -tlnp | grep -E ':80|:443'

🎉 دامنه شما اکنون به VPS اشاره می‌کند: می‌توانید وب‌سرور نصب کنید و گواهی صادر کنید.

با آخرین پیشنهادها، تخفیف‌ها و تبلیغات ویژه به‌روز بمانید.

مشاهده تخفیف‌ها

ما از کوکی استفاده می‌کنیم

ما از کوکی‌های تحلیلی برای بهبود تجربه شما در سایت خود استفاده می‌کنیم. هیچ داده‌ای به اشخاص ثالث فروخته نمی‌شود. اطلاعات بیشتر در سیاست حفظ حریم خصوصی ما.