دليل مستخدم 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.
الاستخدام الأساسي
- شغّلوا Mudfish واتصلوا بصورة طبيعية باستخدام العنصر المطلوب أو وضع Full VPN.
- إذا كان البرنامج المراد استبعاده يعمل بالفعل، فأغلقوه تمامًا، بما يشمل عمليات علبة النظام والخلفية.
- أعيدوا تشغيله من الطرفية بالصيغة التالية. تشير العناصر النائبة الكورية إلى البرنامج وخياراته.
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 العام رغم الاستبعاد
تحقّقوا بالترتيب من التالي.
- تأكدوا من اتصال Full VPN فعليًا وظهور عنوان IP لخادم الترحيل عند التشغيل العادي.
- أغلقوا جميع العمليات الحالية والخلفية للبرنامج المستهدف ثم أعيدوا تشغيله.
- استخدموا
curl -4أو وسيلة للتحقق من IPv4 لتجنب الخلط مع نتائج IPv6. - تحقّقوا مما إذا كان البرنامج يمرّر أوامره إلى خدمة منفصلة أو Launcher يعمل بالفعل. تُطبّق سياسة الاستبعاد فقط على سلسلة العمليات التي أنشأها
mudfish-excludeحديثًا. - تأكدوا من أن المسار الافتراضي في
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 في نظام التشغيل.