الانتقال إلى المحتوى الرئيسي

دليل مستخدم mudfish-exclude

معلومات

يتوفر هذا البرنامج فقط في Mudfish Cloud VPN 6.5.4 أو أحدث.

mudfish-exclude أداة سطر أوامر لـ Mudfish على Linux، تشغّل برامج محددة مع استبعادها من مسار Mudfish. تفيد خصوصًا عند استخدام Full VPN والرغبة في إرسال حركة المتصفح أو تطبيق المراسلة أو مشغّل الفيديو أو أداة التنزيل مباشرةً عبر اتصال الإنترنت الأصلي.

일반 프로그램       -> 미꾸라지 경로 -> 중계 서버
mudfish-exclude 앱 -> 기존 기본 경로 -> 인터넷

يوضح المخطط الكوري أعلاه أن البرامج العادية تمر عبر مسار Mudfish إلى خادم الترحيل، بينما تتبع التطبيقات المشغّلة بـ mudfish-exclude المسار الافتراضي الأصلي إلى الإنترنت.

لا تضيف هذه الأداة إعدادات إلى لوحة تحكم Mudfish. شغّلوا البرنامج المراد استبعاده بواسطة mudfish-exclude بدلًا من أمر تشغيله المعتاد.

نطاق الدعم: تدعم حاليًا Linux وIPv4 فقط. لا تتوفر على Windows أو macOS أو Android، ولا تطبّق سياسة تجاوز منفصلة لحركة IPv6.

المتطلبات​

يجب استيفاء جميع الشروط التالية.

  • تثبيت Mudfish لنظام Linux.
  • تركيب cgroup v2 في /sys/fs/cgroup.
  • توفر الأمرين ip وiptables ودعم cgroup match في iptables.
  • توفر صلاحيات sudo لضبط التوجيه القائم على السياسات وقواعد جدار الحماية.
  • وجود مسار IPv4 افتراضي صالح في جدول التوجيه main لنظام Linux.

يوجد الملف التنفيذي عادةً في المسار التالي. يمثّل النص الكوري بين القوسين إصدار Mudfish.

/opt/mudfish/<미꾸라지 버전>/bin/mudfish-exclude

يمكن العثور على مسار التثبيت الحالي بالأمر التالي.

ls /opt/mudfish/*/bin/mudfish-exclude

إذا لم يكن الملف التنفيذي مسجّلًا في PATH، فاستبدلوا mudfish-exclude في الأمثلة بالمسار الكامل الذي وجدتموه. مثلًا، مسار التثبيت الافتراضي للإصدار 6.5.4 هو /opt/mudfish/6.5.4/bin/mudfish-exclude.

الاستخدام الأساسي​

  1. شغّلوا Mudfish واتصلوا بصورة طبيعية باستخدام العنصر المطلوب أو وضع Full VPN.
  2. إذا كان البرنامج المراد استبعاده يعمل بالفعل، فأغلقوه تمامًا، بما يشمل عمليات علبة النظام والخلفية.
  3. أعيدوا تشغيله من الطرفية بالصيغة التالية. تشير العناصر النائبة الكورية إلى البرنامج وخياراته.
sudo mudfish-exclude <프로그램> [프로그램 옵션...]

مثلًا، لاستبعاد Discord من Mudfish:

sudo mudfish-exclude discord

لاستبعاد Firefox وفتح نافذة خاصة:

sudo mudfish-exclude firefox --private-window

إذا احتوى مسار الملف التنفيذي على مسافات، فضعوه بين علامتي اقتباس.

sudo mudfish-exclude "/path/to/My Program" --option

تُستخدم sudo لضبط سياسة الشبكة. أما البرنامج الذي تشغّلونه بواسطة sudo mudfish-exclude ...، فيعمل، متى أمكن، باستخدام UID وGID ومجلد المنزل وبيئة جلسة سطح المكتب للمستخدم الأصلي الذي استدعى sudo.

ما يجب معرفته​

  • تُطبّق سياسة الاستبعاد على العملية التي يبدأها mudfish-exclude حديثًا وعملياتها الفرعية.
  • لا يمكن إلحاق السياسة ببرنامج يعمل بالفعل. أغلقوا البرنامج تمامًا أولًا، كي لا يعيد البرنامج أحادي النسخة استخدام عملية موجودة.
  • في أسلوب التشغيل المعتاد لمرة واحدة، تُنظّف السياسة تلقائيًا عند انتهاء البرنامج وجميع عملياته الفرعية.
  • يمكن تشغيل عدة أوامر mudfish-exclude في وقت واحد. تُنظّف السياسة المشتركة بعد انتهاء آخر برنامج مستبعد.
  • لا تستخدم حركة IPv4 للبرنامج المستبعد خادم ترحيل Mudfish أو وظائف التسريع أو عنوان IP العام الخاص بذلك المسار.

التحقق من العمل الصحيح​

يسهل التحقق عندما يختلف عنوان IPv4 العام قبل اتصال Full VPN عن عنوان IPv4 العام لخادم Full VPN.

تحقّقوا أولًا من العنوان في طرفية عادية أثناء اتصال Full VPN.

curl -4 https://myip.mudfish.net

نفّذوا الأمر نفسه باستخدام mudfish-exclude.

sudo mudfish-exclude curl -4 https://myip.mudfish.net

يجب أن تعرض النتيجة الأولى عنوان جانب خادم ترحيل Mudfish، والثانية عنوان اتصال الإنترنت الأصلي. يفرض الخيار -4 الاختبار عبر IPv4 فقط، بما يتوافق مع نطاق دعم الأداة.

للتحقق عبر المتصفح، أغلقوه تمامًا ثم شغّلوه كما يلي وافتحوا https://myip.mudfish.net.

sudo mudfish-exclude firefox

الإغلاق وتنظيف السياسات​

لا يلزم أمر تنظيف منفصل عند الإغلاق الطبيعي. لكن قد تبقى السياسة إذا أُنهيت عملية mudfish-exclude قسرًا، أو أُغلقت الطرفية بصورة غير طبيعية، أو توقف النظام.

أغلقوا أولًا جميع البرامج المشغّلة بهذه الأداة، ثم نفّذوا:

sudo mudfish-exclude --cleanup

قد يؤدي استخدام --cleanup أثناء عمل برامج مستبعدة إلى إيقاف تجاوزها فورًا.

خيارات الأوامر​

تعني صيغة الاستخدام الكورية أدناه: mudfish-exclude، ثم خيارات الأداة، ثم البرنامج وخياراته.

사용법: mudfish-exclude [옵션] 프로그램 [프로그램 옵션...]
الخيارالوصف
-h, --helpيعرض المساعدة.
--setupيضبط سياسة شبكة الاستبعاد فقط ثم ينتهي. لا يمكن تحديد برنامج معه.
--cleanupيزيل سياسة شبكة الاستبعاد ثم ينتهي. لا يمكن تحديد برنامج معه.
--no-setupيدخل cgroup المحددة ويشغّل البرنامج دون إعادة إعداد السياسة الحالية.
--cgroup NAMEيحدّد اسم cgroup v2 المستخدم. الافتراضي mudfish-exclude.
--mark VALUEيحدّد علامة جدار الحماية للحزم. الافتراضي 0x6d660001.
--priority VALUEيحدّد أولوية قاعدة سياسة IPv4. الافتراضي 8252.
--table VALUEيحدّد رقم جدول التوجيه الذي سيحتوي على المسار الافتراضي الأصلي. الافتراضي 8252.

لتحديد نهاية خيارات الأداة بوضوح، يمكن كتابة البرنامج بعد --.

sudo mudfish-exclude -- firefox --private-window

إعادة استخدام السياسة لعدة برامج​

نوصي المستخدمين العاديين بتشغيل كل برنامج بالطريقة المعتادة لمرة واحدة. إذا احتجتم إلى إعداد السياسة يدويًا مرة واحدة وإعادة استخدامها في عدة أوامر، فاتبعوا الترتيب التالي.

sudo mudfish-exclude --setup
sudo mudfish-exclude --no-setup discord
sudo mudfish-exclude --no-setup firefox

بعد إغلاق جميع البرامج، يجب تنظيف السياسة.

sudo mudfish-exclude --cleanup

لا ينفّذ الأسلوب اليدوي تنظيفًا تلقائيًا. وقد تنتقل بعض برامج سطح المكتب أثناء التشغيل إلى cgroup أخرى تابعة لـ systemd؛ لهذه البرامج، يناسب أكثر أسلوب التشغيل الافتراضي لمرة واحدة، الذي يتتبع انتقال cgroup وينظّف السياسة تلقائيًا.

إذا غيّرتم قيم --cgroup أو --mark أو --priority أو --table، فيجب استخدام القيم نفسها مع --setup و--no-setup و--cleanup. يجب ألا تتعارض القيم المخصصة مع علامات جدار الحماية أو قواعد التوجيه القائم على السياسات الموجودة في النظام.

استكشاف المشكلات وإصلاحها​

mudfish-exclude: command not found​

الملف التنفيذي غير موجود ضمن PATH. اعثروا على موقع التثبيت بالأمر التالي، ثم شغّلوه بالمسار الكامل.

ls /opt/mudfish/*/bin/mudfish-exclude
sudo /opt/mudfish/6.5.4/bin/mudfish-exclude discord

استبدلوا رقم الإصدار في الأمر الثاني بالإصدار المثبّت لديكم.

network policy setup requires root​

لا تتوفر صلاحيات إعداد سياسة الشبكة. أضيفوا sudo في بداية الأمر وأعيدوا تنفيذه.

sudo mudfish-exclude discord

cgroup v2 is required at /sys/fs/cgroup​

النظام الحالي لا يستخدم cgroup v2 أو لم يركّبها في الموقع المطلوب. يمكن التحقق بالأمر التالي؛ الرسالة الكورية الناتجة تعني أن cgroup v2 متاحة.

test -f /sys/fs/cgroup/cgroup.controllers && echo "cgroup v2 사용 가능"

إذا لم تظهر أي نتيجة، فراجعوا طريقة تفعيل cgroup v2 في توزيعتكم.

iptables rule add failed أو خطأ cgroup match​

تحقّقوا من تثبيت iptables ومن دعم النواة وiptables لوظيفة cgroup match. حتى في التوزيعات المبنية على nftables، تستخدم الأداة أمر التوافق iptables مباشرةً، ولذلك تحتاج إلى طبقة توافق iptables تعمل بصورة صحيحة.

failed to find the IPv4 default route​

لم يُعثر على المسار الافتراضي IPv4 لاتصال الإنترنت الأصلي في جدول التوجيه main. تحقّقوا من وجود مسار default في نتيجة الأمر التالي.

ip -4 route show default table main

إذا لم يوجد مسار افتراضي أو كان يشير بالفعل إلى واجهة VPN أخرى، فلن يستطيع mudfish-exclude إعداد مسار الإنترنت الأصلي.

لم يتغير عنوان IP العام رغم الاستبعاد​

تحقّقوا بالترتيب من التالي.

  1. تأكدوا من اتصال Full VPN فعليًا وظهور عنوان IP لخادم الترحيل عند التشغيل العادي.
  2. أغلقوا جميع العمليات الحالية والخلفية للبرنامج المستهدف ثم أعيدوا تشغيله.
  3. استخدموا curl -4 أو وسيلة للتحقق من IPv4 لتجنب الخلط مع نتائج IPv6.
  4. تحقّقوا مما إذا كان البرنامج يمرّر أوامره إلى خدمة منفصلة أو Launcher يعمل بالفعل. تُطبّق سياسة الاستبعاد فقط على سلسلة العمليات التي أنشأها mudfish-exclude حديثًا.
  5. تأكدوا من أن المسار الافتراضي في ip -4 route show default table main يشير إلى واجهة الإنترنت الفعلية.

أغلقت البرنامج لكن أمر الطرفية لم ينتهِ​

قد تكون عملية فرعية أو خلفية لا تزال تعمل داخل cgroup المستبعدة. أغلقوا أيضًا أيقونات علبة النظام وLaunchers وعمليات التحديث ذات الصلة. ينتظر أسلوب التشغيل الافتراضي انتهاء جميع العمليات الفرعية ثم ينظّف السياسة.

أصبحت الشبكة غير طبيعية بعد إنهاء غير طبيعي​

أغلقوا جميع البرامج المشغّلة بهذه الأداة، ثم نظّفوا السياسات المتبقية.

sudo mudfish-exclude --cleanup

إذا استمرت المشكلة، فأغلقوا Mudfish وافحصوا المسار الافتراضي للنظام وقواعد iptables، ثم أعيدوا الاتصال.

آلية العمل​

يضع mudfish-exclude البرنامج في cgroup v2 منفصلة، ويعيّن علامة iptables لحزم IPv4 الصادرة منها. تُوجَّه الحزم التي تحمل العلامة عبر جدول توجيه سياسات منفصل إلى المسار الافتراضي الموجود في جدول Linux main، مع تطبيق NAT MASQUERADE اللازم.

لا تعدّل هذه العملية إعدادات mudrun أو mudflow أو mudfish أو mudwfp_proxy، ولا حالة الذاكرة المشتركة. تعمل سياسة الاستبعاد فقط في طبقات cgroup وiptables والتوجيه القائم على سياسات IPv4 في نظام التشغيل.