Asosiy tarkibga oʻtish

mudfish-exclude foydalanuvchi qoʻllanmasi

Maʼlumot

Ushbu dastur faqat Linux uchun Mudfish Cloud VPN 6.5.4 yoki undan yuqori versiyalarida mavjud.

mudfish-exclude — Linux uchun Mudfish-da maʼlum dasturlarni Mudfish yoʻnalishidan chiqarib tashlab (istisno qilib) ishga tushirish uchun buyruqlar satri vositasidir. Ayniqsa, Full VPN rejimidan foydalanganda brauzer, messenjer, media pleyer yoki yuklab olish vositalari kabi dasturlarning trafigini mavjud oddiy internet tarmogʻi orqali toʻgʻridan-toʻgʻri yoʻnaltirishni xohlasangiz foydalidir.

Oddiy dasturlar     -> Mudfish yoʻnalishi -> Rele serveri
mudfish-exclude ilovasi -> Standart asosiy yoʻnalish -> Internet

Ushbu vosita Mudfish boshqaruv paneliga qoʻshimcha sozlamalar kiritmaydi. Istisno qilinishi kerak boʻlgan dasturni odatdagi buyruq oʻrniga mudfish-exclude bilan ishga tushirish kifoya.

Qoʻllab-quvvatlash doirasi: Hozirda faqat Linux va IPv4 qoʻllab-quvvatlanadi. Windows, macOS va Android-da ishlamaydi, IPv6 trafigiga alohida chetlab oʻtish qoidasi tatbiq etilmaydi.

Talab qilinadigan muhit​

Quyidagi barcha shartlar bajarilgan boʻlishi kerak:

  • Linux uchun Mudfish oʻrnatilgan boʻlishi kerak.
  • cgroup v2 /sys/fs/cgroup manziliga ulangan (mount) boʻlishi kerak.
  • ip va iptables buyruqlari hamda iptables-ning cgroup match imkoniyati mavjud boʻlishi kerak.
  • Marshrutlash siyosati va xavfsizlik devori (firewall) qoidalarini sozlash uchun sudo huquqi boʻlishi kerak.
  • Linux-ning asosiy (main) marshrutlash jadvalida toʻgʻri IPv4 standart yoʻnalishi (default route) boʻlishi kerak.

Oʻrnatilgan ijro fayli odatda quyidagi manzilda joylashadi:

/opt/mudfish/<Mudfish versiyasi>/bin/mudfish-exclude

Oʻrnatilgan yoʻlni quyidagi buyruq orqali topishingiz mumkin:

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

Agar ijro fayli PATH oʻzgaruvchisiga qoʻshilmagan boʻlsa, quyidagi misollardagi mudfish-exclude oʻrniga yuqorida topilgan toʻliq yoʻlni yozing. Masalan, 6.5.4 versiyasida standart yoʻl /opt/mudfish/6.5.4/bin/mudfish-exclude koʻrinishida boʻladi.

Asosiy foydalanish usuli​

  1. Mudfish-ni ishga tushiring va kerakli element yoki Full VPN rejimiga toʻliq ulaning.
  2. Istisno qilinadigan dastur allaqachon ishlab turgan boʻlsa, trey va fon jarayonlarini toʻliq yoping.
  3. Terminalda dasturni quyidagi formatda qayta ishga tushiring:
sudo mudfish-exclude <dastur> [dastur parametrlari...]

Masalan, Discord-ni Mudfish-dan istisno qilish uchun quyidagicha ishga tushirasiz:

sudo mudfish-exclude discord

Firefox-ni istisno qilib, maxfiy oyna (private window) rejimida ochish uchun:

sudo mudfish-exclude firefox --private-window

Agar ijro fayli yoʻlida boʻsh joylar boʻlsa, uni qoʻshtirnoqqa oling:

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

sudo tarmoq siyosatini sozlash uchun ishlatiladi. sudo mudfish-exclude ... orqali ishga tushirilgan dasturning oʻzi esa imkon qadar sudo ni chaqirgan asl foydalanuvchining UID, GID, uy katalogi va ish stoli seansi muhiti bilan ishga tushadi.

Eʼtibor berish kerak boʻlgan jihatlar​

  • Istisno siyosati faqat mudfish-exclude bilan yangi boshlangan jarayon va uning bolalar jarayonlariga (child processes) nisbatan qoʻllaniladi.
  • Allaqachon ishlab turgan dasturga ushbu siyosatni keyinchalik biriktirib boʻlmaydi. Bitta nusxada ishlaydigan (single-instance) dasturlar mavjud jarayondan qayta foydalanmasligi uchun avval ularni butunlay yopish shart.
  • Standart bir martalik ishga tushirishda, dastur va barcha bolalar jarayonlari yopilganda qoidalar avtomatik ravishda tozalanadi.
  • Bir vaqtning oʻzida bir nechta mudfish-exclude buyrugʻini ishga tushirish mumkin. Umumiy siyosat oxirgi istisno qilingan dastur yopilgandan keyin tozalanadi.
  • Istisno qilingan dasturning IPv4 trafigi Mudfish rele serveridan, tezlashtirish funksiyasidan va ushbu yoʻnalishdagi ochiq IP-dan foydalanmaydi.

Toʻgʻri ishlashini tekshirish​

Buni Full VPN ulanishidan oldingi ochiq IPv4 manzili va Full VPN rele serverining ochiq IPv4 manzili turlicha boʻlganda oson tekshirish mumkin.

Avval Full VPN ulangan oddiy terminalda manzilni tekshiring:

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

Xuddi shu buyruqni mudfish-exclude bilan ishga tushiring:

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

Birinchi natija Mudfish rele serverining manzili, ikkinchi natija esa mavjud internet provayderingizning manzili boʻlishi kerak. -4 parametri ushbu vosita faqat IPv4 ni qoʻllab-quvvatlagani uchun faqat IPv4 orqali tekshirish uchun koʻrsatilgan.

Brauzer orqali tekshirishda brauzerni toʻliq yopib, quyidagicha ishga tushiring va https://myip.mudfish.net sahifasiga kiring:

sudo mudfish-exclude firefox

Dasturni toʻxtatish va siyosatlarni tozalash​

Odatdagi tarzda yopilganda alohida tozalash buyrugʻi talab qilinmaydi. Biroq mudfish-exclude jarayoni majburiy toʻxtatilsa, terminal favqulodda yopilsa yoki tizimda uzilish boʻlsa, siyosatlar tizimda qolib ketishi mumkin.

Dastlab ushbu vosita orqali ishga tushirilgan barcha dasturlarni toʻliq yoping, soʻng quyidagi buyruqni bajaring:

sudo mudfish-exclude --cleanup

Agar fonda ishlayotgan istisno dasturlari mavjud boʻlsa, --cleanup buyrugʻi ularning aylanib oʻtish (bypass) rejimini darhol toʻxtatib qoʻyishi mumkin.

Buyruq parametrlari​

Foydalanish: mudfish-exclude [parametrlar] dastur [dastur parametrlari...]
ParametrTavsif
-h, --helpYordam maʼlumotlarini chiqaradi.
--setupFaqat istisno qilish uchun tarmoq siyosatini sozlaydi va tugaydi. Dastur bilan birga koʻrsatib boʻlmaydi.
--cleanupIstisno qilish tarmoq siyosatini olib tashlaydi va tugaydi. Dastur bilan birga koʻrsatib boʻlmaydi.
--no-setupMavjud siyosatni qayta sozlamasdan, koʻrsatilgan cgroup ichida dasturni ishga tushiradi.
--cgroup NAMEFoydalaniladigan cgroup v2 nomini belgilaydi. Standart qiymat: mudfish-exclude.
--mark VALUEPaketlar uchun foydalaniladigan xavfsizlik devori belgisini (mark) koʻrsatadi. Standart qiymat: 0x6d660001.
--priority VALUEIPv4 policy rule ustuvorligini belgilaydi. Standart qiymat: 8252.
--table VALUEStandart yoʻnalishni saqlaydigan marshrutlash jadvali raqamini belgilaydi. Standart qiymat: 8252.

Parametrlarni ajratishni aniq koʻrsatish uchun dasturdan oldin -- belgisini qoʻyishingiz mumkin:

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

Siyosatni bir nechta dasturda qayta ishlatish​

Oddiy foydalanuvchilar uchun dasturni har gal bir martalik ishga tushirish usuli tavsiya etiladi. Agar siyosatni bir marta qoʻlda sozlab, uni bir nechta buyruqlarda qayta ishlatmoqchi boʻlsangiz, quyidagi ketma-ketlikda bajarishingiz mumkin:

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

Barcha dasturlar yopilgach, albatta siyosatlarni tozalang:

sudo mudfish-exclude --cleanup

Qoʻlda boshqarish usulida avtomatik tozalash amalga oshirilmaydi. Shuningdek, baʼzi ish stoli dasturlari ish jarayonida systemd-ning boshqa cgroup-iga oʻtib ketishi mumkin, shuning uchun bunday dasturlarga cgroup harakatini kuzatib boruvchi va avtomatik tozalovchi standart bir martalik usul koʻproq mos keladi.

Agar --cgroup, --mark, --priority, --table qiymatlarini oʻzgartirgan boʻlsangiz, --setup, --no-setup va --cleanup buyruqlarida ham bir xil qiymatlardan foydalanishingiz kerak. Belgilangan qiymatlar tizimdagi mavjud xavfsizlik devori markalari yoki policy routing qoidalari bilan toʻqnashmasligi lozim.

Nosozliklarni bartaraf etish​

mudfish-exclude: command not found​

Ijro fayli PATH muhit oʻzgaruvchisida mavjud emas. Quyidagi buyruq bilan oʻrnatilgan manzilni toping va toʻliq yoʻl bilan ishga tushiring:

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

Ikkinchi buyruqdagi versiya raqamini tizimingizdagi haqiqiy oʻrnatilgan versiyaga moslang.

network policy setup requires root​

Tarmoq siyosatini sozlash uchun huquq yetarli emas. Buyruq oldiga sudo qoʻshib qayta ishga tushiring:

sudo mudfish-exclude discord

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

Joriy tizim cgroup v2 dan foydalanmayapti yoki u ushbu manzilga ulanmagan. Buni quyidagi buyruq bilan tekshirishingiz mumkin:

test -f /sys/fs/cgroup/cgroup.controllers && echo "cgroup v2 mavjud"

Agar hech narsa chiqmasa, Linux distributivingizda cgroup v2 ni yoqish usulini tekshirib koʻring.

iptables rule add failed yoki cgroup match xatosi​

iptables oʻrnatilganligini hamda yadro (kernel) va iptables cgroup match imkoniyatini qoʻllab-quvvatlashini tekshiring. nftables asosidagi distributivlarda ham ushbu vosita toʻgʻridan-toʻgʻri iptables mos buyruqlaridan foydalanadi, shuning uchun toʻgʻri ishlaydigan iptables moslik qatlami talab qilinadi.

failed to find the IPv4 default route​

Asosiy (main) marshrutlash jadvalida internet tarmogʻining IPv4 standart yoʻnalishi topilmadi. Quyidagi buyruq natijasida default yoʻnalishi borligini tekshiring:

ip -4 route show default table main

Agar standart yoʻnalish boʻlmasa yoki u boshqa VPN interfeysiga koʻrsatib turgan boʻlsa, mudfish-exclude dastlabki internet yoʻnalishini yarata olmaydi.

Istisno qilingan boʻlsa ham ochiq IP oʻzgarmayapti​

Quyidagilarni ketma-ketlikda tekshiring:

  1. Full VPN rejimi haqiqatan ulanganini va oddiy ishga tushirishda rele serveri IP-si koʻrinayotganini tekshiring.
  2. Kerakli dasturning barcha mavjud va fon jarayonlarini yopib, qayta ishga tushiring.
  3. IPv6 natijalari bilan adashib ketmaslik uchun curl -4 yoki IPv4 tekshirish usulidan foydalaning.
  4. Tegishli dastur buyruqlarni alohida xizmatga yoki allaqachon ishlab turgan ishga tushiruvchiga (launcher) uzatayotganini tekshiring. Istisno siyosati faqat mudfish-exclude tomonidan yangi yaratilgan jarayonlar zanjiriga tatbiq etiladi.
  5. ip -4 route show default table main buyrugʻidagi asosiy yoʻnalish haqiqiy internet interfeysiga qaratilganligiga ishonch hosil qiling.

Dasturni yopsam ham terminaldagi buyruq tugamayapti​

Bolalar yoki fon jarayonlari hali ham istisno cgroup-da ishlab turgan boʻlishi mumkin. Tegishli trey belgilari, ishga tushiruvchi va yangilanish jarayonlarini toʻliq yoping. Standart ishga tushirish barcha bolalar jarayonlari toʻxtaguncha kutadi va shundan keyingina siyosatni tozalaydi.

Notoʻgʻri yopilgandan soʻng tarmoq ishlamay qoldi​

Ushbu vosita yordamida ishga tushirilgan barcha dasturlarni yoping va qolgan siyosatlarni tozalang:

sudo mudfish-exclude --cleanup

Shundan keyin ham muammo davom etsa, Mudfish dasturini yopib, tizimning standart yoʻnalishlari va iptables qoidalarini tekshiring hamda qayta ulaning.

Ishlash printsipi​

mudfish-exclude ishga tushiriladigan dasturni alohida cgroup v2 ga joylashtiradi va ushbu cgroup-dan chiquvchi IPv4 paketlariga iptables mark belgisini oʻrnatadi. Ushbu belgiga ega paketlar alohida policy routing jadvali orqali Linux main jadvalidagi standart yoʻnalishga yoʻnaltiriladi va zarur boʻlgan NAT MASQUERADE qoʻllaniladi.

Bu jarayon mudrun, mudflow, mudfish, mudwfp_proxy sozlamalari yoki umumiy xotira (shared memory) holatini oʻzgartirmaydi. Istisno siyosati faqat operatsion tizimning cgroup, iptables va IPv4 policy routing darajasida ishlaydi.