إذا كان خادمك لا يستجيب بعد عبر 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
قد تنقطع الجلسة لحظة عند إعادة تشغيل الخدمة. وإذا كانت الواجهة تعمل بـ DHCP لـ IPv4 وتريد إضافة 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 باستخدام عنوان خادمك:
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.
🚀 أصبح خادمك يتحدث IPv6: انشر سجل AAAA لتصبح خدماتك متاحة على البروتوكولين.