Үндсэн агуулга руу алгасах

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 юм.

Үндсэн хэрэглээ​

  1. Mudfish-ийг ажиллуулаад хүссэн айтем эсвэл Full VPN горимоо хэвийн байдлаар холбоно.
  2. Хэрэв хасах програм аль хэдийн ажиллаж байгаа бол трэй (tray) болон цаана ажиллаж буй процесс хүртэл бүгдийг бүрэн хаана.
  3. Терминал дээр дараах хэлбэрээр програмыг дахин ажиллуулна.
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 VALUEIPv4 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 өөрчлөгдөхгүй байх​

Дараах зүйлсийг дарааллын дагуу шалгана уу.

  1. Full VPN горим бодитоор холбогдсон эсэх болон ердийн байдлаар ажиллуулахад дамжуулах серверийн IP харагдаж байгаа эсэхийг шалгана.
  2. Зорилтот програмын хуучин процесс болон цаана ажиллаж буй бүх процессийг хаасны дараа дахин ажиллуулна.
  3. IPv6 үр дүнтэй андуурахгүйн тулд curl -4 эсвэл IPv4 шалгах аргыг ашиглана.
  4. Зорилтот програм нь тусдаа сервис эсвэл аль хэдийн ажиллаж буй лаунчер руу команд дамжуулдаг бүтэцтэй эсэхийг шалгана. Хасах бодлого нь зөвхөн mudfish-exclude-ийн шинээр үүсгэсэн процессийн удамд л хэрэгжинэ.
  5. 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 давхарга дээр л ажилладаг.