نام دامنه تا زمانی که رکوردهای DNS آن محل سرور شما را مشخص نکنند فایدهای ندارد. در این راهنما دامنه را به VPS Linux Infrawire وصل میکنید، رکوردهای IPv4 و IPv6 و www را اضافه میکنید و درست حل شدن همهچیز را بررسی میکنید.
📋 پیشنیازها
- یک VPS با آدرس IPv4 عمومی (و در صورت تمایل IPv6). از فضای مشتری خود میتوانید IP و گذرواژه root سرور را پیدا کنید.
- یک نام دامنه ثبتشده (
example.com) و دسترسی به ناحیه DNS آن، نزد ثبتکننده یا ارائهدهنده DNS. - ابزارهای
digوnslookupروی سیستم خود یا روی VPS:
Bash# Ubuntu 24.04 / Debian 12 sudo apt update && sudo apt install -y dnsutils # AlmaLinux 9 / Rocky 9 sudo dnf install -y bind-utils
🧭 آشنایی با انواع رکورد
| نوع | کاربرد | نمونه مقدار |
|---|---|---|
| A | نام به آدرس IPv4 | VPS_IP |
| AAAA | نام به آدرس IPv6 | VPS_IPV6 |
| CNAME | نام مستعار برای نامی دیگر | example.com. |
رکورد CNAME را نمیتوان روی دامنه اصلی (example.com) گذاشت، چون با دیگر رکوردهای ناحیه تداخل پیدا میکند. آنجا از A/AAAA و برای زیردامنههایی مثل www از CNAME استفاده کنید.
✍️ ساخت رکوردهای A و AAAA
در ویرایشگر ناحیه DNS نزد ثبتکننده، این رکوردها را اضافه کنید. نماد @ در فیلد میزبان یعنی دامنه اصلی.
TEXTType Host Value TTL A @ VPS_IP 3600 AAAA @ VPS_IPV6 3600
برخی رابطها بهجای @ نام کامل (example.com.) میخواهند. نقطه پایانی را فقط وقتی نگه دارید که ویرایشگر نام کاملاً معتبر بخواهد. اگر هنوز از IPv6 استفاده نمیکنید، رکورد AAAA نسازید: AAAA نادرست بدتر از نبودن آن است، چون بسیاری از کلاینتها اول IPv6 را امتحان میکنند.
🔗 افزودن www با CNAME
کاری کنید که www از نام اصلی پیروی کند تا IP را فقط در یک جا تغییر دهید:
TEXTType Host Value TTL CNAME www example.com. 3600
زیردامنههای دیگر هم همینطور کار میکنند. وقتی زیردامنهای باید به سرور دیگری اشاره کند (مثلاً api به IP دیگر) از رکورد A استفاده کنید.
⏱️ TTL و انتشار
مقدار TTL (زمان زندهماندن، به ثانیه) به حلکنندهها میگوید پاسخ را تا چه مدت در حافظه نهان نگه دارند. رکورد جدید معمولاً ظرف چند دقیقه ظاهر میشود، اما تغییر رکورد موجود تا پایان TTL قبلی دیده نمیشود.
- پیش از مهاجرت، یک روز قبل TTL را روی
300بگذارید و سپس IP را عوض کنید. - پس از پایدار شدن تغییر، آن را به
3600یا بیشتر برگردانید. - انتشار کامل هرگز آنی نیست: از چند دقیقه تا چند ساعت انتظار داشته باشید.
✅ بررسی با dig و nslookup
از حلکننده خودتان و سپس از یک حلکننده عمومی بپرسید و مقایسه کنید:
Bashdig +short example.com A dig +short example.com AAAA dig +short www.example.com CNAME # پرسوجو از یک حلکننده عمومی مشخص dig @1.1.1.1 +short example.com A dig @8.8.8.8 +short example.com A # پرسش مستقیم از سرورهای معتبر (بدون حافظه نهان) dig +short NS example.com dig @NAMESERVER +short example.com A
همین بررسی با nslookup:
Bashnslookup example.com nslookup -type=AAAA example.com nslookup www.example.com 1.1.1.1
پاسخ باید برابر VPS_IP باشد. سپس مسیر تا سرور را آزمایش کنید:
Bashping -c 3 example.com curl -I http://example.com
🔁 DNS معکوس (PTR)
DNS مستقیم نام را به IP تبدیل میکند. DNS معکوس (رکورد PTR) برعکس عمل میکند: VPS_IP را به یک نام میزبان نگاشت میکند. این رکورد در ناحیه دامنه شما مدیریت نمیشود بلکه نزد مالک بلوک آدرس است، پس از ارائهدهنده خود بخواهید آن را تنظیم کند. سرورهای ایمیل به آن بسیار تکیه میکنند؛ آن را روی نامی بگذارید که برای ارسال ایمیل استفاده میکنید، مثلاً mail.example.com، و مطمئن شوید این نام رکورد A متناظر دارد.
Bashdig -x VPS_IP +short host VPS_IP
☁️ حالت ویژه: پروکسی Cloudflare
وقتی رکوردی پروکسی شده است (ابر نارنجی)، DNS عمومی آدرسهای Cloudflare را برمیگرداند نه VPS_IP را. این طبیعی است: dig هرگز IP سرور شما را نشان نمیدهد.
- ترافیک وب (80/443) از Cloudflare عبور میکند؛ سرویسهای دیگر مثل SSH، ایمیل یا سرور بازی عبور نمیکنند.
- برای هر چیزی که HTTP(S) نیست، رکوردی در حالت فقط DNS (ابر خاکستری) بسازید، مثلاً
ssh.example.comکه بهVPS_IPاشاره کند. - رکوردهای ایمیل (
mailو مقصدهای MX) همیشه باید فقط DNS باشند. - حالت SSL را روی Full (strict) نگه دارید و روی VPS گواهی معتبر نصب کنید، وگرنه با حلقه تغییر مسیر یا خطای 525 روبهرو میشوید.
🛠️ رفع اشکال
IP قدیمی هنوز نمایش داده میشود. TTL قبلی هنوز تمام نشده است. با dig @NAMESERVER از سرور معتبر بپرسید تا از درستی ناحیه مطمئن شوید و سپس صبر کنید. در صورت نیاز حافظه نهان محلی را پاک کنید:
Bashsudo resolvectl flush-caches
NXDOMAIN یا بدون پاسخ. رکورد در ناحیه اشتباه است، نام میزبان غلط املایی دارد، یا دامنه از نامسرورهای دیگری استفاده میکند. خروجی dig NS example.com را با نامسرورهای اعلامشده نزد ثبتکننده مقایسه کنید.
دامنه حل میشود اما سایت باز نمیشود. DNS سالم است؛ مشکل از سرویس است. بررسی کنید که یک وبسرور روی پورت گوش میدهد و فایروال آن را مجاز کرده است:
Bashsudo ss -tlnp | grep -E ':80|:443'
🎉 دامنه شما اکنون به VPS اشاره میکند: میتوانید وبسرور نصب کنید و گواهی صادر کنید.