Preskoči na glavni sadržaj

Korisnički vodič za mudfish-exclude

Informacije

Ovaj je program dostupan samo u Mudfish Cloud VPN-u 6.5.4 ili novijem.

mudfish-exclude alat je naredbenog retka za Linux kojim određeni program pokrećete izvan rute Mudfisha. Posebno je koristan u načinu Full VPN kada želite da promet preglednika, programa za poruke, videoplayera ili alata za preuzimanje ide izravno postojećom internetskom vezom.

Sljedeći izvorni prikaz pokazuje da obični program prolazi rutom Mudfisha do posredničkog poslužitelja, dok aplikacija pokrenuta putem mudfish-exclude prolazi postojećom zadanom rutom do interneta.

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

Alat ne dodaje postavke na nadzornu ploču Mudfisha. Umjesto uobičajene naredbe pokrenite željeni program putem mudfish-exclude.

Podržano okruženje: trenutačno su podržani samo Linux i IPv4. Alat nije dostupan za Windows, macOS ni Android, a na IPv6 promet ne primjenjuje zasebno pravilo zaobilaženja.

Potrebno okruženje​

Moraju biti ispunjeni svi sljedeći uvjeti.

  • Mudfish za Linux mora biti instaliran.
  • cgroup v2 mora biti montiran na /sys/fs/cgroup.
  • Moraju biti dostupne naredbe ip i iptables te funkcija cgroup match u iptablesu.
  • Morate imati ovlasti sudo za postavljanje usmjeravanja prema pravilima i pravila vatrozida.
  • Linuxova tablica usmjeravanja main mora sadržavati ispravnu zadanu IPv4 rutu.

Izvršna datoteka obično se nalazi na sljedećoj putanji. Korejski tekst u zagradama označava verziju Mudfisha.

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

Trenutačnu instalacijsku putanju pronađite naredbom:

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

Ako izvršna datoteka nije u PATH, zamijenite mudfish-exclude u primjerima punom pronađenom putanjom. Primjerice, zadana putanja verzije 6.5.4 je /opt/mudfish/6.5.4/bin/mudfish-exclude.

Osnovna upotreba​

  1. Pokrenite Mudfish i normalno povežite željenu stavku ili način Full VPN.
  2. Ako je program koji želite izuzeti već pokrenut, potpuno ga zatvorite, uključujući procese u području obavijesti ili pozadini.
  3. Ponovno ga pokrenite iz terminala u sljedećem obliku. Korejski zamjenski izrazi označavaju program i njegove opcije.
sudo mudfish-exclude <프로그램> [프로그램 옵션...]

Primjerice, za izuzimanje Discorda:

sudo mudfish-exclude discord

Za izuzimanje Firefoxa i otvaranje privatnog prozora:

sudo mudfish-exclude firefox --private-window

Ako putanja izvršne datoteke sadrži razmake, stavite je u navodnike.

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

sudo se upotrebljava za postavljanje mrežnih pravila. Sam program pokrenut putem sudo mudfish-exclude ... izvršava se, kada je moguće, s UID-om, GID-om, osobnim direktorijem i okruženjem radne površine izvornog korisnika koji je pozvao sudo.

Važne napomene​

  • Pravilo izuzimanja primjenjuje se na proces koji je novopokrenut putem mudfish-exclude i njegove podređene procese.
  • Pravilo ne možete naknadno pridružiti već pokrenutom programu. Program koji dopušta samo jednu instancu najprije potpuno zatvorite kako ne bi ponovno upotrijebio postojeći proces.
  • Pri uobičajenom pojedinačnom pokretanju pravilo se automatski uklanja kada završe program i svi njegovi podređeni procesi.
  • Možete istodobno pokrenuti više naredbi mudfish-exclude. Zajednička pravila uklanjaju se nakon završetka posljednjeg izuzetog programa.
  • IPv4 promet izuzetog programa ne upotrebljava posrednički poslužitelj Mudfisha, ubrzavanje ni javnu IP adresu te rute.

Provjera ispravnog rada​

Najlakše je provjeriti kada se javna IPv4 adresa prije Full VPN veze razlikuje od javne IPv4 adrese posredničkog poslužitelja Full VPN-a.

Najprije provjerite adresu u običnom terminalu dok je Full VPN povezan.

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

Pokrenite istu naredbu putem mudfish-exclude.

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

Prvi rezultat treba biti adresa posredničkog poslužitelja Mudfisha, a drugi adresa izvorne internetske veze. Opcija -4 ograničava provjeru na IPv4 u skladu s podrškom alata.

Za provjeru preglednikom potpuno ga zatvorite, pokrenite ovako i otvorite https://myip.mudfish.net.

sudo mudfish-exclude firefox

Zatvaranje i uklanjanje pravila​

Pri normalnom zatvaranju zasebna naredba za čišćenje nije potrebna. Međutim, pravila mogu ostati ako je proces mudfish-exclude prisilno zaustavljen, terminal neočekivano zatvoren ili sustav prekinuo rad.

Najprije zatvorite sve programe pokrenute ovim alatom, a zatim izvršite:

sudo mudfish-exclude --cleanup

Ako upotrijebite --cleanup dok izuzeti program još radi, njegovo zaobilaženje može odmah prestati.

Opcije naredbe​

Izvorni prikaz upotrebe u nastavku navodi opcije alata, program i opcije programa.

사용법: mudfish-exclude [옵션] 프로그램 [프로그램 옵션...]
OpcijaOpis
-h, --helpIspisuje pomoć.
--setupPostavlja samo mrežna pravila izuzimanja i završava. Ne smijete istodobno navesti program.
--cleanupUklanja mrežna pravila izuzimanja i završava. Ne smijete istodobno navesti program.
--no-setupUlazi u zadani cgroup i pokreće program bez ponovnog postavljanja postojećih pravila.
--cgroup NAMENaziv cgroupa v2 koji će se upotrebljavati. Zadano je mudfish-exclude.
--mark VALUEOznaka vatrozida za pakete. Zadano je 0x6d660001.
--priority VALUEPrioritet IPv4 pravila usmjeravanja. Zadano je 8252.
--table VALUEBroj tablice usmjeravanja koja sadrži izvornu zadanu rutu. Zadano je 8252.

Za izričit završetak obrade opcija možete navesti program nakon --.

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

Ponovna upotreba pravila za više programa​

Običnim korisnicima preporučujemo pojedinačno pokretanje za svaki program. Ako morate ručno jednom postaviti pravila i ponovno ih upotrebljavati u više naredbi, postupite ovako.

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

Nakon zatvaranja svih programa obavezno uklonite pravila.

sudo mudfish-exclude --cleanup

Ručno postavljanje ne obavlja automatsko čišćenje. Neki programi za radnu površinu tijekom rada mogu prijeći u drugi systemd cgroup, pa je za njih prikladnije zadano pojedinačno pokretanje koje prati premještanje cgroupa i automatski čisti pravila.

Ako promijenite --cgroup, --mark, --priority ili --table, iste vrijednosti morate upotrijebiti uz --setup, --no-setup i --cleanup. Prilagođene vrijednosti ne smiju biti u sukobu s postojećim oznakama vatrozida ili pravilima usmjeravanja sustava.

Rješavanje problema​

mudfish-exclude: command not found​

Izvršna datoteka nije u PATH. Pronađite instalacijsku putanju sljedećom naredbom pa pokrenite program punom putanjom.

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

Broj verzije u drugoj naredbi prilagodite instaliranoj verziji.

network policy setup requires root​

Nemate ovlasti za postavljanje mrežnih pravila. Dodajte sudo ispred naredbe i pokrenite je ponovno.

sudo mudfish-exclude discord

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

Sustav ne upotrebljava cgroup v2 ili ga nije montirao na tom mjestu. Provjerite sljedećom naredbom. Izvorna izlazna poruka na korejskom znači da je cgroup v2 dostupan.

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

Ako nema ispisa, provjerite kako omogućiti cgroup v2 u svojoj distribuciji.

iptables rule add failed ili pogreška cgroup match​

Provjerite je li iptables instaliran i podržavaju li jezgra i iptables cgroup match. Alat izravno upotrebljava kompatibilnu naredbu iptables i na distribucijama temeljenima na nftablesu, pa je potreban ispravan sloj kompatibilnosti iptablesa.

failed to find the IPv4 default route​

U tablici usmjeravanja main nije pronađena zadana IPv4 ruta izvorne internetske veze. Provjerite postoji li ruta default u izlazu naredbe:

ip -4 route show default table main

Ako zadana ruta ne postoji ili već upućuje na drugo VPN sučelje, mudfish-exclude ne može konfigurirati izvornu internetsku putanju.

Javna IP adresa ne mijenja se unatoč izuzimanju​

Redom provjerite sljedeće.

  1. Provjerite je li Full VPN doista povezan i prikazuje li se pri običnom pokretanju IP adresa posredničkog poslužitelja.
  2. Zatvorite sve postojeće i pozadinske procese ciljnog programa pa ga ponovno pokrenite.
  3. Upotrijebite curl -4 ili drugi način provjere IPv4 adrese kako rezultat ne biste zamijenili s IPv6 rezultatom.
  4. Provjerite predaje li ciljni program naredbe zasebnoj usluzi ili već pokrenutom pokretaču. Pravilo izuzimanja primjenjuje se samo na stablo procesa koje je novo stvorio mudfish-exclude.
  5. Provjerite upućuje li zadana ruta naredbe ip -4 route show default table main na stvarno internetsko sučelje.

Terminalna naredba ne završava nakon zatvaranja programa​

Podređeni ili pozadinski proces možda još radi u izuzetom cgroupu. Zatvorite i povezane ikone u području obavijesti, pokretače i procese ažuriranja. Zadani način rada čeka završetak svih podređenih procesa pa tek zatim uklanja pravila.

Mreža ne radi pravilno nakon neočekivanog završetka​

Zatvorite sve programe pokrenute ovim alatom i uklonite preostala pravila.

sudo mudfish-exclude --cleanup

Ako problem potraje, zatvorite Mudfish, provjerite zadanu rutu sustava i pravila iptablesa pa se ponovno povežite.

Način rada​

mudfish-exclude smješta pokrenuti program u zaseban cgroup v2 i dodjeljuje iptables oznaku njegovim IPv4 paketima. Paketi s tom oznakom putem zasebne tablice usmjeravanja prema pravilima odlaze zadanom rutom pronađenom u Linuxovoj tablici main, uz primjenu potrebnog NAT MASQUERADE-a.

Postupak ne mijenja postavke ni stanje zajedničke memorije programa mudrun, mudflow, mudfish ili mudwfp_proxy. Pravila izuzimanja rade samo na razinama cgroupa, iptablesa i IPv4 usmjeravanja prema pravilima operacijskog sustava.