اتصال دامنه به هاست: نیم‌سرور یا رکورد A؛ کدام را انتخاب کنیم؟

راهنمای عملی اتصال دامنه به هاست با دو روش نیم‌سرور و رکورد A؛ همراه با دستورات تست DNS و بررسی اتصال پیش از انتشار نهایی سایت.

۸ دقیقه به‌روزرسانی ۲۳ شهریور ۱۴۰۵

دامنه را خریده‌اید، هاست را هم؛ حالا سایت بالا نمی‌آید

سایت را روی هاست جدید آپلود کرده‌اید، پنل مدیریت را باز کرده‌اید و منتظرید با تایپ آدرس دامنه، سایت را ببینید. اما مرورگر خطای DNS_PROBE_FINISHED_NXDOMAIN نشان می‌دهد یا صفحه سفید قدیمی هاست قبلی را باز می‌کند. این لحظه‌ای است که باید تصمیم بگیرید دامنه را با کدام روش به هاست وصل کنید: تغییر نیم‌سرور (Nameserver) یا ثبت رکورد A. انتخاب اشتباه یعنی ساعتی وقت تلف‌شده و در بدترین حالت، چند ساعت قطعی برای کاربرانی که منتظر سایت‌اند.

تفاوت این دو روش ساده است، اما عواقبش نه. نیم‌سرور یعنی کل مدیریت DNS دامنه را به سرورهای هاست می‌سپارید. رکورد A یعنی فقط یک خط به DNS فعلی اضافه می‌کنید و بقیه چیزها دست خودتان می‌ماند. کدام درست است؟ بستگی دارد به این‌که چقدر از DNS فعلی‌تان استفاده می‌کنید.

روش اول: تغییر نیم‌سرورها؛ وقتی می‌خواهید همه‌چیز یکجا باشد

در پنل هاست‌تان، معمولاً در بخش «Accounts» یا «Domains»، دو نام سرور مثل ns1.servernet.cloud و ns2.servernet.cloud داده می‌شود. این دو نام را در پنل ثبت‌کننده دامنه (جایی که دامنه را خریده‌اید) در بخش Nameservers ثبت می‌کنید. بعد از ذخیره، بین ۲ تا ۴۸ ساعت طول می‌کشد تا این تغییر در سراسر اینترنت منتشر شود. به این مدت، propagation یا انتشار DNS می‌گویند.

مزیت این روش؟ همه‌چیز در یک پنل مدیریت می‌شود. رکوردهای MX برای ایمیل، رکوردهای TXT برای SPF و DKIM، و رکوردهای CNAME برای زیردامنه‌ها را همان‌جا که هاست را مدیریت می‌کنید، می‌سازید. اگر با cPanel کار می‌کنید، افزودن دامنه و ساخت ایمیل در «Email Deliverability» به‌صورت خودکار رکوردهای لازم را اضافه می‌کند. برای کسی که تازه‌کار است یا فقط یک سایت دارد، این روش کمترین خطا را دارد.

اما یک هزینه دارد: اگر دامنه‌های متعدد با سرویس‌های مختلف دارید و DNS آن‌ها را متمرکز مدیریت می‌کنید، تغییر نیم‌سرور یعنی از دست دادن آن تمرکز. مثلاً اگر دامنه‌تان به Cloudflare وصل است و از فایروال و CDN آن استفاده می‌کنید، تغییر نیم‌سرور به هاست، Cloudflare را از مدار خارج می‌کند. این‌جا اشتباه می‌کنند: خیلی‌ها بعد از تغییر نیم‌سرور، متوجه می‌شوند ایمیل‌هایشان کار نمی‌کند. چرا؟ چون رکوردهای MX دامنه در DNS قبلی تعریف شده بود و حالا DNS جدید آن‌ها را ندارد. سایت بالا می‌آید، اما ایمیل با خطای «connection timed out» برمی‌گردد.

روش دوم: ثبت رکورد A؛ وقتی DNS فعلی‌تان را دوست دارید

در این روش، DNS دامنه دست نمی‌خورد. فقط یک رکورد از نوع A به پنل DNS فعلی اضافه می‌کنید که نام دامنه را به IP هاست جدید اشاره دهد. IP را از پنل هاست برمی‌دارید — معمولاً در بخش «Server Information» یا «IP Address» نوشته شده. رکورد به این شکل است:

example.com.  3600  IN  A  185.10.10.10
www.example.com.  3600  IN  A  185.10.10.10

عدد 3600 یعنی TTL یا Time To Live؛ مدت‌زمانی که سرورهای DNS دیگر این پاسخ را کش می‌کنند. اگر TTL را قبل از تغییر روی 300 (پنج دقیقه) بگذارید، بعد از تغییر، سایت خیلی سریع‌تر روی همه دستگاه‌ها بالا می‌آید. این نکته‌ای است که کمتر کسی به آن توجه می‌کند و بعداً پشیمان می‌شود.

مزیت این روش؟ DNS فعلی شما دست‌نخورده می‌ماند. ایمیل‌هایی که روی سرویس دیگری مثل Google Workspace یا Zoho دارید، بدون هیچ تغییری کار می‌کنند. اگر از Cloudflare یا سرویس DNS مشابه استفاده می‌کنید، فقط IP مقصد را عوض کرده‌اید و بقیه تنظیمات امنیتی سر جایشان است. برای سایت‌هایی که ایمیل سازمانی دارند و جابه‌جایی ایمیل در برنامه نیست، رکورد A انتخاب امن‌تری است.

چه زمانی رکورد A جواب نمی‌دهد

اگر هاست شما از IP اشتراکی استفاده می‌کند — که در هاست اشتراکی معمول است — ممکن است چند دامنه روی یک IP باشند. در این حالت، وب‌سرور باید بداند کدام دامنه را برای کدام سایت سرو کند. این کار با ServerName در Apache یا server_name در Nginx انجام می‌شود. اگر دامنه را در پنل هاست به‌عنوان Addon Domain یا Parked Domain اضافه نکرده باشید، رکورد A به صفحه پیش‌فرض هاست می‌رود، نه سایت شما. پس ترتیب کار مهم است: اول دامنه را در پنل هاست اضافه کنید، بعد رکورد A را ثبت کنید.

تست اتصال پیش از انتشار: فایل hosts و dig

انتشار DNS بین ۲ تا ۴۸ ساعت طول می‌کشد. منتظر ماندن برای دیدن نتیجه، وقت‌تلف‌کردن است. راهش این است که پیش از انتشار، اتصال را روی سیستم خودتان شبیه‌سازی کنید. فایل hosts در لینوکس و مک در مسیر /etc/hosts و در ویندوز در C:\Windows\System32\drivers\etc\hosts قرار دارد. یک خط به آن اضافه کنید:

185.10.10.10  example.com  www.example.com

حالا مرورگر را باز کنید و دامنه را وارد کنید. اگر سایت با محتوای جدید بالا آمد، یعنی همه‌چیز درست است و فقط باید منتظر انتشار DNS بمانید. اگر خطا داد، مشکل از DNS نیست؛ از تنظیمات هاست یا کد سایت است. این تست ساده، سردرگمی «مشکل از DNS است یا از هاست؟» را یک‌بار برای همیشه حل می‌کند.

برای بررسی اینکه DNS واقعاً چطور منتشر شده، از دستور dig استفاده کنید:

dig example.com A +short
dig example.com NS +short

خروجی اول باید IP هاست جدید را نشان دهد. خروجی دوم باید نام نیم‌سرورهایی را نشان دهد که دامنه به آن‌ها سپرده شده. اگر خروجی اول هنوز IP قدیمی را نشان می‌دهد، یعنی یا TTL هنوز منقضی نشده یا رکورد را اشتباه ثبت کرده‌اید. ابزارهای آنلاین بررسی DNS هم وجود دارند که از نقاط مختلف دنیا تست می‌کنند؛ اما dig روی سیستم خودتان برای تست اولیه کافی است.

کدام روش را انتخاب کنیم؟

اگر دامنه‌تان تازه خریده‌شده و هیچ سرویس دیگری به DNS آن وصل نیست، نیم‌سرور را انتخاب کنید. ساده‌تر است و همه‌چیز در پنل هاست مدیریت می‌شود. اگر دامنه قدیمی است، ایمیل سازمانی روی سرویس دیگری دارید، یا از CDN استفاده می‌کنید، رکورد A را انتخاب کنید. این روش، DNS فعلی را حفظ می‌کند و فقط مقصد سایت را عوض می‌کند.

یک حالت سوم هم هست: دامنه را با نیم‌سرور وصل کنید و بعداً اگر خواستید به Cloudflare بروید، فقط نیم‌سرور را به Cloudflare تغییر دهید و رکوردها را آنجا بسازید. این مسیر هم رایج است و اشکالی ندارد؛ فقط یادتان باشد در این جابه‌جایی، رکوردهای MX و TXT را از DNS قبلی کپی کنید. فراموش‌کردن همین رکوردها، رایج‌ترین دلیل قطعی ایمیل بعد از جابه‌جایی است.

برای سایت‌هایی که روی هاست لینوکس هستند، معمولاً IP و نام نیم‌سرورها در همان صفحه اول پنل دیده می‌شود. اگر دامنه را از جای دیگری خریده‌اید و نمی‌دانید پنل ثبت‌کننده کجاست، ایمیل خرید دامنه را چک کنید؛ لینک مدیریت DNS همان‌جاست.

بعد از اتصال: چه چیزهایی را چک کنید

اتصال برقرار شد و سایت بالا آمد. تمام نشده. سه مورد را حتماً بررسی کنید:

  • رکوردهای MX: اگر ایمیل روی همین هاست است، در پنل هاست چک کنید رکوردهای MX ساخته شده باشد. دستور dig example.com MX باید سرور ایمیل را نشان دهد. اگر خروجی خالی بود، ایمیل شما کار نخواهد کرد.
  • رکوردهای SPF و DKIM: این‌ها برای این‌اند که ایمیل‌هایتان اسپم نشوند. در cPanel معمولاً در بخش Email Deliverability ساخته می‌شوند. نبودشان یعنی ایمیل‌هایتان به پوشه اسپم می‌رود.
  • گواهی SSL: بعد از اتصال دامنه، گواهی SSL را فعال کنید. اگر از Let's Encrypt استفاده می‌کنید، در پنل هاست دکمه‌ای برای صدور خودکار وجود دارد. بدون SSL، مرورگرها اخطار امنیتی نشان می‌دهند و کاربر می‌ترسد وارد سایت شود.

اگر سایت را به دامنه جدیدی منتقل کرده‌اید، قبل از هر اقدامی راهنمای تغییر دامنه سایت بدون افت سئو را بخوانید. ریدایرکت‌های 301 و به‌روزرسانی لینک‌های داخلی، کارهایی هستند که بعد از اتصال DNS باید انجام دهید و اگر از حالا برنامه‌ریزی نکنید، ترافیک قدیمی را از دست می‌دهید.

مشکل هنوز هست؟ این‌جا اشتباه می‌کنند

رایج‌ترین خطایی که دیده‌ام: کاربر رکورد A را ثبت کرده، اما به‌جای @ از www استفاده کرده. یعنی فقط www.example.com به IP جدید اشاره می‌کند و example.com بدون www هنوز به سایت قدیمی می‌رود. یا برعکس. وقتی تست می‌کنید، هر دو را چک کنید. دومین خطای رایج: TTL را روی 86400 (یک روز) گذاشته‌اند و بعد از تغییر، تا ۲۴ ساعت منتظر دیدن نتیجه‌اند. اگر می‌دانید قرار است IP عوض شود، از ۲۴ ساعت قبل TTL را روی 300 بگذارید.

خطای سوم، جایی است که کاربر فکر می‌کند DNS مشکل دارد اما مشکل از کش مرورگر است. بعد از تغییر DNS، مرورگر را با Ctrl+Shift+R (یا Cmd+Shift+R در مک) رفرش کنید. اگر در حالت ناشناس (Incognito) تست کنید، از کش مرورگر هم رد می‌شوید. این سه مورد، ۹۰ درصد مشکلات «اتصال دامنه به هاست» را تشکیل می‌دهند.

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

اتصال دامنه به هاست چقدر طول می‌کشد؟

انتشار DNS معمولاً بین ۲ تا ۴۸ ساعت طول می‌کشد. با تنظیم TTL روی 300 قبل از تغییر، این مدت به چند دقیقه کاهش می‌یابد. برای تست فوری، از فایل hosts استفاده کنید تا پیش از انتشار، اتصال را بررسی کنید.

نیم‌سرور را تغییر دهم یا رکورد A ثبت کنم؟

اگر دامنه تازه خریده‌اید و سرویس دیگری به DNS آن وصل نیست، نیم‌سرور را تغییر دهید. اگر ایمیل سازمانی روی سرویس دیگری دارید یا از CDN استفاده می‌کنید، رکورد A ثبت کنید تا DNS فعلی دست‌نخورده بماند.

بعد از تغییر نیم‌سرور، ایمیل‌هایم کار نمی‌کند؛ چرا؟

رکوردهای MX دامنه در DNS قبلی تعریف شده بودند و DNS جدید آن‌ها را ندارد. رکوردهای MX، SPF و DKIM را در پنل هاست جدید بسازید. با دستور dig example.com MX می‌توانید وضعیت را بررسی کنید.

چطور بفهمم DNS به‌درستی منتشر شده است؟

از دستور dig example.com A +short استفاده کنید. اگر خروجی IP هاست جدید را نشان داد، انتشار کامل شده است. ابزارهای آنلاین بررسی DNS هم از نقاط مختلف دنیا تست می‌کنند و تصویر دقیق‌تری می‌دهند.

آیا این مطلب برایتان مفید بود؟