في هذا المقال الموجز، سنشرح بالتفصيل وظائف اللوحة التي ستساعدك على فهم طريقة عملها بسرعة.
سنمشي خطوة بخطوة من أول دخول إلى لوحة الإدارة حتى استيراد الاشتراك في تطبيقات العميل.
البداية السريعة
هذا المقال مكتوب للإصدار 2.0 من اللوحة وما بعده.
يفترض المقال أيضاً أنك قمت بالفعل بتثبيت Remnawave ومكوناتها. سيركز المقال بصورة أكبر على شرح وظائف اللوحة.
الخطوات الأولى
بعد تثبيت اللوحة والمكونات الضرورية، ستفتح لوحة الإدارة في المتصفح.
في البداية نحتاج إلى التسجيل. المستخدم المسجل سيكون "المشرف الأعلى".
إذا نسيت كلمة المرور، يمكنك دائماً إعادة إنشاء المشرف الأعلى عبر Rescue CLI.
للدخول إلى Rescue CLI أدخل الأمر: docker exec -it remnawave remnawave
الصفحة الرئيسية
بعد التسجيل ستظهر لك الصفحة الرئيسية للوحة.
دعنا نستعرض جميع العناصر التي تراها على هذه الصفحة.
إحصائيات Remnawave
في البلوكين الأولين – "Remnawave Usage" و"Process Details" – يمكنك رؤية كيف تستخدم Remnawave موارد النظام حالياً. في "Process Details" يمكنك رؤية أي العمليات الداخلية لـ Remnawave تستهلك أكثر الموارد.
اعتماداً على الإعداد، قد يكون هناك أكثر من عملية REST-API واحدة.
استهلاك حركة البيانات
يعرض هذا البلوك إحصائيات عامة لاستهلاك حركة البيانات لجميع المستخدمين مع المقارنة الزمنية للفترة المماثلة.
مثلاً – "اليوم". إذا فتحنا اللوحة في 16:00، سيعرض هذا البلوك إحصائيات الفترة من 0:00 حتى 16:00، لكن المقارنة ستكون مع اليوم السابق. (0:00 - 23:59)
حالياً الأرقام كلها أصفار في لقطة الشاشة، لكن بعد إعداد كل شيء وتوصيل مستخدمنا – سيعكس هذا البلوك الصورة الحقيقية. ستجد لقطة شاشة إضافية في نهاية هذا المقال.
المستخدمون
سنجمع هذه البلوكات الثلاثة في وصف واحد.
أعتقد أنك لاحظت وجود بطاقتين مختلفتين تعرضان المستخدمين المتصلين:
- قسم
النظام>Total online on nodes- يعرض إجمالي عدد المستخدمين المتصلين عبر جميع العقد. يمكن أن يكون المستخدم الواحد في آن واحد متصلاً بعدة عقد، وهذا الحقل يعرض مجموع كل المستخدمين على كل العقد بما في ذلك التكرارات.
- مثال: إذا كان المستخدم X متصلاً بالعقدتين A وB، سيعرض هذا الحقل 2 مستخدم.
- قسم
الإنترنت>متصل- يعرض إجمالي عدد المستخدمين المتصلين دون احتساب التكرارات.
- مثال: إذا كان المستخدم X متصلاً بالعقدتين A وB، سيعرض هذا الحقل 1 مستخدم.
ملاحظة
للمتابعة، يجب تثبيت بعض المفاهيم الأساسية.
Remnawave (كلوحة) – لا تحتوي على نواة Xray، وبالتالي حتى لو أنشأت مستخدماً وضبطت المضيفين والـ inbounds وغيرها، لكن لم تقم بتوصيل Remnawave Node – لن يتمكن المستخدم من الاتصال بالبروكسي. لن تساعد أي إعدادات حتى توصيل Remnawave Node.
لذا، ستكون خطوتنا التالية توصيل Remnawave Node – وسننتقل إلى قسم العقد > الإدارة (Nodes > Management).
لن يتناول هذا المقال كيفية تثبيت Remnawave Node على هذا الخادم أو غيره، للحصول على معلومات تفصيلية حول التثبيت، يرجى الرجوع إلى وثائق التثبيت.
العقد
نحن في قسم
العقد>الإدارة(Nodes>Management)
في أعلى الصفحة يوجد بلوك صغير من 4 بطاقات تعرض بعض الإحصائيات للساعة الحالية. (من بداية الساعة حتى اللحظة الراهنة: إذا فتحت اللوحة في 16:30، ستكون الإحصائيات للفترة من 16:00 حتى 16:30).
أسفل ذلك يوجد بلوك الإجراءات، اختر خيار إنشاء عقدة جديدة (Create new node).
Node vitals
يحتوي هذا البلوك على المعلمات الضرورية التي لا يمكن إنشاء العقدة بدونها.
- البلد – اختر البلد الذي ستوجد فيه العقدة.
- الاسم الداخلي – الاسم الذي سيُستخدم لتعريف العقدة في Remnawave.
- العنوان – عنوان IP للعقدة (يمكن أن يكون أيضاً نطاقاً)
- المنفذ – المنفذ الذي يعمل عليه بالفعل Remnawave Node.
Consumption
المعامل – مضاعف لحركة بيانات المستخدم (1.0 = طبيعي، 0.5 = النصف، 2.0 = مضاعف).
بعبارات بسيطة، يعني ذلك أنه إذا كان حد حركة بيانات المستخدم 1 جيجابايت ومعامل الاستهلاك 2.0، سيتمكن المستخدم من استخدام 0.5 جيجابايت فقط من البيانات (الاستخدام الفعلي)، لكن Remnawave ستعرض الاستخدام كـ 1 جيجابايت وسيُنقل المستخدم إلى حالة LIMITED.
Core Configuration
هذا البلوك أيضاً إلزامي ولا يمكن إنشاء العقدة بدونه.
هنا تحتاج إلى اختيار Config Profile الذي تريد تشغيل العقدة به.
لكن نظراً لأننا بدأنا اللوحة للتو، لدينا ملف تعريف واحد فقط تم إنشاؤه تلقائياً بواسطة اللوحة.
انقر على زر Select config profile (Select config profile) لاختيار الملف الشخصي.
ستفتح قائمة على اليمين يمكنك من خلالها رؤية جميع الملفات الشخصية والـ inbounds الموجودة في كل منها.
المهم الآن هو: يمكننا اختيار ملف تعريف واحد فقط، لأن الملف الشخصي يمثل تكويناً كاملاً لنواة Xray. لذلك من المستحيل تقنياً اختيار ملفات تعريف متعددة.
في الملف الشخصي الافتراضي – يوجد حالياً inbound واحد فقط وهو Shadowsocks.
في المستقبل، إذا كان في ملف تعريف واحد عدة inbounds، ستتمكن من اختيار أيها سيُستخدم على العقدة. ضمن ملف تعريف واحد لا يوجد حد لعدد الـ inbounds النشطة.
نظراً لعدم وجود خيار آخر حالياً، سنختار Shadowsocks.
تأكد من حفظ الاختيار بالنقر على الزر الأزرق في أعلى الشاشة.
Tracking & Billing
يمثل هذا القسم مجموعة من العناصر الاختيارية تماماً والتي لا يجب بالضرورة ملؤها.
-
Infrastructure Provider– هذا المحدد غير متاح حالياً لأننا لم نُنشئ بعد "مزودين" يمكن ربط هذه العقدة بهم. سنفعل ذلك لاحقاً في هذا المقال. باختصار، المزود (أو المضيف) – هو الموقع الذي تستأجر منه VPS/VDS. إذا أنشأت مثل هذا المزود، يمكنك ربط العقدة به، وستعرض Remnawave هذه المعلومات في القائمة العامة للعقد. -
Track traffic usage– يتحكم هذا الخيار في ما إذا كانت Remnawave ستتتبع استخدام حركة البيانات على العقدة. في الواقع، ستتتبع اللوحة وتسجل حركة البيانات على أي حال، لكن إذا فعّلت هذا الخيار وضبطته، عند الوصول إلى الحد – ستُرسل اللوحة إشعاراً بالوصول إلى الحد. وفي اليوم المحدد سيُعاد ضبط هذا الحد.
مثال: لنفترض أننا استأجرنا VPS من مزود الاستضافة Hetzner. يوفرون 20 تيرابايت من حركة البيانات شهرياً. يحسب Hetzner حركة البيانات بنظام IN+OUT، ونظراً لأن استخدام Xray يستهلك حركة بيانات في الاتجاهين – فحدنا الفعلي هو 10 تيرابايت.
في Hetzner تُعاد حركة البيانات في الأول من كل شهر.
بناءً على هذه البيانات، يمكننا ضبط المعلمات التالية:
Traffic limit– حد حركة البيانات بالجيجابايت. في حالتنا هو 10 تيرابايت.Reset day– اليوم الذي سيُعاد فيه ضبط حد حركة البيانات. في حالتنا هو اليوم الأول.Notification %– النسبة المئوية التي سيُرسل عندها إشعار الوصول إلى الحد. في حالتنا هي 90%.
وبهذه المعلمات، ستُرسل Remnawave إشعاراً بالوصول إلى الحد عند استخدام 9 تيرابايت. ثم في اليوم الأول سيُعاد ضبط حركة البيانات وتبدأ العملية من جديد.
Node Management
بعد ملء جميع الحقول الضرورية، يمكننا إنشاء العقدة.
ها نحن مجدداً في القائمة العامة للعقد، وبعد ثوانٍ من إنشاء العقدة – ستتصل Remnawave بها وتشغّل نواة Xray.
يمكن تتبع حالة العقدة عبر الأيقونة على اليسار (في بطاقة كل عقدة في القائمة العامة)، وكذلك عبر لون خلفية البطاقة.
إذا نقرنا على بطاقة العقدة، ستفتح نافذة منبثقة حيث يمكننا تعديل معلمات العقدة والعديد من المعلمات الأخرى.
على سبيل المثال، البلوك المُبرز في لقطة الشاشة أعلاه يظهر حصراً بعد إنشاء العقدة. لنستعرض ما يعنيه:
- على اليسار يمكنك رؤية أيقونة ورقم يشير إلى عدد المستخدمين المتصلين بالعقدة في هذه اللحظة بالذات.
- في الوسط يظهر إصدار نواة Xray التي تعمل على العقدة.
- على اليمين يظهر إصدار Remnawave Node
ظهر أيضاً زر More actions (More actions) الذي يفتح إجراءات إضافية للعقدة.
Show usage– يفتح نافذة منبثقة تعرض إحصائيات استخدام العقدة للفترة المحددة حسب المستخدمين. في الوقت الحالي لا معنى لفتحه لأنه سيكون فارغاً. سنعود إليه لاحقاً.Copy UUID– ينسخ UUID للعقدة، قد يكون مفيداً للعمل مع API.Disable– يعطّل العقدة.Delete– يحذف العقدة.
ملاحظة
لقد أنشأنا بنجاح Remnawave Node وقمنا بتوصيلها. ويبدو أننا جاهزون لإنشاء مستخدم والاتصال، لكن لا.
الخطوة التالية ستكون إنشاء مضيف.
المضيف – هو الكيان الذي "يوجّه" المستخدم إلى إحدى عقدك.
في معظم الحالات سيكون المستخدم بحوزته رابط، يُعرف شعبياً بالاشتراك (أو subscription url) أو ببساطة رابط.
Subscription URL – هو رابط عند فتحه يحصل المستخدم على قائمة المضيفين المتاحين له.
وإلى أين سيتوجه المضيفون – هذا ما سنتناوله الآن.
ولنثبّت المفاهيم:
- المستخدم النهائي بحوزته رابط
- عند إضافته إلى تطبيق العميل، سيحصل المستخدم على قائمة المضيفين المتاحين له
- يختار المستخدم أحد المضيفين للاتصال ويتصل بالعقدة
المضيفون
بعد الانتقال إلى قسم المضيفون (Hosts) اختر خيار إنشاء مضيف (Create host).
ستفتح أمامك نافذة منبثقة.
Host visibility– يتحكم هذا الخيار في ما إذا كان المضيف مرئياً للمستخدمين.- على سبيل المثال، يمكننا إنشاء مضيف لكن تعطيل رؤيته – في هذه الحالة لن يظهر هذا المضيف في اشتراك المستخدم.
Remark– هو "اسم" المضيف الذي سيظهر للمستخدم في تطبيق العميل.
لكن قبل أن نوجّه المضيف إلى إحدى عقدنا، نحتاج إلى اختيار inbound الذي سينتمي إليه هذا المضيف.
الأمر هو أن المضيف (كيان) مرتبط بصرامة بـ inbound واحد محدد، لأن المضيف يرث جميع إعدادات الـ inbound، و"الإعدادات المتقدمة" في بطاقة المضيف تسمح بالكتابة فوق بعضها.
نضغط على زر اختيار الـ inbounds وتفتح أمامنا نافذة Config Profiles المألوفة. ومع ذلك، هذه المرة يمكنك اختيار inbound واحد فقط من أي ملف تعريف أنشأته.
سنختار Shadowsocks ونحفظ التغييرات.
القارئ المنتبه قد يلاحظ أنه بعد اختيار الـ inbound – تم ملء حقل المنفذ تلقائياً. ملاحظة جيدة!
كما ذُكر سابقاً، يرث المضيف جميع معلمات الـ inbound، وبالتالي المنفذ أيضاً.
ملاحظة: في معظم الحالات سيتطابق المنفذ في المضيف مع منفذ الـ inbound، لكن هذا ليس دائماً صحيحاً. في بعض تكوينات Xray قد يختلف منفذ الـ inbound عن منفذ المضيف.
الحقل الوحيد الذي لم نناقشه بعد هو العنوان. له قصة مثيرة للاهتمام، سأشرحها الآن.
في عنوان المضيف يمكنك كتابة عنوان IP أو نطاق. لكن! يجب أن يكون العنوان أو النطاق موجّهاً إلى العقدة التي تريد الاتصال بها.
مثال أساسي: في وقت سابق أضفنا عقدة بعنوان IP 1.2.3.4، ثم أنشأنا سجل A في خادم DNS يشير إلى هذا العنوان.
لنقل: node.domain.com > 1.2.3.4.
هذا يعني أنه في حقل العنوان يمكننا كتابة node.domain.com.
ملاحظة: لكن لماذا لا نستخدم دائماً عنوان IP فقط؟ الأمر هو أن عنوان IP لعقدتك قد يتغير، لكن المضيف نفسه سيبقى كما هو. ولكي يحصل المستخدم النهائي على عنوان IP الجديد، سيحتاج إلى تحديث اشتراكه. وإجراءات "التحديث التلقائي" للاشتراك في تطبيقات العميل قد لا تعمل دائماً.
من ناحية أخرى، إذا كنت تستخدم نطاقاً، فلتحديث عنوان IP لهذا المضيف ستحتاج فقط إلى تحديث سجل DNS. لن تكون هناك حاجة لأي إجراءات إضافية من جانب المستخدم.
دعنا نلقي نظرة على الخيارات المتقدمة المتاحة في بطاقة المضيف. كثير منها يوفر إمكانية الكتابة فوق بعض معلمات الـ inbound من تكوين Xray. على سبيل المثال، SNI يسمح بالكتابة فوق المعلمة المماثلة في تكوين الـ inbound – serverNames. في حالة غياب هذه المعلمة في المضيف، ستستخدم Remnawave المعلمة من تكوين الـ inbound.
بعد إنشاء المضيف، سيظهر في القائمة العامة للمضيفين. بالنقر عليه ستفتح نافذة التعديل.
ملاحظة
لقد أنشأنا مضيفاً سيوجّه المستخدم إلى إحدى عقدنا.
الآن نحتاج إلى إنشاء مستخدم سيستخدم هذا المضيف.
لكن قبل ذلك، دعنا ننظر في ما هو الفريق الداخلي.
في وقت سابق ناقشنا Config Profiles التي تمثل تكوينات كاملة لنواة Xray، وفي بطاقة العقدة كنا نستطيع اختيار الملف الشخصي النشط وتفعيل الـ inbounds.
إذا حاولنا تصور Config Profile كـ"قالب" للعقدة، فـالفريق الداخلي هو "قالب" للمستخدم. لكن ليس قالباً تماماً. بل هو مجموعة أقرب.
يمكن ربط مستخدم واحد بعدة فرق داخلية في آن واحد.
في بطاقة تعديل الفريق الداخلي يمكننا تفعيل/تعطيل الـ inbounds التي ستكون متاحة للمستخدمين الأعضاء في هذا الفريق.
في حالتنا، لدينا فريق داخلي واحد يحتوي على inbound واحد – Shadowsocks.
وهذا يعني أنه إذا أنشأنا مستخدماً وربطناه بهذا الفريق، سيكون لديه وصول إلى Shadowsocks فقط.
لقد شرحنا بالتفصيل بنية ملفات تعريف التكوينات والفرق الداخلية في هذا المقال. المقال متاح باللغة الروسية.
المستخدمون
بعد هذا التحضير الطويل – يمكننا أخيراً إنشاء مستخدم.
سننتقل إلى تبويب المستخدمون (Users) ونختار خيار إنشاء مستخدم (Create user).
في البداية نختار اسم المستخدم، يمكن أن يكون أي شيء، لكن لا يجب أن يحتوي على مسافات.
في قسم Traffic & Limits يمكننا تحديد حدود للمستخدم.
Data limit– حد حركة البيانات بالجيجابايت.Traffic reset strategy– استراتيجية إعادة ضبط حركة البيانات. تحدد عدد مرات إعادة ضبط حد حركة البيانات لهذا المستخدم.
كمثال تعليمي، سنضع حداً بمقدار 1 جيجابايت واستراتيجية إعادة الضبط – إعادة الضبط يومياً.
في قسم Access Settings سنتحكم في مدة صلاحية الاشتراك وسنحدد في أي الفرق الداخلية سيكون المستخدم عضواً.
سنختار مدة اشتراك لمدة شهر واحد ونفعّل الفريق الداخلي الوحيد المتاح.
سنحفظ التغييرات وبعد ذلك سيتم إنشاء مستخدمنا الأول بنجاح.
بعد إنشاء المستخدم سنعود إلى جدول المستخدمين. أرجو الانتباه (المنطقة مُبرزة في لقطة الشاشة أعلاه) إلى الوظائف المتاحة في هذا الجدول. يمكنك إدارة الأعمدة المرئية بمرونة، وتفعيل وضع الشاشة الكاملة، وتفعيل البحث ببعض الحقول. صدقني، الوظائف المتاحة هنا ستفيدك كثيراً في المستقبل.
الحصول على الاشتراك
بعد إنشاء المستخدم يمكننا الحصول على اشتراكه.
لذلك انقر على الزر المُشار إليه في لقطة الشاشة.
الطريقة البديلة – النقر على أيقونة القلم وفتح بطاقة المستخدم.
دعنا نفتحها في المتصفح.
كما نرى، كل شيء يعمل بشكل صحيح.
ملاحظة
لقد أنشأنا المستخدم وحصلنا على اشتراكه.
دعنا نجرب استخدام هذا الاشتراك في تطبيق عميل.
كمثال سنأخذ التطبيق – Clash Verge Rev.
بعد استيراد الاشتراك، يمكننا الاتصال بعقدتنا والتحقق من أن كل شيء يعمل بشكل صحيح.
كما وُعدنا سابقاً، يمكننا الآن رؤية كيف تحدّثت الإحصائيات في الصفحة الرئيسية للوحة وفي بطاقة العقدة.
Config Profiles
لننتقل إلى قسم Config Profiles (Config Profiles).
كما ذُكر سابقاً، Config Profile هو "قالب" للعقدة. يحتوي كل ملف تعريف على تكوين كامل لنواة Xray سيُرسل إلى العقدة عند بدء تشغيل النواة.
دعنا نحاول إنشاء ملف تعريف جديد بالنقر على زر إنشاء ملف تعريف (Create Config Profile).
بعد إدخال اسم الملف الشخصي، سيفتح أمامنا محرر التكوين الكامل.
هنا يمكننا إضافة/حذف الـ inbounds وتعديل جميع معلمات التكوين الأخرى.
لن يشرح هذا المقال كيفية ضبط تكوين نواة Xray بشكل صحيح.
للحصول على معلومات إضافية حول صيغة ووظائف تكوين نواة Xray، نوصي بالرجوع إلى الوثائق الرسمية.
كمثال، دعنا نحمّل تكويناً جاهزاً باستخدام زر تحميل من Github (Load from Github).
لكن نظراً لوجود inbound واحد فقط في هذا القالب، سنضيف inbound ثانياً.
سنضيف الـ inbound الثاني إلى قسم Inbounds (Inbounds)، وسنسميه VLESS.
سنعود إلى القائمة العامة للملفات الشخصية ونرى ما حصلنا عليه.
كما نرى، ظهر في القائمة العامة ملف تعريف جديد – Sample الذي أنشأناه للتو.
أسفل اسم الملف الشخصي يمكننا أيضاً رؤية رمزين بأيقونة وأرقام.
- الأيقونة اليسارية تشير إلى عدد الـ inbounds في الملف الشخصي
- الأيقونة اليمينية تشير إلى عدد العقد التي تستخدم هذا الملف الشخصي
ملف التعريف الجديد يحتوي على 2 inbound، ولا توجد عقدة تستخدمه.
دعنا نحاول تفعيل هذا الملف الشخصي على إحدى عقدنا.
سنعود إلى بطاقة العقدة ونختار لها ملفاً شخصياً مختلفاً، ونفعّل كلا الـ inbounds من هذا الملف الشخصي.
إذا ذهبنا إلى قسم المضيفون (Hosts)، وحاولنا إنشاء مضيف جديد أو تعديل موجود – يمكننا رؤية أنه يمكننا الآن تعيين الـ inbounds المُنشأة حديثاً من الملف الشخصي الجديد للمضيف.
لكن حتى لو فعّلنا الملف الشخصي الجديد على العقدة، وأضفنا مضيفاً وربطناه بالـ inbound الجديد – لن يحصل المستخدمون عليه حتى نضيف الـ inbounds الجديدة إلى الفرق الداخلية.
سنفتح قسم الفرق الداخلية (Internal squads) ونختار فريقنا الوحيد – Default-Squad.
كما نلاحظ، في هذا الفريق لدينا حالياً inbound واحد نشط فقط – Shadowsocks.
دعنا نفعّل أيضاً جميع الـ inbounds الأخرى التي يحتويها ملفنا الشخصي الجديد.
لا تنس حفظ التغييرات بعد التعديل.
لنلخص ما فعلناه:
- أنشأنا ملف تعريف جديداً بـ inbound ين
- فعّلنا هذا الملف الشخصي على إحدى عقدنا
- أضفنا مضيفين سيستخدمان الـ inbounds الجديدة
- أضفنا الـ inbounds الجديدة إلى
الفرق الداخلية
القوالب
في القائمة الجانبية اليسرى للوحة يمكننا رؤية قسم القوالب (Templates).
كما ذُكر سابقاً، بعد إنشاء المستخدم حصلت على اشتراكه (رابطه).
عند فتحه، يحصل المستخدم على قائمة المضيفين المتاحين له.
المشكلة هي أن تطبيقات العميل كثيرة جداً، وبعضها له تنسيق اشتراك خاص به.
يمكن تقسيم تنسيقات الاشتراك إلى أربع مجموعات كبيرة:
Mihomo– التنسيق، خلف تنسيق Clash (الذي بات لا يُستخدم تقريباً الآن)Base64Xray-jsonSing-box
ربما لاحظت أننا عندما فتحنا اشتراكنا في المتصفح سابقاً – كانت صفحة جميلة، لكن عندما أضفناه إلى تطبيق العميل – تمت الإضافة دون أي مشاكل.
تحدد Remnawave تلقائياً من أي عميل (تطبيق عميل) جاء الطلب للحصول على الاشتراك. وبالتالي، عندما فتحنا الاشتراك من المتصفح – حددت Remnawave ذلك وقدمت لنا صفحة جميلة.
عندما يأتي الطلب من تطبيق العميل، ستقدم Remnawave الاشتراك بالتنسيق المناسب حسب نوع العميل.
Mihomo
في البداية، كان هذا التنسيق يُسمى Clash، لكن في الوقت الحالي لم تعد هناك نواة عميل/خادم Clash وحل محلها نواة Mihomo.
يمكن الاطلاع على وثائق Mihomo عبر هذا الرابط.
تطبيقات العميل الشائعة التي تستخدم هذا التنسيق:
هذه ليست القائمة الكاملة للتطبيقات التي تستخدم هذا التنسيق.
Base64
لا يوجد قالب لهذا التنسيق، لأنه أحد أقدم التنسيقات ويتمثل في مجموعة بسيطة من "المضيفين" مفصولين بالرمز \n ومرمّزين في base64.
يُستخدم هذا تنسيق الاشتراك في الحالات التي لا ينتمي فيها تطبيق العميل إلى أي من التنسيقات المذكورة أعلاه.
تطبيقات العميل الشائعة التي تستخدم هذا التنسيق:
Xray-json
أحد أحدث التنسيقات، يُستخدم في تطبيقات العميل التي تستخدم نواة Xray.
تطبيقات العميل الشائعة التي تستخدم هذا التنسيق:
Sing-box
يُعدّ مكافئاً لتنسيق Xray-json، لكنه يُستخدم في تطبيقات العميل التي تستخدم نواة Sing-box.
تطبيقات العميل الشائعة التي تستخدم هذا التنسيق: