اگر یک سرور مجازی (VPS) تهیه کرده اید و می خواهید سایت یا برنامه ای را روی آن اجرا کنید، یکی از اولین کارهایی که باید انجام دهید، اتصال دامنه به سرور مجازی است. دامنه به تنهایی محتوای سایت را نمایش نمی دهد مرورگر باید از طریق DNS متوجه شود که دامنه موردنظر به کدام سرور متصل است.
در این آموزش، نحوه اتصال دامنه به سرور مجازی را به صورت مرحله به مرحله بررسی می کنیم و سه روش رایج را توضیح می دهیم:
برای بیشتر کاربران، روش اول ساده ترین گزینه است و نیازی به نصب نرم افزار DNS روی VPS ندارد.
برای درک بهتر فرآیند، فرض کنید دامنه شما این باشد:
example.com
و آدرس IP عمومی سرور مجازی شما نیز این باشد:
185.10.20.30
زمانی که کاربر example.com را در مرورگر وارد می کند، DNS باید IP مربوط به دامنه را پیدا کند. برای اتصال یک دامنه به IPv4 سرور، معمولاً از A Record استفاده می شود. برای ساب دامین هایی مانند www نیز می توان از A Record یا CNAME استفاده کرد.
در ساده ترین حالت:
example.com
↓
DNS
↓
185.10.20.30
↓
VPS
↓
Nginx / Apache
↓
Website
بنابراین اتصال دامنه به VPS در مرحله اول یک کار DNS است اما بعد از آن باید وب سرور سرور مجازی نیز برای دامنه تنظیم شود.
قبل از شروع آموزش اتصال دامنه به سرور مجازی، موارد زیر را آماده کنید:
اگر هنوز دامنه خود را ثبت نکرده اید، می توانید از سرویس خرید دامنه داخلی و خارجی برای ثبت دامنه های ملی و بین المللی استفاده کنید.
همچنین برای اجرای سایت یا برنامه خود به یک VPS نیاز دارید. بسته به موقعیت کاربران و نیاز پروژه می توانید سرور مجازی ایران یا سایر موقعیت ها را انتخاب کنید.
ساده ترین روش برای اتصال دامنه به VPS این است که DNS دامنه را در همان سرویس فعلی نگه دارید و یک A Record ایجاد کنید.
در این روش، لازم نیست Nameserverها را تغییر دهید و نیازی به نصب DNS Server روی VPS نیز ندارید.

ابتدا IP عمومی VPS خود را از پنل ارائه دهنده سرور پیدا کنید.
برای مثال:
VPS Public IP :
185.10.20.30
اگر از طریق SSH به لینوکس متصل هستید، برای مشاهده اطلاعات شبکه می توانید از دستور زیر استفاده کنید:
ip addr
توجه کنید که برای DNS باید IP عمومی سرور را استفاده کنید. آدرس هایی مانند 192.168.x.x یا 10.x.x.x معمولاً IP خصوصی هستند و نباید در A Record دامنه قرار بگیرند.
وارد پنلی شوید که DNS دامنه شما در آن مدیریت می شود. این پنل ممکن است متعلق به رجیسترار دامنه، سرویس DNS یا Cloudflare باشد.
بسته به شرکت ارائه دهنده، قسمت مدیریت DNS ممکن است با نام هایی مانند موارد زیر نمایش داده شود:
نکته مهم این است که ابتدا بررسی کنید Nameserverهای دامنه در حال حاضر متعلق به کدام سرویس هستند زیرا رکوردهای DNS باید در همان سرویس تغییر کنند.
برای بررسی Nameserver می توانید از این دستور استفاده کنید:
dig NS example.com +short
در ویندوز نیز می توانید از nslookup استفاده کنید:
nslookup -type=NS example.com
مرحله ۳: ساخت A Record برای دامنه
در قسمت DNS، یک A Record برای دامنه اصلی ایجاد کنید.
برای مثال:
| Type | Name | Value | TTL |
| A | @ | 185.10.20.30 | 3600 |
در بعضی پنل ها به جای @ باید خود دامنه را وارد کنید:
example.com
مقدار Value همان IP عمومی VPS است.
پس اگر IP سرور شما:
185.10.20.30
باشد، رکورد باید تقریباً به این شکل باشد:
example.com → 185.10.20.30
اگر کاربران با آدرس زیر نیز باید وارد سایت شوند:
www.example.com
باید برای www نیز رکورد DNS تنظیم کنید.
روش رایج این است که یک CNAME ایجاد کنید:
| Type | Name | Value |
| CNAME | www | example.com |
در این حالت www.example.com به دامنه اصلی اشاره می کند و دامنه اصلی نیز با A Record به IP VPS متصل است.
روش دیگر این است که برای www یک A Record جدا ایجاد کنید:
| Type | Name | Value |
| A | www | 185.10.20.30 |
هر دو روش قابل استفاده هستند، اما در ساختارهای معمول DNS، استفاده از CNAME برای www یک الگوی متداول است.
بعد از ذخیره رکوردها، باید بررسی کنید که DNS به درستی تنظیم شده است.
در لینوکس یا macOS:
dig A example.com +short
در ویندوز:
nslookup example.com
اگر تنظیمات صحیح باشد، IP VPS شما در خروجی نمایش داده می شود:
185.10.20.30
برای بررسی www نیز می توانید اجرا کنید:
dig www.example.com +short
یک نکته مهم در آموزش اتصال دامنه به سرور مجازی این است که تنظیم DNS به تنهایی سایت را روی VPS راه اندازی نمی کند.
بعد از اینکه دامنه به IP سرور resolve شد، وب سرور باید بداند که درخواست مربوط به کدام سایت است.
برای مثال، در Nginx می توانید دامنه را در server_name قرار دهید:
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example;
index index.html index.php;
}
Nginx با استفاده از server_name تشخیص می دهد درخواست ورودی متعلق به کدام پیکربندی سایت است.
پس فراموش نکنید:
DNS -> دامنه را به IP می رساند
Nginx/Apache -> درخواست دامنه را به سایت صحیح می رساند
روش دوم استفاده از Cloudflare برای مدیریت DNS دامنه است.

در این روش، Cloudflare مدیریت DNS را بر عهده می گیرد و رکورد A دامنه را به IP سرور مجازی شما متصل می کنید.
ساختار اتصال به این شکل خواهد بود:
Domain
↓
Cloudflare Nameservers
↓
A Record
↓
VPS IP
ابتدا وارد حساب Cloudflare شوید و دامنه خود را به Cloudflare اضافه کنید.
پس از اضافه کردن دامنه، Cloudflare Nameserver هایی را در اختیار شما قرار می دهد.
برای مثال:
ns1.cloudflare.com
ns2.cloudflare.com
مقادیر واقعی را باید از خود Cloudflare دریافت کنید.
وارد پنل ثبت دامنه شوید و Nameserverهای فعلی را با Nameserverهایی که Cloudflare ارائه کرده است جایگزین کنید.
بعد از انجام این کار، Cloudflare مدیریت DNS دامنه شما را بر عهده می گیرد.
تغییر Nameserver باید در پنل Registrar انجام شود و فعال شدن آن ممکن است به دلیل cache و TTL مدتی زمان ببرد.
در قسمت DNS Records یک A Record ایجاد کنید:
| Type | Name | IPv4 Address |
| A | @ | 185.10.20.30 |
سپس برای www می توانید از CNAME استفاده کنید:
| Type | Name | Target |
| CNAME | www | example.com |
Cloudflare نیز برای دامنه اصلی استفاده از A Record و برای نام هایی مانند www استفاده از CNAME را در سناریوهای معمول DNS پشتیبانی می کند.
هنگام ایجاد رکورد در Cloudflare معمولاً با گزینه ای مربوط به Proxy مواجه می شوید.
در حالت Proxy فعال، ترافیک وب از زیرساخت Cloudflare عبور می کند. در حالت DNS Only، Cloudflare صرفاً پاسخ DNS را ارائه می دهد و اتصال وب مستقیماً به IP VPS انجام می شود.
برای وب سایت، بسته به نیاز پروژه می توانید از Proxy استفاده کنید اما برای سرویس هایی مانند SSH نباید صرفاً به دلیل وجود یک رکورد DNS انتظار داشته باشید ترافیک از Cloudflare عبور کند.
روش سوم برای کاربران حرفه ای تر است و به شما اجازه می دهد Nameserver اختصاصی خودتان را داشته باشید.
برای مثال:
ns1.example.com
ns2.example.com
در این روش، VPS به یک DNS Server authoritative تبدیل می شود و Zone دامنه روی سرور مدیریت خواهد شد.
این روش با روش A Record تفاوت مهمی دارد.
در روش A Record :
Registrar DNS
↓
A Record
↓
VPS
اما در Custom Nameserver :
Domain
↓
ns1.example.com
ns2.example.com
↓
DNS Server روی زیرساخت شما
↓
DNS Zone
↓
VPS
ابتدا باید در Registrar دامنه، Child Nameserver یا Glue Record ایجاد کنید.
برای مثال:
ns1.example.com → 185.10.20.30
ns2.example.com → IP سرور DNS دوم
استفاده از دو Nameserver مستقل برای افزایش دسترس پذیری توصیه می شود. بهتر است ns1 و ns2 فقط دو نام برای یک VPS واحد با یک IP نباشند چون در صورت از دسترس خارج شدن همان سرور، DNS نیز تحت تأثیر قرار می گیرد.
برای اجرای Nameserver اختصاصی باید نرم افزار DNS روی سرور نصب و پیکربندی شود.
یکی از گزینه های رایج در لینوکس BIND9 است.
برای مثال در توزیع های مبتنی بر Debian/Ubuntu :
sudo apt update
sudo apt install bind9
پس از نصب BIND، باید Zone مربوط به دامنه خود را ایجاد کنید.
برای مثال، Zone دامنه example.com می تواند رکوردهایی مانند این داشته باشد:
$TTL 3600
@ IN SOA ns1.example.com. admin.example.com. (
2026092301
3600
1800
604800
3600
)
@ IN NS ns1.example.com.
@ IN NS ns2.example.com.
@ IN A 185.10.20.30
www IN CNAME example.com.
ns1 IN A 185.10.20.30
در این Zone، A Record دامنه به IP سرور متصل شده و www نیز با CNAME به دامنه اصلی اشاره می کند.
ساختار دقیق فایل Zone و پیکربندی BIND باید مطابق تنظیمات DNS Server شما انجام شود بنابراین Custom Nameserver برای کاربرانی مناسب تر است که با مدیریت Linux و DNS آشنایی دارند.
بعد از آماده شدن DNS Server و Zone، Nameserverهای دامنه را به موارد زیر تغییر دهید:
ns1.example.com
ns2.example.com
سپس با دستور زیر وضعیت Nameserver را بررسی کنید:
dig NS example.com +short
برای بررسی A Record نیز:
dig A example.com +short
اگر IP صحیح VPS نمایش داده شود، بخش DNS به درستی پاسخ می دهد.
| روش | سطح پیچیدگی | نیاز به DNS Server روی VPS | مناسب برای |
| A Record | کم | خیر | بیشتر سایت ها و کاربران معمولی |
| Cloudflare | متوسط | خیر | سایت هایی که DNS و قابلیت های Cloudflare را می خواهند |
| Custom Nameserver | زیاد | بله | پروژه ها و زیرساخت های حرفه ای |
در بیشتر پروژه های معمول، A Record ساده ترین راه برای اتصال دامنه به VPS است در حالی که Custom Nameserver کنترل بیشتری روی زیرساخت DNS در اختیار مدیر سرور قرار می دهد.
اگر DNS به درستی تنظیم شده باشد، با اجرای:
dig A example.com +short
باید IP عمومی VPS نمایش داده شود.
اما اگر سایت باز نمی شود، فقط DNS را بررسی نکنید. موارد زیر را نیز بررسی کنید:
دامنه باید در Virtual Host یا Server Block تعریف شده باشد.
برای سایت های معمول، پورت های زیر اهمیت دارند:
80 → HTTP
443 → HTTPS
اگر فایروال سرور دسترسی به پورت های موردنیاز را مسدود کرده باشد، حتی با DNS صحیح نیز سایت در دسترس نخواهد بود.
بعد از اینکه دامنه به VPS متصل شد، گواهی SSL را برای دامنه فعال کنید تا سایت با:
https://example.com
در دسترس باشد.
مطمئن شوید هر دو آدرس:
example.com
www.example.com
به مقصد موردنظر resolve می شوند.
بعد از تغییر A Record یا Nameserver، ممکن است تغییرات DNS بلافاصله در تمام شبکه ها دیده نشود. دلیل آن cache شدن پاسخ های DNS و مقدار TTL رکوردهاست.
برای بررسی وضعیت می توانید از ابزارهای DNS Lookup یا دستورهای زیر استفاده کنید:
dig A example.com
و
dig NS example.com
در زمان انتقال یا تغییر DNS، ممکن است بعضی کاربران رکورد جدید و بعضی کاربران برای مدتی رکورد قبلی را مشاهده کنند.
مهم ترین خطا این است که IP خصوصی، IP قدیمی یا IP اشتباه سرور را داخل A Record وارد کنید.
اگر Nameserver دامنه روی Cloudflare باشد، تغییر رکورد DNS در پنل Registrar تأثیری روی Zone فعال Cloudflare نخواهد داشت.
ممکن است example.com باز شود اما www.example.com به دلیل رکورد اشتباه کار نکند.
DNS فقط مسیر رسیدن دامنه به IP را مشخص می کند. وب سرور VPS نیز باید برای دامنه تنظیم شده باشد.
در روش Custom Nameserver باید علاوه بر ثبت Child Nameserver، DNS Server و Zone نیز به درستی پیکربندی شوند.
برای اغلب سایت هایی که یک دامنه را به یک سرور مجازی متصل می کنند، استفاده از A Record فرآیند ساده ای دارد و به تغییر زیرساخت DNS نیاز ندارد.
Cloudflare زمانی کاربردی است که بخواهید مدیریت DNS را به Cloudflare منتقل کنید و از امکانات این سرویس در کنار VPS استفاده کنید.
Custom Nameserver نیز یک راهکار تخصصی تر است که امکان مدیریت DNS روی زیرساخت خودتان را فراهم می کند، اما به پیکربندی و نگهداری DNS Server نیاز دارد.
در نهایت، فارغ از روشی که انتخاب می کنید، فرآیند کلی همیشه بر پایه یک مفهوم مشخص است:
Domain
↓
DNS
↓
IP Address
↓
VPS
↓
Web Server
↓
Website
بنابراین اگر هدف شما فقط نمایش یک سایت روی VPS است، ابتدا DNS را به IP عمومی سرور متصل کنید، سپس وب سرور را برای دامنه تنظیم کرده و در مرحله بعد SSL را فعال کنید.