Əsas məzmuna keç

mudfish-exclude İstifadəçi Təlimatı

Məlumat

Bu proqram yalnız Linux üçün Mudfish Cloud VPN 6.5.4 və ya daha yeni versiyalarda mövcuddur.

mudfish-exclude Linux üçün Mudfish-də yalnız müəyyən proqramları Mudfish marşrutundan kənarda saxlayaraq işə salmaq üçün nəzərdə tutulmuş əmr sətiri alətidir. Xüsusilə Tam VPN (Full VPN) rejimindən istifadə edərkən brauzer, messencer, video pleyer, yükləmə vasitələri və s. kimi tətbiqlərin trafikini birbaşa mövcud internet xəttiniz vasitəsilə göndərmək istədikdə istifadə oluna bilər.

Standart proqramlar    -> Mudfish marşrutu  -> Rele serveri
mudfish-exclude tətbiqi -> Mövcud standart yol -> İnternet

Bu alət Mudfish idarəetmə panelinə yeni parametrlər əlavə etmir. Sadəcə istisna etmək istədiyiniz proqramı adi icra əmri əvəzinə mudfish-exclude ilə başlatmaq kifayətdir.

Dəstək dairəsi: Hazırda yalnız Linux və IPv4 dəstəklənir. Windows, macOS və Android-də istifadə edilə bilməz və IPv6 trafiki üçün xüsusi yan keçmə qaydaları tətbiq olunmur.

Tələb Olunan Mühit​

Aşağıdakı şərtlərin hamısı yerinə yetirilməlidir:

  • Linux üçün Mudfish quraşdırılmış olmalıdır.
  • cgroup v2 /sys/fs/cgroup ünvanına qoşulmuş (mount) olmalıdır.
  • ip və iptables əmrləri, eləcə də iptables-in cgroup match funksiyası istifadə edilə bilən olmalıdır.
  • Siyasət marşrutlaşdırması (policy routing) və firewall qaydalarını təyin etmək üçün sudo səlahiyyəti olmalıdır.
  • Linux-un əsas (main) marşrutlaşdırma cədvəlində normal IPv4 standart çıxış yolu (default route) mövcud olmalıdır.

Quraşdırılmış icra faylı adətən aşağıdakı yerdə yerləşir:

/opt/mudfish/<mudfish_versiyası>/bin/mudfish-exclude

Cari quraşdırma yolunu aşağıdakı əmrlə tapa bilərsiniz:

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

İcra faylı PATH dəyişəninə daxil edilməyibsə, aşağıdakı nümunələrdə mudfish-exclude əvəzinə yuxarıda yoxladığınız tam yolu qeyd edin. Məsələn, 6.5.4 versiyasının standart quraşdırma yolu /opt/mudfish/6.5.4/bin/mudfish-exclude-dir.

Əsas İstifadə Qaydası​

  1. Mudfish-i başladın və istədiyiniz elementi və ya Tam VPN rejimini normal qaydada qoşun.
  2. İstisna ediləcək proqram artıq işləyirsə, onu sistem tepsisindəki (tray) və arxa fondakı proseslər daxil olmaqla tamamilə bağlayın.
  3. Terminalda proqramı aşağıdakı formatda yenidən işə salın:
sudo mudfish-exclude <proqram> [proqram seçimləri...]

Məsələn, Discord-u Mudfish-dən istisna etmək üçün aşağıdakı kimi icra edin:

sudo mudfish-exclude discord

Firefox-u istisna edərək gizli pəncərə ilə açmaq üçün:

sudo mudfish-exclude firefox --private-window

İcra faylının yolunda boşluq varsa, dırnaq içinə alın:

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

sudo şəbəkə siyasətini qurmaq üçün tələb olunur. sudo mudfish-exclude ... vasitəsilə işə salınan proqramın özü isə mümkün olduqda sudo çağıran ilkin istifadəçinin UID, GID, ev qovluğu və masaüstü sessiya mühiti ilə işə düşür.

Diqqət Yetirilməli Məqamlar​

  • İstisna siyasəti mudfish-exclude ilə yeni başladılmış prosesə və onun törəmə (child) proseslərinə tətbiq edilir.
  • Artıq işləyən proqrama sonradan siyasət əlavə edilə bilməz. Tək instansiyalı (single-instance) proqramların mövcud prosesdən yenidən istifadə etməsinin qarşısını almaq üçün əvvəlcə onları tamamilə bağlamaq lazımdır.
  • Standart birbaşa işə salma üsulunda, proqram və onun bütün törəmə prosesləri bitdikdə siyasət avtomatik təmizlənir.
  • Eyni vaxtda bir neçə mudfish-exclude əmri icra edilə bilər. Ümumi siyasət ən sonuncu istisna edilmiş proqram qapandıqdan sonra təmizlənir.
  • İstisna edilmiş proqramın IPv4 trafiki Mudfish rele serverindən, sürətləndirmə funksiyasından və müvafiq marşrutun ictimai IP ünvanından istifadə etmir.

Düzgün İşləmənin Yoxlanılması​

Tam VPN qoşulmazdan əvvəlki ictimai IPv4 ünvanı ilə Tam VPN rele serverinin ictimai IPv4 ünvanı bir-birindən fərqli olduqda bunu ən asan şəkildə yoxlamaq mümkündür.

Əvvəlcə Tam VPN qoşulmuş adi terminalda ünvanı yoxlayın:

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

Eyni əmri mudfish-exclude ilə işə salın:

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

Birinci nəticədə Mudfish rele serverinin ünvanı, ikinci nəticədə isə mövcud internet xəttinizin ünvanı görünməlidir. -4 parametri bu alətin dəstək dairəsinə uyğun olaraq yalnız IPv4 ilə yoxlama aparmaq üçündür.

Brauzerlə yoxlayarkən brauzeri tamamilə bağlayın, sonra aşağıdakı kimi işə salaraq https://myip.mudfish.net ünvanına daxil olun:

sudo mudfish-exclude firefox

Proqramın Bağlanması və Siyasətin Təmizlənməsi​

Normal çıxış zamanı ayrıca təmizləmə əmrinə ehtiyac yoxdur. Lakin mudfish-exclude prosesi məcburi dayandırıldıqda (kill), terminal qəfil bağlandıqda və ya sistem kəsildikdə siyasət qalıqları qala bilər.

Əvvəlcə bu alətlə işə salınmış bütün proqramları bağlayın, sonra aşağıdakı əmri icra edin:

sudo mudfish-exclude --cleanup

Hələ də işləyən istisna proqramı varkən --cleanup istifadə olunarsa, həmin proqramın yan keçmə funksiyası dərhal dayana bilər.

Əmr Seçimləri​

İstifadə: mudfish-exclude [seçimlər] proqram [proqram seçimləri...]
SeçimTəsvir
-h, --helpKömək məlumatını göstərir.
--setupYalnız istisna üçün şəbəkə siyasətini qurur və çıxır. Proqram adı ilə birlikdə göstərilə bilməz.
--cleanupİstisna şəbəkə siyasətini təmizləyir və çıxır. Proqram adı ilə birlikdə göstərilə bilməz.
--no-setupMövcud siyasəti yenidən qurmadan təyin edilmiş cgroup-a daxil olub proqramı işə salır.
--cgroup NAMEİstifadə ediləcək cgroup v2 adını təyin edir. Standart dəyər: mudfish-exclude.
--mark VALUEPaketlər üçün istifadə ediləcək firewall mark dəyərini təyin edir. Standart dəyər: 0x6d660001.
--priority VALUEIPv4 policy rule prioritetini təyin edir. Standart dəyər: 8252.
--table VALUEMövcud standart yolu saxlayacaq marşrutlaşdırma cədvəlinin nömrəsini təyin edir. Standart dəyər: 8252.

Seçimlərin təhlilini dəqiq başa çatdırmaq üçün proqram adını -- işarəsindən sonra yaza bilərsiniz:

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

Siyasətin Bir Neçə Proqramda Yenidən İstifadəsi​

Adi istifadəçilərə proqram üzrə birdəfəlik standart işə salma üsulu tövsiyə olunur. Əgər siyasəti əllə bir dəfə qurub bir neçə əmrdə təkrar istifadə etmək istəyirsinizsə, aşağıdakı ardıcıllıqla icra edə bilərsiniz:

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

Bütün proqramları bağladıqdan sonra mütləq siyasəti təmizləyin:

sudo mudfish-exclude --cleanup

Əllə rejimdə avtomatik təmizləmə aparılmır. Bundan əlavə, bəzi masaüstü proqramları işləyərkən systemd-nin başqa cgroup-una keçə biləcəyi üçün, belə proqramlar üçün cgroup hərəkətini izləyən və avtomatik təmizləyən standart birdəfəlik işə salma rejimi daha uyğundur.

Əgər --cgroup, --mark, --priority, --table dəyərlərini dəyişmisinizsə, --setup, --no-setup və --cleanup zamanı eyni dəyərlərdən istifadə etməlisiniz. Fərdi təyin edilmiş dəyərlər sistemdəki mövcud firewall mark və ya policy routing qaydaları ilə toqquşmamalıdır.

Problemlərin Həlli​

mudfish-exclude: command not found​

İcra faylı PATH mühit dəyişəninə daxil edilməyib. Aşağıdakı əmrlə quraşdırma yerini tapıb tam yol ilə icra edin:

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

İkinci əmrdəki versiya nömrəsini quraşdırılmış versiyaya uyğun dəyişdirin.

network policy setup requires root​

Şəbəkə siyasətini qurmaq üçün icazəniz yoxdur. Əmrin əvvəlinə sudo əlavə edərək yenidən icra edin:

sudo mudfish-exclude discord

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

Cari sistem cgroup v2 istifadə etmir və ya müvafiq yerdə mount edilməyib. Aşağıdakı əmrlə yoxlaya bilərsiniz:

test -f /sys/fs/cgroup/cgroup.controllers && echo "cgroup v2 istifadə edilə bilər"

Ekrana heç nə çıxmazsa, istifadə etdiyiniz distributivdə cgroup v2-nin aktivləşdirilməsi qaydasını yoxlamalısınız.

iptables rule add failed və ya cgroup match xətası​

iptables-in quraşdırıldığını, nüvənin (kernel) və iptables-in cgroup match dəstəklədiyini yoxlayın. nftables əsaslı distributivlərdə belə bu alət birbaşa iptables uyğun əmrlərdən istifadə etdiyindən, normal iptables uyğunluq təbəqəsi tələb olunur.

failed to find the IPv4 default route​

Əsas (main) marşrutlaşdırma cədvəlində mövcud internet xəttinin IPv4 standart çıxış yolu (default route) tapılmadı. Aşağıdakı əmrin nəticəsində default marşrutunun olub-olmadığını yoxlayın:

ip -4 route show default table main

Standart marşrut yoxdursa və ya artıq başqa VPN interfeysinə yönəlibsə, mudfish-exclude ilkin internet marşrutunu qura bilməz.

İstisna edilməsinə baxmayaraq ictimai IP dəyişmir​

Aşağıdakıları ardıcıllıqla yoxlayın:

  1. Tam VPN rejiminin həqiqətən qoşulu olduğunu və adi işə salma zamanı rele serverinin IP-sinin göründüyünü yoxlayın.
  2. Hədəf proqramın mövcud və arxa fondakı bütün proseslərini bağlayıb yenidən başladın.
  3. IPv6 nəticələri ilə qarışıqlıq olmaması üçün curl -4 və ya IPv4 yoxlama üsulundan istifadə edin.
  4. Hədəf proqramın ayrıca xidmətə və ya artıq işləyən başlatıcıya (launcher) əmri ötürüb-ötürmədiyini yoxlayın. İstisna siyasəti yalnız mudfish-exclude tərəfindən yeni yaradılmış proses ailəsinə tətbiq olunur.
  5. ip -4 route show default table main nəticəsindəki standart marşrutun həqiqi internet interfeysini göstərdiyindən əmin olun.

Proqramı bağlasam da terminal əmri bitmir​

Törəmə və ya arxa fon prosesləri hələ də istisna cgroup-unda işləyir ola bilər. Əlaqədar sistem tepsisi (tray) ikonalarını, başladıcıları və yeniləmə proseslərini tamamilə bağlayın. Standart işə salma üsulu bütün törəmə proseslərin başa çatmasını gözlədikdən sonra siyasəti təmizləyir.

Qeyri-normal bağlanmadan sonra şəbəkədə anormallıq var​

Bu alətlə işə salınmış bütün proqramları bağlayın, sonra qalan siyasəti təmizləyin:

sudo mudfish-exclude --cleanup

Problem yenə də davam edərsə, Mudfish-i bağlayın, sistemin standart çıxış marşrutunu və iptables qaydalarını yoxlayın və yenidən qoşulun.

İşləmə Prinsipi​

mudfish-exclude işə salınacaq proqramı ayrıca cgroup v2 daxilinə yerləşdirir və həmin cgroup-da yaranan IPv4 paketlərinə iptables mark təyin edir. Həmin mark-a sahib olan paketlər ayrıca policy routing cədvəli vasitəsilə Linux-un main marşrutlaşdırma cədvəlində tapılmış standart çıxış yoluna ötürülür və tələb olunan NAT MASQUERADE tətbiq edilir.

Bu proses mudrun, mudflow, mudfish, mudwfp_proxy konfiqurasiyalarını və ya ortaq yaddaş vəziyyətini dəyişdirmir. İstisna siyasəti yalnız əməliyyat sisteminin cgroup, iptables və IPv4 policy routing səviyyəsində fəaliyyət göstərir.