وقتی رکورد DNS را تغییر میدهید، ریزالورهای اینترنت (مثل DNS اپراتور یا 8.8.8.8) تا پایان TTL رکورد قبلی، همان پاسخ قدیمی را از کش خود میدهند. برای همین تغییر برای برخی کاربران فوری و برای برخی با تأخیر دیده میشود. با dig از سرور نام اصلی (NS) بررسی کنید که رکورد درست ثبت شده؛ اگر درست است، فقط باید صبر کنید. برای جابهجاییهای برنامهریزیشده، TTL را از چند ساعت قبل کوتاه کنید.
DNS چطور کار میکند؟ (نسخهٔ کوتاه)
- مرورگر از سیستمعامل میپرسد
example.comچه آیپی دارد. - سیستمعامل از ریزالور (DNS اپراتور، مودم یا سرویسهایی مثل 1.1.1.1) میپرسد.
- ریزالور اگر پاسخ را در کش داشته باشد، همان را برمیگرداند؛ وگرنه از سرور نام معتبر (Authoritative NS) دامنه میپرسد.
- پاسخ بهاندازهٔ TTL در کش ریزالور (و گاهی سیستمعامل و مرورگر) میماند.
پس «Propagation» در واقع پخش شدن تغییر نیست؛ منقضی شدن کشهای قدیمی است.
TTL چیست؟
TTL (Time To Live) عددی به ثانیه است که روی هر رکورد تعیین میکنید و میگوید پاسخ تا چه مدت قابل کش کردن است.
| TTL | معنی | مناسب برای |
|---|---|---|
| ۶۰ تا ۳۰۰ ثانیه | تغییرات سریع اعمال میشود | دورهٔ جابهجایی، CDN، سرویسهای در حال تغییر |
| ۳۶۰۰ ثانیه (۱ ساعت) | تعادل | بیشتر رکوردها |
| ۸۶۴۰۰ ثانیه (۱ روز) | کش طولانی، درخواست کمتر | رکوردهایی که تقریباً هرگز تغییر نمیکنند |
نکتهٔ کلیدی: TTL جدید فقط بعد از انقضای TTL قبلی اثر میکند. اگر رکورد TTL یکروزه داشته و الان آن را به ۵ دقیقه کم کنید، کسانی که پاسخ قدیمی را کش کردهاند تا یک روز همان را میبینند.
گام ۱: آیا رکورد درست ثبت شده است؟
اول مطمئن شوید رکورد در سرور نام معتبر درست است:
# سرورهای نام دامنه کداماند؟
dig +short NS example.com
# پرسش مستقیم از یکی از آنها (کش ندارد)
dig @ns1.example-dns.com example.com A +short
dig @ns1.example-dns.com cdn.example.com CNAME +short
در ویندوز:
nslookup -type=NS example.com
nslookup cdn.example.com ns1.example-dns.com
- اگر پاسخ سرور نام معتبر اشتباه است، رکورد را در جای اشتباهی ویرایش کردهاید (مثلاً در پنلی که NS دامنه به آن اشاره نمیکند).
- اگر درست است، مشکل فقط کش است.
گام ۲: مقایسه با ریزالورهای عمومی
dig @1.1.1.1 example.com A +short
dig @8.8.8.8 example.com A +short
dig example.com A # ریزالور فعلی شما؛ ستون دوم TTL باقیمانده است
عدد TTL در پاسخ ریزالور، زمان باقیمانده تا انقضای کش را نشان میدهد.
$ dig +short example.com @1.1.1.1$ dig +short example.com @8.8.8.8$ dig example.com | grep -A1 'ANSWER SECTION'$
گام ۳: پاک کردن کشهای سمت خودتان
| کجا | دستور |
|---|---|
| ویندوز | ipconfig /flushdns |
| مک | sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder |
| لینوکس با systemd-resolved | resolvectl flush-caches |
| کروم | آدرس chrome://net-internals/#dns ← Clear host cache |
کش ریزالور اپراتور را نمیتوانید پاک کنید؛ فقط باید صبر کنید یا موقتاً ریزالور دیگری استفاده کنید.
تغییر NS (سرور نام) چرا طولانیتر است؟
وقتی سرورهای نام دامنه را عوض میکنید (مثلاً DNS را به Cloudflare میبرید)، رکورد NS در سطح ثبتکنندهٔ دامنه و سرورهای پسوند (مثل .com یا .ir) تغییر میکند و TTL آن معمولاً طولانی است؛ به همین دلیل ممکن است تا یک یا دو روز طول بکشد. در این مدت رکوردها را در هر دو پنل قدیم و جدید یکسان نگه دارید تا کاربران در هیچ حالتی قطعی نبینند.
جابهجایی سرور بدون قطعی: یک برنامهٔ ساده
- یک روز قبل: TTL رکوردهای مربوط را به ۳۰۰ ثانیه کاهش دهید.
- سرور جدید را آماده و تست کنید (با فایل hosts روی کامپیوتر خودتان میتوانید دامنه را موقتاً به آیپی جدید ببرید).
- رکورد A یا CNAME را به مقصد جدید تغییر دهید.
- سرور قدیمی را تا چند برابر TTL قبلی روشن نگه دارید تا کاربرانی که کش قدیمی دارند هم سرویس بگیرند.
- پس از اطمینان، TTL را دوباره به مقدار عادی برگردانید و سرور قدیمی را حذف کنید.
با صورتحساب ساعتی کلودیفای، نگه داشتن سرور قدیمی برای یکی دو روز اضافه هزینهٔ کمی دارد و ریسک قطعی را حذف میکند.
مشکلات رایج
| نشانه | علت | راهحل |
|---|---|---|
| برای شما باز میشود، برای دیگران نه (یا برعکس) | کش ریزالورهای متفاوت | صبر تا پایان TTL قبلی |
| سرور نام معتبر هم پاسخ قدیمی میدهد | ویرایش در پنل اشتباه | NS دامنه را بررسی کنید |
| CNAME ثبت نمیشود | رکورد همنام دیگری وجود دارد | رکورد A/AAAA همنام را حذف کنید |
| سایت با IPv6 به سرور قدیم میرود | رکورد AAAA قدیمی باقی مانده | AAAA را بهروز یا حذف کنید |
| زیردامنه جواب نمیدهد ولی دامنهٔ اصلی بله | رکورد فقط برای دامنهٔ اصلی ساخته شده | برای زیردامنه رکورد جدا بسازید |
برای اتصال سابدامنه به CDN، راهنمای اتصال دامنه به CDN با CNAME را ببینید.
سؤالات متداول
Propagation معمولاً چقدر طول میکشد؟
برای رکوردهای معمولی به اندازهٔ TTL قبلی (از چند دقیقه تا یک روز). برای تغییر NS ممکن است تا ۴۸ ساعت طول بکشد.
سایتهای «DNS Checker» دقیقاند؟
تصویری از پاسخ ریزالورهای مختلف جهان میدهند و برای دید کلی مفیدند، اما مهمترین بررسی، پرسش مستقیم از سرور نام معتبر است.
TTL را همیشه روی ۶۰ ثانیه بگذارم؟
لازم نیست؛ TTL خیلی کوتاه تعداد پرسشها را زیاد میکند. در دورههای تغییر کوتاه و در حالت عادی ۱ ساعت مناسب است.
بعد از تغییر DNS، گواهی SSL خطا میدهد؛ چرا؟
اگر کاربر به سرور جدید رسیده و گواهی هنوز روی آن صادر نشده، خطا میبیند. گواهی را پیش از تغییر DNS آماده کنید یا از CDN با صدور خودکار گواهی استفاده کنید.
از ۱٬۲۰۰ تومان در ساعت · پرداخت ریالی



