Preskoči na glavno vsebino

Uporabniški priročnik za mudfish-exclude

Informacije

Program je na voljo samo v Mudfish Cloud VPN 6.5.4 ali novejšem.

mudfish-exclude je orodje ukazne vrstice za Linux, ki zažene določen program zunaj poti Mudfish. Uporabno je zlasti pri načinu Full VPN, če želite promet brskalnika, sporočilnika, predvajalnika videa ali orodja za prenos pošiljati neposredno prek običajne internetne povezave.

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

Izvorna shema prikazuje dve poti: običajni program gre prek Mudfisha in posredniškega strežnika, aplikacija mudfish-exclude pa prek prvotne privzete poti neposredno v internet.

Orodje ne doda nastavitev na nadzorno ploščo Mudfish. Program, ki ga želite izključiti, preprosto zaženite z mudfish-exclude namesto z običajnim ukazom.

Podpora: trenutno samo Linux in IPv4. Orodje ni na voljo v Windows, macOS ali Android in za promet IPv6 ne nastavlja posebnega pravilnika za obhod.

Zahtevano okolje​

Izpolnjeni morajo biti vsi naslednji pogoji:

  • Nameščen mora biti Mudfish za Linux.
  • cgroup v2 mora biti priklopljen na /sys/fs/cgroup.
  • Na voljo morata biti ukaza ip in iptables ter funkcija cgroup match v iptables.
  • Imeti morate pravice sudo za nastavljanje pravilnikov usmerjanja in pravil požarnega zidu.
  • Glavna usmerjevalna tabela Linuxa mora vsebovati delujočo privzeto pot IPv4.

Izvršljiva datoteka je običajno na naslednjem mestu; korejska oznaka v poti pomeni različico Mudfisha:

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

Trenutno namestitveno pot poiščete z:

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

Če izvršljive datoteke ni v PATH, v spodnjih primerih zamenjajte mudfish-exclude z najdeno celotno potjo. Privzeta namestitvena pot za različico 6.5.4 je na primer /opt/mudfish/6.5.4/bin/mudfish-exclude.

Osnovna uporaba​

  1. Zaženite Mudfish in pravilno povežite želeni element ali način Full VPN.
  2. Če ciljni program že deluje, ga povsem zaprite, tudi njegove procese v ozadju ali sistemski vrstici.
  3. V terminalu ga znova zaženite v naslednji obliki. Korejski oznaki pomenita program in njegove možnosti.
sudo mudfish-exclude <프로그램> [프로그램 옵션...]

Za izključitev Discorda uporabite:

sudo mudfish-exclude discord

Za izključitev Firefoxa in odpiranje zasebnega okna uporabite:

sudo mudfish-exclude firefox --private-window

Če pot do izvršljive datoteke vsebuje presledke, jo postavite v narekovaje.

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

sudo se uporablja za nastavljanje omrežnega pravilnika. Sam program, zagnan z sudo mudfish-exclude ..., se po možnosti zažene z UID, GID, domačo mapo in okoljem namizne seje prvotnega uporabnika, ki je poklical sudo.

Pomembne informacije​

  • Izključitev velja za novo začeti proces mudfish-exclude in njegove podrejene procese.
  • Pravilnika ni mogoče naknadno pripeti že delujočemu programu. Program z eno samo instanco najprej povsem zaprite, da ne uporabi obstoječega procesa.
  • Pri običajnem enkratnem zagonu se pravilnik samodejno odstrani, ko se končajo program in vsi njegovi podrejeni procesi.
  • Hkrati lahko izvajate več ukazov mudfish-exclude. Skupni pravilnik se odstrani po koncu zadnjega izključenega programa.
  • Promet IPv4 izključenega programa ne uporablja posredniških strežnikov Mudfish, pospeševanja ali javnega naslova IP te poti.

Preverjanje delovanja​

Najlažje preverite delovanje, kadar se javni IPv4 pred povezavo Full VPN razlikuje od javnega IPv4 posredniškega strežnika Full VPN.

Najprej preverite naslov v običajnem terminalu z vzpostavljeno povezavo Full VPN.

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

Isti ukaz zaženite z mudfish-exclude.

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

Prvi rezultat mora biti naslov posredniškega strežnika Mudfish, drugi pa naslov prvotne internetne povezave. Možnost -4 omeji preizkus na IPv4, ki ga orodje podpira.

Za preverjanje v brskalniku ga najprej povsem zaprite, nato ga zaženite kot spodaj in obiščite https://myip.mudfish.net.

sudo mudfish-exclude firefox

Zaključek in odstranjevanje pravilnika​

Ob običajnem zaključku poseben ukaz za čiščenje ni potreben. Pravilnik pa lahko ostane, če prisilno končate proces mudfish-exclude, se terminal nepričakovano zapre ali se sistem ustavi.

Najprej zaprite vse programe, zagnane s tem orodjem, nato izvedite:

sudo mudfish-exclude --cleanup

Če uporabite --cleanup, medtem ko izključeni programi še delujejo, se njihov obhod lahko takoj prekine.

Možnosti ukaza​

V izvorni obliki spodaj korejske oznake pomenijo uporabo, možnosti, program in možnosti programa.

사용법: mudfish-exclude [옵션] 프로그램 [프로그램 옵션...]
MožnostOpis
-h, --helpIzpiše pomoč.
--setupSamo nastavi omrežni pravilnik izključevanja in konča. Programa ne smete navesti hkrati.
--cleanupOdstrani omrežni pravilnik izključevanja in konča. Programa ne smete navesti hkrati.
--no-setupBrez ponovnega nastavljanja obstoječega pravilnika vstopi v določeni cgroup in zažene program.
--cgroup NAMEDoloči ime cgroup v2. Privzeto je mudfish-exclude.
--mark VALUEDoloči oznako požarnega zidu za pakete. Privzeto je 0x6d660001.
--priority VALUEDoloči prednost pravila IPv4. Privzeto je 8252.
--table VALUEDoloči številko usmerjevalne tabele s prvotno privzeto potjo. Privzeto je 8252.

Za izrecen konec razčlenjevanja možnosti navedite program za --.

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

Ponovna uporaba pravilnika za več programov​

Za običajno uporabo priporočamo enkratni zagon za vsak program. Če morate pravilnik enkrat nastaviti ročno in ga uporabiti v več ukazih, izvedite:

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

Ko zaprete vse programe, obvezno odstranite pravilnik.

sudo mudfish-exclude --cleanup

Pri ročnem načinu samodejnega čiščenja ni. Nekateri namizni programi se lahko med izvajanjem premaknejo v drug cgroup systemd. Zanje je primernejši privzeti enkratni zagon, ki spremlja premike cgroup in samodejno počisti pravila.

Če spremenite --cgroup, --mark, --priority ali --table, morate pri --setup, --no-setup in --cleanup uporabiti iste vrednosti. Vrednosti po meri ne smejo biti v sporu z obstoječimi oznakami požarnega zidu ali pravili usmerjanja v sistemu.

Odpravljanje težav​

mudfish-exclude: command not found​

Izvršljive datoteke ni v PATH. S spodnjim ukazom poiščite namestitev in jo zaženite s celotno potjo.

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

Številko različice v drugem ukazu prilagodite nameščeni različici.

network policy setup requires root​

Nimate pravic za nastavljanje omrežnega pravilnika. Pred ukaz dodajte sudo in ga ponovite.

sudo mudfish-exclude discord

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

Sistem ne uporablja cgroup v2 ali ga nima priklopljenega na zahtevano mesto. Preverite z naslednjim ukazom; korejsko sporočilo pomeni »cgroup v2 je na voljo«.

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

Če ni izpisa, preverite, kako v svoji distribuciji omogočite cgroup v2.

iptables rule add failed ali napaka cgroup match​

Preverite, ali je iptables nameščen ter ali jedro in iptables podpirata cgroup match. Tudi v distribucijah na osnovi nftables orodje neposredno uporablja združljive ukaze iptables, zato potrebuje delujočo združljivostno plast iptables.

failed to find the IPv4 default route​

V glavni usmerjevalni tabeli ni bilo mogoče najti privzete poti IPv4 prvotne internetne povezave. Preverite, ali rezultat naslednjega ukaza vsebuje pot default.

ip -4 route show default table main

Če privzete poti ni ali že kaže na drug vmesnik VPN, mudfish-exclude ne more vzpostaviti prvotne internetne poti.

Javni IP se kljub izključitvi ne spremeni​

Preverite po vrsti:

  1. Ali je Full VPN dejansko povezan in ali običajen zagon prikaže IP posredniškega strežnika.
  2. Povsem zaprite obstoječe in ozadne procese ciljnega programa, nato ga znova zaženite.
  3. Uporabite curl -4 ali drug preizkus IPv4, da rezultata ne zamenjate z IPv6.
  4. Preverite, ali ciljni program ukaze predaja ločeni storitvi ali že delujočemu zaganjalniku. Izključitev velja samo za novo procesno drevo, ki ga ustvari mudfish-exclude.
  5. Preverite, ali privzeta pot iz ip -4 route show default table main kaže na dejanski internetni vmesnik.

Program je zaprt, vendar se terminalski ukaz ne konča​

V izključenem cgroup lahko še vedno delujejo podrejeni ali ozadni procesi. Zaprite tudi povezane ikone v sistemski vrstici, zaganjalnike in procese posodabljanja. Privzeti način počaka na konec vseh podrejenih procesov in šele nato odstrani pravilnik.

Po nepričakovani zaustavitvi omrežje deluje nepravilno​

Zaprite vse programe, zagnane s tem orodjem, in odstranite preostali pravilnik.

sudo mudfish-exclude --cleanup

Če težava ostaja, zaprite Mudfish, preverite sistemsko privzeto pot in pravila iptables ter se znova povežite.

Način delovanja​

mudfish-exclude zažene program v ločenem cgroup v2 in paketom IPv4 iz tega cgroup dodeli oznako iptables. Paketi s to oznako se prek ločene tabele usmerjanja po pravilniku pošljejo po privzeti poti, najdeni v glavni tabeli Linuxa, z ustreznim NAT MASQUERADE.

Postopek ne spreminja nastavitev ali stanja deljenega pomnilnika programov mudrun, mudflow, mudfish in mudwfp_proxy. Izključevanje deluje samo na ravni operacijskega sistema: cgroup, iptables in usmerjanje IPv4 po pravilniku.