Preskočiť na hlavný obsah

Používateľská príručka mudfish-exclude

Informácie

Tento program je dostupný iba v Mudfish Cloud VPN 6.5.4 alebo novšom.

mudfish-exclude je nástroj príkazového riadka pre Mudfish v Linuxe, ktorý spúšťa vybrané programy mimo smerovacej cesty Mudfish. Je užitočný najmä pri Full VPN, keď chcete prevádzku prehliadača, komunikátora, prehrávača videa alebo nástroja na sťahovanie posielať priamo cez pôvodné internetové pripojenie.

일반 프로그램       -> 미꾸라지 경로 -> 중계 서버
mudfish-exclude 앱 -> 기존 기본 경로 -> 인터넷

Schéma v pôvodnom jazyku znamená: bežný program → cesta Mudfish → uzol; aplikácia spustená cez mudfish-exclude → pôvodná predvolená cesta → internet.

Nástroj nepridáva nastavenia do prehľadu Mudfish. Program, ktorý chcete vylúčiť, jednoducho spustite cez mudfish-exclude namiesto bežného príkazu.

Rozsah podpory: aktuálne podporuje iba Linux a IPv4. Nie je dostupný vo Windows, macOS ani Androide a na prevádzku IPv6 neuplatňuje samostatné pravidlá obchádzania.

Potrebné prostredie​

Musia byť splnené všetky nasledujúce podmienky.

  • Mudfish pre Linux je nainštalovaný.
  • cgroup v2 je pripojené v /sys/fs/cgroup.
  • Dostupné sú príkazy ip, iptables a funkcia cgroup match v iptables.
  • Máte oprávnenia sudo na nastavenie smerovacích politík a pravidiel firewallu.
  • Hlavná smerovacia tabuľka Linuxu obsahuje funkčnú predvolenú cestu IPv4.

Spustiteľný súbor sa zvyčajne nachádza tu. Zástupný údaj <미꾸라지 버전> označuje verziu Mudfish.

/opt/mudfish/<미꾸라지 버전>/bin/mudfish-exclude

Aktuálnu inštalačnú cestu nájdete príkazom:

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

Ak spustiteľný súbor nie je v PATH, v nasledujúcich príkladoch nahraďte mudfish-exclude zistenou úplnou cestou. Pre verziu 6.5.4 je predvolená cesta /opt/mudfish/6.5.4/bin/mudfish-exclude.

Základné používanie​

  1. Spustite Mudfish a riadne pripojte požadovanú položku alebo režim Full VPN.
  2. Ak vylučovaný program už beží, úplne ho ukončite vrátane ikony v oblasti oznámení a procesov na pozadí.
  3. V termináli ho znova spustite v nasledujúcom tvare. <프로그램> označuje program a [프로그램 옵션...] jeho voľby.
sudo mudfish-exclude <프로그램> [프로그램 옵션...]

Napríklad Discord vylúčite takto.

sudo mudfish-exclude discord

Firefox vylúčite a zároveň otvoríte súkromné okno takto.

sudo mudfish-exclude firefox --private-window

Cestu obsahujúcu medzery uzavrite do úvodzoviek.

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

sudo sa používa na nastavenie sieťovej politiky. Samotný program spustený cez sudo mudfish-exclude ... sa podľa možností spustí s UID, GID, domovským priečinkom a prostredím pracovnej plochy pôvodného používateľa, ktorý vyvolal sudo.

Dôležité poznámky​

  • Vylúčenie platí pre nový proces spustený cez mudfish-exclude a jeho potomkov.
  • Už spustenému programu nemožno politiku priradiť dodatočne. Najprv ho úplne ukončite, aby program s jedinou inštanciou znovu nepoužil existujúci proces.
  • Pri bežnom jednorazovom spustení sa politika automaticky odstráni po ukončení programu aj všetkých jeho potomkov.
  • Môžete súčasne spustiť viac príkazov mudfish-exclude. Spoločná politika sa odstráni po ukončení posledného vylúčeného programu.
  • Prevádzka IPv4 vylúčeného programu nepoužíva uzly Mudfish, zrýchľovanie ani verejnú IP adresu tejto cesty.

Overenie funkčnosti​

Najjednoduchšie je overenie vtedy, keď sa verejná IPv4 adresa pred pripojením Full VPN líši od verejnej IPv4 adresy uzla Full VPN.

Najprv overte adresu v bežnom termináli pri pripojenom Full VPN.

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

Rovnaký príkaz spustite cez mudfish-exclude.

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

Prvý výsledok má byť adresa na strane uzla Mudfish, druhý adresa pôvodného internetového pripojenia. Voľba -4 obmedzuje test na IPv4 v súlade s podporou nástroja.

Pri overovaní v prehliadači ho najprv úplne ukončite, potom spustite takto a otvorte https://myip.mudfish.net.

sudo mudfish-exclude firefox

Ukončenie a odstránenie politiky​

Pri riadnom ukončení nie je potrebný samostatný čistiaci príkaz. Ak však vynútene ukončíte proces mudfish-exclude, terminál sa neočakávane zatvorí alebo sa systém preruší, politika môže zostať aktívna.

Najprv ukončite všetky programy spustené týmto nástrojom a potom spustite:

sudo mudfish-exclude --cleanup

Použitie --cleanup počas behu vylúčených programov môže okamžite zrušiť ich obchádzanie Mudfish.

Voľby príkazu​

Nasledujúci pôvodný zápis znamená: použitie mudfish-exclude [voľby] program [voľby programu...].

사용법: mudfish-exclude [옵션] 프로그램 [프로그램 옵션...]
VoľbaOpis
-h, --helpZobrazí pomoc.
--setupNastaví iba sieťovú politiku vylúčenia a skončí. Nemožno súčasne určiť program.
--cleanupOdstráni sieťovú politiku vylúčenia a skončí. Nemožno súčasne určiť program.
--no-setupVstúpi do určeného cgroup a spustí program bez opätovného nastavenia existujúcej politiky.
--cgroup NAMEUrčí názov cgroup v2. Predvolene mudfish-exclude.
--mark VALUEUrčí značku firewallu pre pakety. Predvolene 0x6d660001.
--priority VALUEUrčí prioritu pravidla politiky IPv4. Predvolene 8252.
--table VALUEUrčí číslo smerovacej tabuľky s pôvodnou predvolenou cestou. Predvolene 8252.

Na jednoznačné ukončenie spracovania volieb môžete program uviesť za --.

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

Opätovné použitie politiky pre viac programov​

Bežným používateľom odporúčame jednorazové spúšťanie jednotlivých programov. Ak potrebujete politiku nastaviť ručne raz a potom ju opakovane používať vo viacerých príkazoch, postupujte takto.

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

Po ukončení všetkých programov musíte politiku odstrániť.

sudo mudfish-exclude --cleanup

Ručný spôsob nevykonáva automatické odstránenie. Niektoré desktopové programy sa navyše počas behu môžu presunúť do iného cgroup v systemd. Pre ne je vhodnejší predvolený jednorazový spôsob, ktorý sleduje presuny cgroup a automaticky upratuje.

Ak zmeníte --cgroup, --mark, --priority alebo --table, musíte pri --setup, --no-setup aj --cleanup používať rovnaké hodnoty. Vlastné hodnoty nesmú kolidovať s existujúcimi značkami firewallu ani pravidlami smerovacích politík systému.

Riešenie problémov​

mudfish-exclude: command not found​

Spustiteľný súbor nie je v PATH. Nájdite jeho umiestnenie a spustite ho úplnou cestou.

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

Číslo verzie v druhom príkaze upravte podľa nainštalovanej verzie.

network policy setup requires root​

Nemáte oprávnenie nastaviť sieťovú politiku. Pridajte pred príkaz sudo a spustite ho znova.

sudo mudfish-exclude discord

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

Systém nepoužíva cgroup v2 alebo ho nemá pripojené na požadovanom mieste. Overte to nasledujúcim príkazom; jeho kórejský výstup znamená „cgroup v2 je dostupné“.

test -f /sys/fs/cgroup/cgroup.controllers && echo "cgroup v2 사용 가능"

Ak sa nič nevypíše, overte postup zapnutia cgroup v2 vo svojej distribúcii.

iptables rule add failed alebo chyba cgroup match​

Overte inštaláciu iptables a podporu cgroup match v jadre aj iptables. Aj v distribúciách založených na nftables nástroj priamo používa kompatibilný príkaz iptables, preto potrebuje funkčnú vrstvu kompatibility iptables.

failed to find the IPv4 default route​

V hlavnej smerovacej tabuľke sa nenašla predvolená cesta IPv4 pôvodného internetového pripojenia. Overte, že výstup nasledujúceho príkazu obsahuje cestu default.

ip -4 route show default table main

Ak predvolená cesta chýba alebo už smeruje na rozhranie inej VPN, mudfish-exclude nedokáže nastaviť pôvodnú internetovú cestu.

Verejná IP adresa sa nemení ani po vylúčení​

Postupne overte nasledujúce.

  1. Full VPN je skutočne pripojené a pri bežnom spustení sa zobrazuje IP adresa uzla.
  2. Ukončite všetky existujúce procesy cieľového programu vrátane procesov na pozadí a spustite ho znova.
  3. Použite curl -4 alebo iné overenie IPv4, aby ste si výsledok nepomýlili s IPv6.
  4. Overte, či program neodovzdáva príkazy samostatnej službe alebo už spustenému spúšťaču. Politika vylúčenia platí iba pre nový strom procesov vytvorený mudfish-exclude.
  5. Overte, že predvolená cesta z ip -4 route show default table main ukazuje na skutočné internetové rozhranie.

Program je zatvorený, ale príkaz v termináli neskončil​

Vo vylúčenom cgroup môže stále bežať potomok alebo proces na pozadí. Ukončite aj príslušné ikony v oblasti oznámení, spúšťače a aktualizačné procesy. Predvolený spôsob čaká na ukončenie všetkých potomkov a až potom odstráni politiku.

Sieť po neočakávanom ukončení nefunguje správne​

Ukončite všetky programy spustené nástrojom a odstráňte zostávajúcu politiku.

sudo mudfish-exclude --cleanup

Ak problém pretrváva, ukončite Mudfish, skontrolujte predvolenú cestu systému a pravidlá iptables a potom sa znova pripojte.

Princíp fungovania​

mudfish-exclude zaradí spúšťaný program do samostatného cgroup v2 a paketom IPv4 vytvoreným v tomto cgroup priradí značku iptables. Označené pakety sa cez samostatnú tabuľku smerovacej politiky posielajú predvolenou cestou nájdenou v hlavnej smerovacej tabuľke Linuxu a uplatní sa potrebné NAT MASQUERADE.

Tento postup nemení nastavenia ani stav zdieľanej pamäte programov mudrun, mudflow, mudfish či mudwfp_proxy. Politika vylúčenia funguje iba vo vrstvách cgroup, iptables a smerovacích politík IPv4 operačného systému.