فارسی (Farsi)
€EUR

پیکربندی آدرس IPv6 ثابت روی VPS لینوکس

3 min
سرور مجازی (VPS/VDS)

اگر سرور شما هنوز روی IPv6 پاسخ نمی‌دهد، به احتمال زیاد آدرس اختصاص یافته اما در سیستم پیکربندی نشده است. این راهنما نشان می‌دهد چگونه آن را به‌صورت ثابت روی Ubuntu و Debian و AlmaLinux تنظیم کنید، اتصال را بسنجید و با فایروال محافظت کنید. برای هر VPS Linux Infrawire که IPv6 دارد قابل استفاده است.

📋 پیش‌نیازها

  • یک VPS با دسترسی SSH به‌عنوان root، با Ubuntu 24.04 یا Debian 12 یا AlmaLinux 9 / Rocky 9. در فضای مشتری IP و گذرواژه root را می‌یابید.
  • آدرس IPv6، طول پیشوند و گیتوی که در ادامه با VPS_IPV6 و PREFIX (اغلب 64) و IPV6_GATEWAY نشان داده می‌شوند.
  • نام رابط (eth0 در این مثال‌ها):
Bash
ip -br link ip -6 addr show ip -6 route show

هنگام ویرایش فایل‌های شبکه یک نشست SSH دوم را باز نگه دارید تا اشتباه باعث قفل شدن شما نشود.

🟠 Ubuntu 24.04: Netplan

فایل‌های Netplan در /etc/netplan/ هستند. در ایمیج‌های ابری این فایل اغلب توسط cloud-init ساخته می‌شود و ممکن است هنگام راه‌اندازی مجدد بازنویسی شود، پس ابتدا مدیریت شبکه آن را غیرفعال کنید:

Bash
sudo nano /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
YAML
network: {config: disabled}

سپس فایل Netplan خود (مثلاً /etc/netplan/50-cloud-init.yaml) را ویرایش کنید و آدرس و مسیر IPv6 را اضافه کنید. خطوط IPv4 فعلی را نگه دارید:

YAML
1network: 2 version: 2 3 ethernets: 4 eth0: 5 addresses: 6 - VPS_IP/IPV4_PREFIX 7 - VPS_IPV6/PREFIX 8 routes: 9 - to: default 10 via: IPV4_GATEWAY 11 - to: default 12 via: IPV6_GATEWAY 13 nameservers: 14 addresses: [1.1.1.1, 2606:4700:4700::1111]
Bash
sudo chmod 600 /etc/netplan/*.yaml sudo netplan try

اگر تأیید نکنید، netplan try پس از 120 ثانیه خودکار به حالت قبل برمی‌گردد و شما را از پیکربندی نادرست حفظ می‌کند. با Enter تأیید کنید یا وقتی مطمئن شدید از sudo netplan apply استفاده کنید.

🔴 Debian 12: /etc/network/interfaces

Bash
sudo nano /etc/network/interfaces

برای همان رابط یک بخش اضافه کنید:

INI
iface eth0 inet6 static address VPS_IPV6/PREFIX gateway IPV6_GATEWAY dns-nameservers 2606:4700:4700::1111

خط dns-nameservers فقط وقتی کار می‌کند که بسته resolvconf نصب باشد؛ در غیر این صورت حل‌کننده را در /etc/resolv.conf بنویسید. تغییر را اعمال کنید:

Bash
sudo systemctl restart networking

راه‌اندازی مجدد سرویس ممکن است اتصال را برای لحظه‌ای قطع کند. اگر رابط برای IPv4 با DHCP کار می‌کند و فقط می‌خواهید IPv6 اضافه کنید، می‌توانید از کنسول هم sudo ifdown eth0 && sudo ifup eth0 را اجرا کنید.

🔵 AlmaLinux 9 / Rocky 9: nmcli

رابط توسط NetworkManager مدیریت می‌شود. ابتدا نام اتصال‌ها را فهرست کنید:

Bash
nmcli connection show

از نامی که می‌بینید استفاده کنید (CON_NAME، مثلاً System eth0 یا cloud-init eth0):

Bash
sudo nmcli connection modify 'CON_NAME' ipv6.method manual \ ipv6.addresses VPS_IPV6/PREFIX \ ipv6.gateway IPV6_GATEWAY \ ipv6.dns 2606:4700:4700::1111 sudo nmcli connection up 'CON_NAME'

تغییر در پروفایل اتصال ذخیره می‌شود و پس از راه‌اندازی مجدد باقی می‌ماند.

✅ آزمایش اتصال

Bash
ip -6 addr show dev eth0 ip -6 route show default ping -6 -c 3 IPV6_GATEWAY ping -6 -c 3 2606:4700:4700::1111 curl -6 -I https://www.debian.org

در سیستم‌های قدیمی‌تر ping6 همان کار ping -6 را می‌کند. از ماشین دیگری که IPv6 دارد هم با آدرس VPS بررسی کنید:

Bash
ping -6 -c 3 VPS_IPV6 ssh root@VPS_IPV6

🔥 فایروال برای IPv6

قانونی که فقط برای IPv4 وجود دارد، سمت IPv6 را باز می‌گذارد. با UFW مطمئن شوید پشتیبانی IPv6 فعال است:

Bash
grep IPV6 /etc/default/ufw # باید IPV6=yes نشان دهد sudo ufw allow 22/tcp sudo ufw allow 80,443/tcp sudo ufw enable sudo ufw status verbose

هر قاعده سپس دو بار ظاهر می‌شود که یکی با (v6) است. در AlmaLinux، firewalld هر دو خانواده را با همین دستورها پوشش می‌دهد:

Bash
sudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload

🛠️ رفع اشکال

آدرس هست اما ping به گیتوی شکست می‌خورد. طول پیشوند و گیتوی را بررسی کنید. بعضی شبکه‌ها از گیتوی link-local مثل fe80::1 استفاده می‌کنند؛ در این صورت گیتوی را روی همین مقدار بگذارید و اگر ابزارتان خواست dev eth0 را به مسیر اضافه کنید.

تا راه‌اندازی مجدد بعدی کار می‌کند. ابزار دیگری پیکربندی را بازنویسی می‌کند: cloud-init در Ubuntu (بخش اول را ببینید) یا یک دستور ip -6 addr add گذرا که هرگز به فایل‌های پیکربندی نرسیده است. دستورهای اجراشده با ip موقت هستند.

IPv6 به ping پاسخ می‌دهد اما وب‌سایت‌ها باز نمی‌شوند. فایروال یا سرویس فقط روی IPv4 گوش می‌دهد. با ss -tlnp بررسی کنید: وب‌سرور باید [::]:80 را نشان دهد، نه فقط 0.0.0.0:80. در nginx خط listen [::]:80; را به بلوک server اضافه کنید.


🚀 اکنون VPS شما IPv6 صحبت می‌کند: یک رکورد AAAA منتشر کنید تا سرویس‌هایتان روی هر دو پروتکل در دسترس باشند.

با آخرین پیشنهادها، تخفیف‌ها و تبلیغات ویژه به‌روز بمانید.

مشاهده تخفیف‌ها

ما از کوکی استفاده می‌کنیم

ما از کوکی‌های تحلیلی برای بهبود تجربه شما در سایت خود استفاده می‌کنیم. هیچ داده‌ای به اشخاص ثالث فروخته نمی‌شود. اطلاعات بیشتر در سیاست حفظ حریم خصوصی ما.