📌 خلاصه مطلب (TL;DR)
-
رکورد CNAME چیست؟
رکورد CNAME (Canonical Name) نوعی رکورد DNS است که یک دامنه یا سابدامین را بهعنوان «نام مستعار» به دامنه دیگری (نام اصلی یا canonical) متصل میکند. -
کاربردهای اصلی:
اتصال www به دامنه اصلی، پیکربندی CDN، اتصال سابدامینها به سرویسهای ثالث، مدیریت آسانتر DNS. -
محدودیت مهم:
رکورد CNAME را نمیتوان در ریشه دامنه (Zone Apex) استفاده کرد؛ برای این کار از رکورد ALIAS یا CNAME Flattening استفاده کنید. -
تفاوت با A Record:
رکورد A مستقیماً به آدرس IP اشاره میکند، اما CNAME به یک نام دامنه دیگر.
اگر میخواهید وبسایت خود را بهدرستی راهاندازی کنید یا از سرویسهایی مانند CDN، ایمیل سازمانی یا هاست ابری استفاده کنید، آشنایی با رکوردهای DNS ضروری است. یکی از مهمترین و پرکاربردترین این رکوردها، رکورد CNAME است که به شما امکان میدهد چندین نام دامنه را به یک مقصد واحد متصل کنید.
در این راهنمای جامع، همه چیز درباره رکورد CNAME را یاد میگیرید: از تعریف و کاربردها گرفته تا نحوه تنظیم، محدودیتها، و تفاوت آن با سایر رکوردهای DNS مانند A، ALIAS و MX.
💡 از تجربه ما:
این راهنما بر اساس تجربه تیم فنی برتینا در پیکربندی هزاران دامنه برای مشتریان هاست، سرور مجازی و سرور اختصاصی تهیه شده است. اگر در تنظیم DNS دامنه خود به مشکل برخوردید، تیم پشتیبانی ما ۲۴ ساعته در خدمت شماست.
رکورد CNAME چیست؟
رکورد CNAME (مخفف Canonical Name Record) نوعی رکورد در سیستم نام دامنه (DNS) است که یک نام دامنه را بهعنوان «نام مستعار» (Alias) به نام دامنه دیگری (نام اصلی یا Canonical) متصل میکند. به زبان ساده، CNAME به شما اجازه میدهد که یک دامنه یا سابدامین را به دامنه دیگری ارجاع دهید.
برای مثال، اگر میخواهید هم www.example.com و هم example.com به یک وبسایت اشاره کنند، میتوانید یک رکورد CNAME برای www ایجاد کنید که به دامنه اصلی اشاره کند.
ساختار رکورد CNAME
یک رکورد CNAME از دو بخش اصلی تشکیل شده است:
- Host (نام میزبان): دامنه یا سابدامینی که میخواهید بهعنوان نام مستعار تعریف کنید (مثلاً www یا blog)
- Target (مقصد): نام دامنهای که Host باید به آن اشاره کند (مثلاً example.com)
www.example.com. IN CNAME example.com.
blog.example.com. IN CNAME example.com.
shop.example.com. IN CNAME myshop.shopify.com.
رکورد CNAME چگونه کار میکند؟
وقتی کاربر آدرس www.example.com را در مرورگر وارد میکند، فرآیند زیر اتفاق میافتد:
- مرورگر از سرور DNS درخواست آدرس IP مربوط به
www.example.comرا میکند - سرور DNS رکورد CNAME را پیدا میکند که به
example.comاشاره دارد - سرور DNS یک جستجوی جدید برای
example.comانجام میدهد - رکورد A مربوط به
example.comپیدا شده و آدرس IP بازگردانده میشود - مرورگر به آن آدرس IP متصل میشود
جدول مقایسه انواع رکوردهای DNS
برای درک بهتر جایگاه CNAME در میان رکوردهای DNS، جدول زیر را ببینید:
| نوع رکورد | کاربرد | مقصد | قابل استفاده در Zone Apex | همزیستی با رکوردهای دیگر |
|---|---|---|---|---|
| A | اتصال دامنه به آدرس IPv4 | آدرس IP (مثلاً 192.0.2.1) | ✅ بله | ✅ بله |
| AAAA | اتصال دامنه به آدرس IPv6 | آدرس IPv6 | ✅ بله | ✅ بله |
| CNAME | ایجاد نام مستعار برای دامنه | نام دامنه (مثلاً example.com) | ❌ خیر | ❌ خیر (انحصاری) |
| ALIAS/ANAME | نام مستعار برای Zone Apex | نام دامنه (resolve میشود به IP) | ✅ بله | ✅ بله |
| MX | مشخص کردن سرور ایمیل | نام سرور ایمیل + اولویت | ✅ بله | ✅ بله |
| TXT | ذخیره متن (SPF، DKIM، تأیید مالکیت) | رشته متنی | ✅ بله | ✅ بله |
| NS | مشخص کردن Name Server | نام سرور DNS | ✅ بله (اجباری) | ✅ بله |
کاربردهای رکورد CNAME
رکورد CNAME کاربردهای متنوعی در مدیریت دامنه و زیرساخت وب دارد:
1. اتصال www به دامنه اصلی
رایجترین استفاده از CNAME، اتصال نسخه www دامنه به نسخه بدون www است:
2. پیکربندی CDN و سرویسهای ابری
سرویسهای CDN مانند Cloudflare، AWS CloudFront و Azure CDN معمولاً یک hostname به شما میدهند که باید با CNAME به آن متصل شوید:
www IN CNAME example.com.cdn.cloudflare.net.
3. اتصال سابدامینها به سرویسهای ثالث
برای اتصال سابدامینها به سرویسهایی مانند Shopify، GitHub Pages، یا پلتفرمهای SaaS:
blog IN CNAME username.github.io.
support IN CNAME example.zendesk.com.
4. مدیریت سادهتر تغییرات IP
اگر چندین سابدامین با CNAME به یک دامنه اصلی اشاره کنند، با تغییر IP در رکورد A دامنه اصلی، همه سابدامینها بهروز میشوند.
5. Load Balancing و Failover
برخی سرویسهای DNS پیشرفته از CNAME برای توزیع بار و failover استفاده میکنند.
محدودیتهای رکورد CNAME
رکورد CNAME با وجود کاربردهای فراوان، محدودیتهای مهمی دارد که باید بدانید:
1. عدم استفاده در Zone Apex (ریشه دامنه)
طبق استانداردهای RFC 1034 و RFC 1035، نمیتوانید رکورد CNAME را در ریشه دامنه (Zone Apex) قرار دهید. یعنی برای example.com (بدون سابدامین) نمیتوانید CNAME تعریف کنید.
🚨 مهم:
دلیل این محدودیت این است که Zone Apex باید رکوردهای SOA و NS داشته باشد، و CNAME نمیتواند با هیچ رکورد دیگری همزیستی کند.
2. انحصاری بودن CNAME
اگر یک hostname دارای رکورد CNAME باشد، نمیتواند هیچ رکورد دیگری (A، MX، TXT و...) داشته باشد. این یعنی نمیتوانید همزمان CNAME و MX برای یک سابدامین داشته باشید.
3. افزایش زمان Lookup
هر رکورد CNAME یک مرحله اضافی به فرآیند DNS lookup اضافه میکند. اگرچه این تأخیر معمولاً ناچیز است، اما در سیستمهای حساس به latency میتواند تأثیرگذار باشد.
4. زنجیره CNAME (CNAME Chain)
اگر یک CNAME به CNAME دیگری اشاره کند، زنجیرهای ایجاد میشود که کارایی را کاهش میدهد. بهتر است از زنجیرههای طولانی CNAME خودداری کنید.
CNAME Flattening چیست؟
برای غلبه بر محدودیت Zone Apex، برخی ارائهدهندگان DNS از تکنیکی به نام CNAME Flattening استفاده میکنند. در این روش، سرور DNS به جای بازگرداندن رکورد CNAME، آدرس IP نهایی را مستقیماً برمیگرداند.
مزایای CNAME Flattening:
- امکان استفاده از CNAME-like در Zone Apex
- کاهش تعداد DNS lookup
- سازگاری با استانداردهای RFC
- ایدهآل برای اتصال به CDN و سرویسهای ابری
ارائهدهندگانی که CNAME Flattening پشتیبانی میکنند:
- Cloudflare: به صورت پیشفرض فعال است (مستندات Cloudflare)
- AWS Route 53: با استفاده از ALIAS Records
- Azure DNS: با Alias Records
- DNS Made Easy: با ANAME Records
رکورد ALIAS در مقابل CNAME
رکورد ALIAS (یا ANAME) جایگزینی برای CNAME است که محدودیتهای آن را ندارد:
| ویژگی | CNAME | ALIAS |
|---|---|---|
| استفاده در Zone Apex | ❌ خیر | ✅ بله |
| همزیستی با رکوردهای دیگر | ❌ خیر | ✅ بله |
| استاندارد RFC | ✅ RFC 1034/1035 | ❌ غیراستاندارد |
| پشتیبانی | همه ارائهدهندگان | ارائهدهندگان خاص |
| خروجی به Client | نام دامنه | آدرس IP |
نحوه تنظیم رکورد CNAME
تنظیم رکورد CNAME در اکثر پنلهای مدیریت DNS ساده است. در اینجا مراحل کلی را شرح میدهیم:
مراحل تنظیم CNAME:
- ورود به پنل مدیریت DNS: وارد کنترل پنل دامنه یا سرویس DNS خود شوید
- انتخاب دامنه: دامنه مورد نظر را انتخاب کنید
- افزودن رکورد جدید: روی گزینه Add Record یا افزودن رکورد کلیک کنید
- انتخاب نوع CNAME: از لیست نوع رکورد، CNAME را انتخاب کنید
- وارد کردن Host: نام سابدامین را وارد کنید (مثلاً www یا blog)
- وارد کردن Target: دامنه مقصد را وارد کنید (مثلاً example.com)
- تنظیم TTL: مقدار TTL را تنظیم کنید (پیشفرض معمولاً 3600 ثانیه است)
- ذخیره تغییرات: رکورد را ذخیره کنید
💡 نکته:
انتشار تغییرات DNS ممکن است تا 24-48 ساعت طول بکشد. اگر از Cloudflare استفاده میکنید، تغییرات تقریباً آنی اعمال میشوند.
تنظیم CNAME در cPanel:
2. Go to "Zone Editor" under Domains
3. Click "Manage" next to your domain
4. Click "+ Add Record" and select "CNAME"
5. Enter Name (e.g., www) and Record (target domain)
6. Click "Save Record"
تنظیم CNAME در Cloudflare:
2. Select your domain
3. Go to DNS > Records
4. Click "Add record"
5. Type: CNAME
6. Name: subdomain (e.g., www)
7. Target: target domain (e.g., example.com)
8. Proxy status: Choose Proxied or DNS only
9. Click "Save"
بررسی و عیبیابی رکورد CNAME
برای بررسی صحت تنظیم رکورد CNAME میتوانید از ابزارهای زیر استفاده کنید:
استفاده از dig (Linux/macOS):
# نمونه خروجی:
;; ANSWER SECTION:
www.example.com. 3600 IN CNAME example.com.
استفاده از nslookup (Windows):
ابزارهای آنلاین:
- DNS Checker - بررسی انتشار جهانی DNS
- MXToolbox CNAME Lookup
- Google Admin Toolbox Dig
مشکلات رایج CNAME و راهحلها
| مشکل | علت | راهحل |
|---|---|---|
| CNAME در Zone Apex کار نمیکند | محدودیت استاندارد DNS | از ALIAS/ANAME یا CNAME Flattening استفاده کنید |
| تداخل CNAME با رکوردهای دیگر | CNAME انحصاری است | رکوردهای متداخل را حذف کنید یا از ALIAS استفاده کنید |
| تأخیر در اعمال تغییرات | DNS Propagation | 24-48 ساعت صبر کنید؛ کش مرورگر را پاک کنید |
| زنجیره CNAME طولانی | CNAME به CNAME اشاره میکند | مستقیماً به مقصد نهایی اشاره کنید |
| خطای گواهی SSL | گواهی SSL شامل دامنه CNAME نیست | گواهی را برای دامنه جدید صادر کنید |
بهترین شیوهها برای استفاده از CNAME
برای استفاده بهینه از رکوردهای CNAME، این نکات را رعایت کنید:
- از زنجیره CNAME خودداری کنید: همیشه مستقیماً به مقصد نهایی اشاره کنید
- TTL مناسب انتخاب کنید: برای تغییرات مکرر، TTL کوتاهتر (300-600 ثانیه) و برای رکوردهای پایدار، TTL بلندتر (3600-86400 ثانیه)
- سرویسهای ثالث را مانیتور کنید: اگر CNAME به سرویس ثالث اشاره میکند، تغییرات آنها را پیگیری کنید
- مستندسازی کنید: تمام رکوردهای CNAME و دلیل ایجاد آنها را مستند کنید
- از ALIAS برای Zone Apex استفاده کنید: اگر ارائهدهنده DNS شما پشتیبانی میکند
سوالات متداول درباره رکورد CNAME
رکورد CNAME چیست و چه تفاوتی با رکورد A دارد؟
رکورد CNAME (Canonical Name) یک نام مستعار برای دامنه ایجاد میکند و به نام دامنه دیگری اشاره میکند. در مقابل، رکورد A مستقیماً یک دامنه را به آدرس IPv4 متصل میکند. CNAME برای اتصال سابدامینها به سرویسهای خارجی یا ایجاد alias مناسب است، در حالی که A Record برای اتصال مستقیم دامنه به سرور استفاده میشود.
آیا میتوان رکورد CNAME را برای دامنه اصلی (بدون www) استفاده کرد؟
خیر، طبق استانداردهای RFC 1034 و RFC 1035، رکورد CNAME را نمیتوان در Zone Apex (ریشه دامنه مانند example.com) استفاده کرد. برای این کار، میتوانید از رکورد ALIAS (در ارائهدهندگانی که پشتیبانی میکنند) یا CNAME Flattening (مانند Cloudflare) استفاده کنید.
چقدر طول میکشد تا تغییرات رکورد CNAME اعمال شود؟
انتشار تغییرات DNS (DNS Propagation) معمولاً بین چند دقیقه تا 24-48 ساعت طول میکشد. این زمان به TTL رکورد قبلی و سرورهای DNS میانی بستگی دارد. برای تسریع، میتوانید TTL را قبل از تغییر کاهش دهید و کش مرورگر و DNS محلی را پاک کنید.
CNAME Flattening چیست و چه کاربردی دارد؟
CNAME Flattening تکنیکی است که در آن سرور DNS به جای بازگرداندن رکورد CNAME، آدرس IP نهایی را مستقیماً برمیگرداند. این روش به شما اجازه میدهد رفتار CNAME-like را در Zone Apex داشته باشید و همچنین تعداد DNS lookup را کاهش میدهد. Cloudflare این قابلیت را به صورت پیشفرض ارائه میدهد.
چرا نمیتوانم همزمان CNAME و MX برای یک سابدامین داشته باشم؟
طبق استانداردهای DNS، رکورد CNAME انحصاری است و نمیتواند با هیچ رکورد دیگری (از جمله A، MX، TXT و...) در یک hostname همزیستی کند. اگر نیاز به هر دو دارید، باید از رکورد ALIAS استفاده کنید که این محدودیت را ندارد، یا سابدامین جداگانهای برای ایمیل در نظر بگیرید.
آیا CNAME روی سرعت وبسایت تأثیر میگذارد؟
بله، اما تأثیر معمولاً ناچیز است. هر رکورد CNAME یک مرحله اضافی به DNS lookup اضافه میکند (چون باید مقصد نهایی resolve شود). این تأخیر معمولاً چند میلیثانیه است. با این حال، در سیستمهای حساس به latency یا زمانی که زنجیره CNAME طولانی باشد، میتواند قابل توجه شود. استفاده از CNAME Flattening این مشکل را برطرف میکند.
چگونه بررسی کنم که رکورد CNAME درست تنظیم شده است؟
میتوانید از ابزارهای خط فرمان مانند dig (در Linux/macOS) یا nslookup (در Windows) استفاده کنید. دستور dig www.example.com CNAME اطلاعات رکورد CNAME را نمایش میدهد. همچنین ابزارهای آنلاین مانند DNS Checker، MXToolbox و Google Admin Toolbox برای بررسی انتشار جهانی DNS مفید هستند.
برای تنظیم DNS دامنه خود، از پشتیبانی برتینا کمک بگیرید
در این مقاله، همه چیز درباره رکورد CNAME را آموختید: از تعریف و کاربردها گرفته تا نحوه تنظیم و عیبیابی. اگر در پیکربندی DNS دامنه خود به کمک نیاز دارید یا میخواهید از خدمات حرفهای برتینا استفاده کنید:
- ✅ با هاست برتینا، تنظیمات DNS به صورت خودکار انجام میشود
- ✅ ثبت دامنه با پنل مدیریت DNS پیشرفته
- ✅ سرور مجازی با دسترسی کامل به تنظیمات DNS
- ✅ پشتیبانی ۲۴ ساعته برای کمک در پیکربندی رکوردهای DNS
همین حالا با تیم فنی برتینا تماس بگیرید!
پشتیبانی ۲۴/۷ | مشاوره رایگان | تنظیم DNS رایگان




