mudfish-exclude İstifadəçi Təlimatı
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. ipvə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
sudosə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ı
- Mudfish-i başladın və istədiyiniz elementi və ya Tam VPN rejimini normal qaydada qoşun.
- İ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.
- 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-excludeilə 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
--cleanupistifadə 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çim | Təsvir |
|---|---|
-h, --help | Kömək məlumatını göstərir. |
--setup | Yalnı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-setup | Mö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 VALUE | Paketlər üçün istifadə ediləcək firewall mark dəyərini təyin edir. Standart dəyər: 0x6d660001. |
--priority VALUE | IPv4 policy rule prioritetini təyin edir. Standart dəyər: 8252. |
--table VALUE | Mö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:
- 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.
- Hədəf proqramın mövcud və arxa fondakı bütün proseslərini bağlayıb yenidən başladın.
- IPv6 nəticələri ilə qarışıqlıq olmaması üçün
curl -4və ya IPv4 yoxlama üsulundan istifadə edin. - 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-excludetərəfindən yeni yaradılmış proses ailəsinə tətbiq olunur. ip -4 route show default table mainnə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.