mudfish-exclude foydalanuvchi qoʻllanmasi
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/cgroupmanziliga ulangan (mount) boʻlishi kerak. ipvaiptablesbuyruqlari hamda iptables-ning cgroup match imkoniyati mavjud boʻlishi kerak.- Marshrutlash siyosati va xavfsizlik devori (firewall) qoidalarini sozlash uchun
sudohuquqi 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
- Mudfish-ni ishga tushiring va kerakli element yoki Full VPN rejimiga toʻliq ulaning.
- Istisno qilinadigan dastur allaqachon ishlab turgan boʻlsa, trey va fon jarayonlarini toʻliq yoping.
- 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-excludebilan 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-excludebuyrugʻ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,
--cleanupbuyrugʻi ularning aylanib oʻtish (bypass) rejimini darhol toʻxtatib qoʻyishi mumkin.
Buyruq parametrlari
Foydalanish: mudfish-exclude [parametrlar] dastur [dastur parametrlari...]
| Parametr | Tavsif |
|---|---|
-h, --help | Yordam maʼlumotlarini chiqaradi. |
--setup | Faqat istisno qilish uchun tarmoq siyosatini sozlaydi va tugaydi. Dastur bilan birga koʻrsatib boʻlmaydi. |
--cleanup | Istisno qilish tarmoq siyosatini olib tashlaydi va tugaydi. Dastur bilan birga koʻrsatib boʻlmaydi. |
--no-setup | Mavjud siyosatni qayta sozlamasdan, koʻrsatilgan cgroup ichida dasturni ishga tushiradi. |
--cgroup NAME | Foydalaniladigan cgroup v2 nomini belgilaydi. Standart qiymat: mudfish-exclude. |
--mark VALUE | Paketlar uchun foydalaniladigan xavfsizlik devori belgisini (mark) koʻrsatadi. Standart qiymat: 0x6d660001. |
--priority VALUE | IPv4 policy rule ustuvorligini belgilaydi. Standart qiymat: 8252. |
--table VALUE | Standart 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:
- Full VPN rejimi haqiqatan ulanganini va oddiy ishga tushirishda rele serveri IP-si koʻrinayotganini tekshiring.
- Kerakli dasturning barcha mavjud va fon jarayonlarini yopib, qayta ishga tushiring.
- IPv6 natijalari bilan adashib ketmaslik uchun
curl -4yoki IPv4 tekshirish usulidan foydalaning. - Tegishli dastur buyruqlarni alohida xizmatga yoki allaqachon ishlab turgan ishga tushiruvchiga (launcher) uzatayotganini tekshiring. Istisno siyosati faqat
mudfish-excludetomonidan yangi yaratilgan jarayonlar zanjiriga tatbiq etiladi. ip -4 route show default table mainbuyrugʻ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.