mudfish-exclude хэрэглэгчийн гарын авлага
Энэхүү програмыг зөвхөн Mudfish Cloud VPN 6.5.4 буюу түүнээс дээш хувилбар дээр ашиглах боломжтой.
mudfish-exclude нь Linux-д зориулсан Mudfish дээр зөвхөн тодорхой програмыг Mudfish замаас хасаж ажиллуулдаг командын мөрийн хэрэгсэл юм. Ялангуяа Full VPN горимыг ашиглаж байх үедээ хөтөч, мессенжер, видео тоглуулагч, татах хэрэгсэл зэргийн траффикийг үндсэн интернэт шугамаар шууд илгээхийг хүссэн үед ашиглах боломжтой.
Ердийн програм -> Mudfish зам -> Дамжуулах сервер
mudfish-exclude апп -> Хуучин үндсэн зам -> Интернэт
Энэхүү хэрэгсэл нь Mudfish хянах самбарт тохиргоо нэмдэггүй. Хасах програмыг ердийн ажиллуулах командын оронд mudfish-exclude-ээр эхлүүлэхэд л хангалттай.
Дэмжих хүрээ: Одоогоор зөвхөн Linux болон IPv4-ийг дэмждэг. Windows, macOS, Android дээр ашиглах боломжгүй бөгөөд IPv6 траффикт тусгай тойрч гарах бодлого хэрэгждэггүй.
Шаардлагатай орчин
Дараах бүх нөхцөл хангагдсан байх шаардлагатай.
- Linux-д зориулсан Mudfish суулгагдсан байх ёстой.
- cgroup v2 нь
/sys/fs/cgroupдээр маунт хийгдсэн байх ёстой. ipболонiptablesкоманд, мөн iptables-ийн cgroup match функцийг ашиглах боломжтой байх ёстой.- Бодлогын чиглүүлэлт (policy routing) болон галт ханын дүрмийг тохируулахын тулд
sudoэрхтэй байх ёстой. - Linux-ийн main чиглүүлэлтийн хүснэгтэд хэвийн ажиллагаатай IPv4 үндсэн зам (default route) байх ёстой.
Суулгасан ажиллуулах файл нь ихэвчлэн дараах байршилд байдаг.
/opt/mudfish/<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 горимоо хэвийн байдлаар холбоно.
- Хэрэв хасах програм аль хэдийн ажиллаж байгаа бол трэй (tray) болон цаана ажиллаж буй процесс хүртэл бүгдийг бүрэн хаана.
- Терминал дээр дараах хэлбэрээр програмыг дахин ажиллуулна.
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 ... командаар ажиллуулсан програм өөрөө боломжтой тохиолдолд sudo дуудсан анхны хэрэглэгчийн UID, GID, гэрийн хавтас (home directory) болон десктоп сессийн орчноор ажилладаг.
Анхаарах зүйлс
- Хасах бодлого нь
mudfish-exclude-ээр шинээр эхлүүлсэн процесс болон түүний охин процессуудад (child processes) хэрэгжинэ. - Аль хэдийн ажиллаж байгаа програмд бодлогыг дараа нь нэмж залгах боломжгүй. Ганц инстанцаар (single-instance) ажилладаг програм нь хуучин процессоо дахин ашиглахаас сэргийлж эхлээд бүрэн хаах шаардлагатай.
- Ердийн нэг удаа ажиллуулах горимд програм болон түүний охин процессууд бүгд хаагдах үед бодлого автоматаар цэвэрлэгдэнэ.
- Хэд хэдэн
mudfish-excludeкомандыг зэрэг ажиллуулах боломжтой. Нийтлэг бодлого нь хамгийн сүүлийн хасагдсан програм хаагдсаны дараа цэвэрлэгдэнэ. - Хасагдсан програмын IPv4 траффик нь Mudfish дамжуулах сервер, хурдасгах функц болон тухайн замын нийтийн (public) IP-г ашиглахгүй.
Хэвийн ажиллагааг шалгах
Full VPN холбогдохоос өмнөх нийтийн IPv4 хаяг болон Full VPN дамжуулах серверийн нийтийн IPv4 хаяг хоорондоо ялгаатай үед хамгийн хялбар шалгах боломжтой.
Эхлээд 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 [сонголт] програм [програмын сонголтууд...]
| Сонголт | Тайлбар |
|---|---|
-h, --help | Тусламжийн мэдээллийг хэвлэнэ. |
--setup | Зөвхөн хасахад зориулсан сүлжээний бодлогыг тохируулаад гарна. Програмыг хамт зааж өгөх боломжгүй. |
--cleanup | Хасахад зориулсан сүлжээний бодлогыг устгаад гарна. Програмыг хамт зааж өгөх боломжгүй. |
--no-setup | Одоо байгаа бодлогыг дахин тохируулахгүйгээр заасан cgroup-д орж програмыг ажиллуулна. |
--cgroup NAME | Ашиглах cgroup v2 нэрийг заана. Үндсэн утга нь mudfish-exclude юм. |
--mark VALUE | Пакетэд ашиглах галт ханын mark-ийг заана. Үндсэн утга нь 0x6d660001 юм. |
--priority VALUE | IPv4 policy rule-ийн дарааллын эрэмбийг (priority) заана. Үндсэн утга нь 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
Гар арга нь автоматаар цэвэрлэлт хийдэггүй. Түүнчлэн зарим десктоп програмууд ажиллах явцдаа systemd-ийн өөр cgroup руу шилжиж болзошгүй тул ийм програмуудад cgroup шилжилтийг мөшгиж, автоматаар цэвэрлэдэг үндсэн нэг удаа ажиллуулах арга илүү тохиромжтой.
Хэрэв --cgroup, --mark, --priority, --table утгуудыг өөрчилсөн бол --setup, --no-setup, --cleanup бүгдэд нь ижил утгыг ашиглах ёстой. Хэрэглэгчийн заасан утга нь системийн одоо байгаа галт ханын mark эсвэл policy routing дүрэмтэй зөрчилдөхгүй байх ёстой.
Асуудал шийдвэрлэх
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 ашиглахгүй байгаа эсвэл тухайн байршилд маунт хийгээгүй байна. Дараах командаар шалгах боломжтой.
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 нийцтэй давхарга (compatibility layer) шаардлагатай.
failed to find the IPv4 default route
main чиглүүлэлтийн хүснэгтээс хуучин интернэт шугамын IPv4 үндсэн замыг олж чадаагүй төлөв юм. Дараах командын үр дүнд default зам байгаа эсэхийг шалгана уу.
ip -4 route show default table main
Хэрэв үндсэн зам байхгүй эсвэл аль хэдийн өөр VPN интерфэйсийг зааж байгаа бол mudfish-exclude нь анхны интернэт замыг бүрдүүлэх боломжгүй.
Хассан боловч нийтийн IP өөрчлөгдөхгүй байх
Дараах зүйлсийг дарааллын дагуу шалгана уу.
- Full VPN горим бодитоор холбогдсон эсэх болон ердийн байдлаар ажиллуулахад дамжуулах серверийн IP харагдаж байгаа эсэхийг шалгана.
- Зорилтот програмын хуучин процесс болон цаана ажиллаж буй бүх процессийг хаасны дараа дахин ажиллуулна.
- IPv6 үр дүнтэй андуурахгүйн тулд
curl -4эсвэл IPv4 шалгах аргыг ашиглана. - Зорилтот програм нь тусдаа сервис эсвэл аль хэдийн ажиллаж буй лаунчер руу команд дамжуулдаг бүтэцтэй эсэхийг шалгана. Хасах бодлого нь зөвхөн
mudfish-exclude-ийн шинээр үүсгэсэн процессийн удамд л хэрэгжинэ. ip -4 route show default table main-ийн үндсэн зам нь бодит интернэт интерфэйсийг зааж байгаа эсэхийг шалгана.
Програмыг хаасан боловч терминалын команд дуусахгүй байх
Охин эсвэл цаана ажилладаг процесс нь хасах cgroup дотор ажилласаар байж магадгүй. Холбогдох трэй дүрс, лаунчер, шинэчлэлтийн процесс хүртэл бүгдийг хаана уу. Үндсэн ажиллуулах арга нь бүх охин процесс дуусахыг хүлээсний дараа бодлогыг цэвэрлэдэг.
Хэвийн бусаар хаагдсаны дараа сүлжээ хэвийн бус болох
Энэхүү хэрэгслээр ажиллуулсан бүх програмыг хаасны дараа үлдсэн бодлогыг цэвэрлэнэ.
sudo mudfish-exclude --cleanup
Үүний дараа ч асуудал үргэлжилсээр байвал Mudfish-ийг хааж, системийн үндсэн зам болон iptables дүрмийг шалгасны дараа дахин холбоно уу.
Ажиллах зарчим
mudfish-exclude нь ажиллуулах програмыг тусдаа cgroup v2-т оруулж, тухайн cgroup-ээс үүссэн IPv4 пакетэд iptables mark тохируулдаг. Тухайн mark-тай пакетууд нь тусдаа policy routing хүснэгтээр дамжин Linux main чиглүүлэлтийн хүснэгтээс олсон үндсэн зам руу дамжуулагдаж, шаардлагатай NAT MASQUERADE хэрэгждэг.
Энэ үйл явц нь mudrun, mudflow, mudfish, mudwfp_proxy-ийн тохиргоо эсвэл хуваалцсан санах ойн (shared memory) төлөвийг өөрчилдөггүй. Хасах бодлого нь зөвхөн үйлдлийн системийн cgroup, iptables, IPv4 policy routing давхарга дээр л ажилладаг.