اگر سرور شما هنوز روی 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در این مثالها):
Baship -br link ip -6 addr show ip -6 route show
هنگام ویرایش فایلهای شبکه یک نشست SSH دوم را باز نگه دارید تا اشتباه باعث قفل شدن شما نشود.
🟠 Ubuntu 24.04: Netplan
فایلهای Netplan در /etc/netplan/ هستند. در ایمیجهای ابری این فایل اغلب توسط cloud-init ساخته میشود و ممکن است هنگام راهاندازی مجدد بازنویسی شود، پس ابتدا مدیریت شبکه آن را غیرفعال کنید:
Bashsudo nano /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
YAMLnetwork: {config: disabled}
سپس فایل Netplan خود (مثلاً /etc/netplan/50-cloud-init.yaml) را ویرایش کنید و آدرس و مسیر IPv6 را اضافه کنید. خطوط IPv4 فعلی را نگه دارید:
YAML1network: 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]
Bashsudo chmod 600 /etc/netplan/*.yaml sudo netplan try
اگر تأیید نکنید، netplan try پس از 120 ثانیه خودکار به حالت قبل برمیگردد و شما را از پیکربندی نادرست حفظ میکند. با Enter تأیید کنید یا وقتی مطمئن شدید از sudo netplan apply استفاده کنید.
🔴 Debian 12: /etc/network/interfaces
Bashsudo nano /etc/network/interfaces
برای همان رابط یک بخش اضافه کنید:
INIiface eth0 inet6 static address VPS_IPV6/PREFIX gateway IPV6_GATEWAY dns-nameservers 2606:4700:4700::1111
خط dns-nameservers فقط وقتی کار میکند که بسته resolvconf نصب باشد؛ در غیر این صورت حلکننده را در /etc/resolv.conf بنویسید. تغییر را اعمال کنید:
Bashsudo systemctl restart networking
راهاندازی مجدد سرویس ممکن است اتصال را برای لحظهای قطع کند. اگر رابط برای IPv4 با DHCP کار میکند و فقط میخواهید IPv6 اضافه کنید، میتوانید از کنسول هم sudo ifdown eth0 && sudo ifup eth0 را اجرا کنید.
🔵 AlmaLinux 9 / Rocky 9: nmcli
رابط توسط NetworkManager مدیریت میشود. ابتدا نام اتصالها را فهرست کنید:
Bashnmcli connection show
از نامی که میبینید استفاده کنید (CON_NAME، مثلاً System eth0 یا cloud-init eth0):
Bashsudo 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'
تغییر در پروفایل اتصال ذخیره میشود و پس از راهاندازی مجدد باقی میماند.
✅ آزمایش اتصال
Baship -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 بررسی کنید:
Bashping -6 -c 3 VPS_IPV6 ssh root@VPS_IPV6
🔥 فایروال برای IPv6
قانونی که فقط برای IPv4 وجود دارد، سمت IPv6 را باز میگذارد. با UFW مطمئن شوید پشتیبانی IPv6 فعال است:
Bashgrep 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 هر دو خانواده را با همین دستورها پوشش میدهد:
Bashsudo 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 منتشر کنید تا سرویسهایتان روی هر دو پروتکل در دسترس باشند.