کاتالوگ زنده · ۸ آبان ۱۴۰۵، ۱۲:۳۴ (تهران)

همهٔ مقاله‌ها

DNS چیست و رکوردهای A، CNAME و MX چه می‌کنند؟

DNS دفترچه تلفن اینترنت است که نام دامنه را به آدرس IP تبدیل می‌کند. بخوانید رکوردهای A، AAAA، CNAME، MX و TXT چیستند و دامنه را چطور به سرور وصل کنید.

کرهٔ زمین و تابلوی راهنما که درخواست را به سرور درست می‌رساند

DNS (Domain Name System) سامانه‌ای است که نام دامنه مثل example.com را به آدرس IP تبدیل می‌کند تا مرورگر بداند به کدام سرور وصل شود. تنظیمات آن در قالب «رکورد» نگه داشته می‌شود؛ برای وصل کردن دامنه به یک VPS معمولاً یک رکورد A می‌سازید که نام دامنه را به IP سرور اشاره می‌دهد. تغییرها تا چند دقیقه یا چند ساعت منتشر می‌شوند.

DNS چطور کار می‌کند؟

وقتی نشانی سایتی را می‌زنید، مرورگر از یک «تفکیک‌گر» (resolver)، معمولاً مال ارائه‌دهندهٔ اینترنت یا سرویس‌هایی مثل 1.1.1.1 و 8.8.8.8، آدرس را می‌پرسد. اگر جواب را نداشته باشد، از ریشه شروع به پرسیدن می‌کند: سرورهای ریشه، سپس سرور پسوند (مثل .com) و در آخر سرورهای نام (name server) که رکوردهای همان دامنه را نگه می‌دارند. جواب برای مدتی که TTL می‌گوید در حافظهٔ نهان می‌ماند تا دفعهٔ بعد سریع‌تر باشد.

رکوردهای رایج DNS چیست؟

  • A: نام را به یک آدرس IPv4 وصل می‌کند.
  • AAAA: نام را به آدرس IPv6 وصل می‌کند.
  • CNAME: یک نام را نام مستعار نام دیگر می‌کند (مثلاً www به دامنهٔ اصلی). روی ریشهٔ دامنه معمولاً مجاز نیست.
  • MX: سرور ایمیل دامنه را مشخص می‌کند.
  • TXT: متن آزاد؛ برای تأیید مالکیت و تنظیمات ایمیل مثل SPF و DKIM.
  • NS: سرورهای نام معتبر دامنه.

چطور دامنه را به VPS وصل کنم؟

  1. IP عمومی سرور را بردارید.
  2. در پنل مدیریت DNS دامنه (نزد ثبت‌کننده یا سرویسی مثل Cloudflare) یک رکورد A برای @ با مقدار IP بسازید.
  3. اگر می‌خواهید www هم کار کند، یک CNAME برای www به دامنهٔ اصلی بسازید.
  4. منتظر انتشار بمانید و بررسی کنید:
dig +short example.com
  1. روی سرور، وب‌سرور (Nginx یا Apache) را برای آن دامنه تنظیم کنید و گواهی HTTPS بگیرید.

برای نصب سرور و دسترسی به آن، SSH چیست را بخوانید.

TTL و انتشار تغییرات

TTL مدت نگه‌داری یک جواب در حافظهٔ نهان را بر حسب ثانیه می‌گوید. اگر قرار است سرور را عوض کنید، چند ساعت قبل TTL را کم کنید (مثلاً ۳۰۰ ثانیه) تا جابه‌جایی سریع‌تر دیده شود. «انتشار» در واقع منقضی شدن جواب‌های قدیمی است، نه فرایندی که فرستاده شود؛ به همین دلیل زمانش برای کاربران مختلف فرق می‌کند.

خطاهای رایج

  • رکورد A به IP اشتباه یا قدیمی اشاره می‌کند.
  • CNAME روی ریشهٔ دامنه گذاشته شده است.
  • سرورهای نام نزد ثبت‌کننده با جایی که رکوردها را ساخته‌اید یکی نیست.
  • حافظهٔ نهان مرورگر یا سیستم؛ با ipconfig /flushdns در ویندوز تازه می‌شود.

مهاجرت وبسایت از هاست به VPS در تفاوت VPS و هاست آمده است.

با چه ابزارهایی DNS را بررسی کنم؟

dig MX example.com +short
dig TXT example.com +short
nslookup example.com 8.8.8.8

با dig @1.1.1.1 example.com نتیجه را از یک تفکیک‌گر مشخص می‌گیرید. اگر در یک شبکه جواب قدیمی و در دیگری جدید می‌بینید، هنوز حافظهٔ نهان منقضی نشده است. سایت‌های بررسی انتشار هم نتیجه را از چند کشور نشان می‌دهند.

نکتهٔ ایمیل: MX، SPF و DKIM

اگر با دامنه ایمیل می‌فرستید، رکورد MX مشخص می‌کند ایمیل ورودی به کجا برود. رکوردهای TXT برای SPF (کدام سرورها مجاز به ارسال‌اند) و DKIM (امضای پیام) پیام‌های شما را از اسپم دور نگه می‌دارند. سرور ایمیل خودمیزبان کار ظریفی است و سرویس‌های آماده معمولاً امن‌ترند.

با کلوداسنپ

برای اشاره دادن دامنه به سرور فقط IP عمومی سرور را لازم دارید که در ربات و پنل وب نشان داده می‌شود. اگر IP را تغییر دهید یا سرور تازه بسازید، رکورد A را به‌روز کنید. پلن‌های VPS را در قیمت‌ها ببینید.

جمع‌بندی

DNS نام را به IP تبدیل می‌کند. برای وصل کردن دامنه به سرور یک رکورد A می‌سازید، TTL را در نظر می‌گیرید و با dig بررسی می‌کنید. ایمیل و تأیید مالکیت با MX و TXT انجام می‌شود. بیشتر مشکلات از IP اشتباه یا حافظهٔ نهان است.

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

تفاوت رکورد A و CNAME چیست؟

A مستقیم به IP اشاره می‌کند و CNAME به نام دیگری که خودش به IP می‌رسد.

تغییر DNS چقدر طول می‌کشد؟

از چند دقیقه تا چند ساعت، بسته به TTL قبلی؛ گاهی تا ۴۸ ساعت برای حافظه‌های نهان کند.

DNS چرا اهمیت امنیتی دارد؟

چون هر کس رکوردها را کنترل کند، می‌تواند ترافیک را به سرور دیگری ببرد. حساب ثبت‌کننده را با احراز دومرحله‌ای محافظت کنید.

آیا DNS با VPN رابطه دارد؟

بعضی VPNها درخواست‌های DNS را هم از تونل عبور می‌دهند تا ارائه‌دهندهٔ اینترنت آن را نبیند.

بدون دامنه هم می‌شود به VPS وصل شد؟

بله، با IP. دامنه فقط نام قابل‌حفظ است.