Siirry pääsisältöön

mudfish-excluden käyttöopas

Tietoa

Ohjelma on saatavilla vain Mudfish Cloud VPN 6.5.4:ssä ja sitä uudemmissa versioissa.

mudfish-exclude on Linuxin Mudfishin komentorivityökalu, jolla yksittäinen ohjelma käynnistetään Mudfish-reitin ulkopuolella. Se soveltuu erityisesti tilanteisiin, joissa käytät Full VPN -tilaa mutta haluat selaimen, viestisovelluksen, videosoittimen tai lataustyökalun liikenteen kulkevan suoraan alkuperäisen internetyhteyden kautta.

Seuraavan alkuperäisen kaavion ensimmäinen rivi kuvaa tavallisen ohjelman reittiä Mudfish-solmun kautta ja toinen pois jätetyn ohjelman reittiä alkuperäisen oletusreitin kautta internetiin.

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

Työkalu ei lisää asetuksia Mudfishin hallintapaneeliin. Käynnistä pois jätettävä ohjelma tavallisen komennon sijaan mudfish-exclude:lla.

Tuki: tällä hetkellä tuetaan vain Linuxia ja IPv4:ää. Työkalu ei toimi Windowsissa, macOS:ssä tai Androidissa eikä määritä erillistä ohituskäytäntöä IPv6-liikenteelle.

Vaatimukset​

Kaikkien seuraavien ehtojen on täytyttävä:

  • Linuxin Mudfish on asennettu.
  • cgroup v2 on liitetty kohtaan /sys/fs/cgroup.
  • ip- ja iptables-komennot sekä iptablesin cgroup match ovat käytettävissä.
  • Sinulla on sudo-oikeudet käytäntöpohjaisen reitityksen ja palomuurisääntöjen määrittämiseen.
  • Linuxin main-reititystaulukossa on toimiva IPv4-oletusreitti.

Suoritettava tiedosto sijaitsee tavallisesti seuraavassa polussa. Koreankielinen paikkamerkki tarkoittaa Mudfish-versiota.

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

Etsi asennettu polku seuraavasti:

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

Jos ohjelma ei ole PATH-muuttujassa, korvaa esimerkkien mudfish-exclude täydellä polulla. Version 6.5.4 oletuspolku on /opt/mudfish/6.5.4/bin/mudfish-exclude.

Peruskäyttö​

  1. Käynnistä Mudfish ja yhdistä haluamasi kohteet tai Full VPN -tila normaalisti.
  2. Jos pois jätettävä ohjelma on jo käynnissä, sulje se kokonaan, myös ilmaisinalueelta ja taustalta.
  3. Käynnistä se terminaalissa seuraavassa muodossa. Paikkamerkit tarkoittavat ohjelmaa ja sen valitsimia.
sudo mudfish-exclude <프로그램> [프로그램 옵션...]

Esimerkiksi Discordin jättäminen Mudfishin ulkopuolelle:

sudo mudfish-exclude discord

Firefoxin käynnistäminen yksityisessä ikkunassa Mudfishin ulkopuolella:

sudo mudfish-exclude firefox --private-window

Jos ohjelman polussa on välilyöntejä, käytä lainausmerkkejä:

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

sudo-oikeuksia käytetään verkkokäytäntöjen määrittämiseen. Itse käynnistettävä ohjelma suoritetaan mahdollisuuksien mukaan alkuperäisen sudon kutsuneen käyttäjän UID:llä, GID:llä, kotihakemistolla ja työpöytäistunnon ympäristössä.

Huomioitavaa​

  • Poisjättökäytäntö koskee mudfish-exclude:lla luotua uutta prosessia ja sen lapsiprosesseja.
  • Käytäntöä ei voi liittää jälkikäteen jo käynnissä olevaan ohjelmaan. Sulje yhden instanssin ohjelma kokonaan, jotta se ei käytä vanhaa prosessia uudelleen.
  • Tavallisessa kertakäynnistyksessä käytäntö poistetaan automaattisesti, kun ohjelma ja kaikki sen lapsiprosessit päättyvät.
  • Useita mudfish-exclude-komentoja voi käyttää samanaikaisesti. Yhteinen käytäntö poistetaan viimeisen pois jätetyn ohjelman päätyttyä.
  • Pois jätetyn ohjelman IPv4-liikenne ei käytä Mudfish-solmuja, kiihdytystä eikä Mudfish-reitin julkista IP-osoitetta.

Toiminnan tarkistaminen​

Tarkistus on helpointa, kun alkuperäisen yhteyden ja Full VPN -solmun julkiset IPv4-osoitteet ovat erilaiset.

Tarkista ensin osoite tavallisessa terminaalissa Full VPN -yhteyden ollessa käytössä:

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

Suorita sama komento mudfish-exclude:lla:

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

Ensimmäisen tuloksen pitäisi olla Mudfish-solmun osoite ja toisen alkuperäisen internetyhteyden osoite. -4 rajaa tarkistuksen IPv4:ään työkalun tukeman liikenteen mukaisesti.

Jos tarkistat selaimella, sulje selain kokonaan, käynnistä se seuraavasti ja avaa https://myip.mudfish.net:

sudo mudfish-exclude firefox

Lopettaminen ja käytäntöjen poistaminen​

Normaalin sulkemisen jälkeen erillistä siivouskomentoa ei tarvita. Käytäntö voi kuitenkin jäädä voimaan, jos mudfish-exclude lopetetaan pakotetusti, terminaali sulkeutuu virheellisesti tai järjestelmä pysähtyy.

Sulje ensin kaikki työkalulla käynnistetyt ohjelmat ja suorita sitten:

sudo mudfish-exclude --cleanup

Jos käytät --cleanup-valitsinta pois jätettyjen ohjelmien ollessa käynnissä, niiden ohitus voi päättyä välittömästi.

Komentovalitsimet​

Alkuperäinen syntaksikuvaus tarkoittaa: mudfish-exclude, työkalun valitsimet, ohjelma ja ohjelman valitsimet.

사용법: mudfish-exclude [옵션] 프로그램 [프로그램 옵션...]
ValitsinKuvaus
-h, --helpNäytä ohje.
--setupMääritä vain poisjättökäytäntö ja lopeta. Ohjelmaa ei voi antaa samalla.
--cleanupPoista poisjättökäytäntö ja lopeta. Ohjelmaa ei voi antaa samalla.
--no-setupSiirry annettuun cgroupiin ja käynnistä ohjelma määrittämättä käytäntöä uudelleen.
--cgroup NAMEKäytettävän cgroup v2:n nimi. Oletus on mudfish-exclude.
--mark VALUEPakettien palomuurimerkintä. Oletus on 0x6d660001.
--priority VALUEIPv4-käytäntösäännön prioriteetti. Oletus on 8252.
--table VALUEAlkuperäisen oletusreitin sisältävän reititystaulukon numero. Oletus on 8252.

Voit päättää valitsimien tulkinnan yksiselitteisesti merkillä -- ennen ohjelmaa:

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

Käytännön käyttäminen useille ohjelmille​

Tavallisille käyttäjille suositellaan ohjelmakohtaista kertakäynnistystä. Jos käytäntö on tarpeen määrittää käsin kerran ja käyttää uudelleen useissa komennoissa, toimi näin:

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

Poista käytäntö kaikkien ohjelmien päätyttyä:

sudo mudfish-exclude --cleanup

Manuaalinen tapa ei siivoa automaattisesti. Jotkin työpöytäohjelmat voivat siirtyä käytön aikana toiseen systemd-cgroupiin. Niille sopii paremmin oletusarvoinen kertakäynnistys, joka seuraa cgroup-siirtymiä ja siivoaa automaattisesti.

Jos muutat arvoja --cgroup, --mark, --priority tai --table, käytä samoja arvoja kaikissa --setup-, --no-setup- ja --cleanup-komennoissa. Arvot eivät saa olla ristiriidassa järjestelmän nykyisten palomuurimerkintöjen tai reitityskäytäntöjen kanssa.

Vianmääritys​

mudfish-exclude: command not found​

Ohjelma ei ole PATH-muuttujassa. Etsi asennuspolku ja käytä täydellistä polkua:

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

Vaihda toisen komennon versionumero asennettua versiota vastaavaksi.

network policy setup requires root​

Sinulla ei ole oikeuksia verkkokäytännön määrittämiseen. Lisää komennon alkuun sudo:

sudo mudfish-exclude discord

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

Järjestelmä ei käytä cgroup v2:ta tai sitä ei ole liitetty tähän sijaintiin. Tarkista seuraavalla komennolla; sen koreankielinen tuloste tarkoittaa, että cgroup v2 on käytettävissä.

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

Jos mitään ei tulostu, selvitä jakelusi ohjeista cgroup v2:n käyttöönotto.

iptables rule add failed tai cgroup match -virhe​

Tarkista, että iptables on asennettu ja että ydin sekä iptables tukevat cgroup matchia. Myös nftables-pohjaisessa jakelussa työkalu käyttää suoraan iptables-yhteensopivuuskomentoja, joten toimiva yhteensopivuuskerros tarvitaan.

failed to find the IPv4 default route​

Alkuperäisen internetyhteyden IPv4-oletusreittiä ei löytynyt main-taulukosta. Tarkista, näkyykö seuraavassa tulosteessa default-reitti:

ip -4 route show default table main

Jos oletusreitti puuttuu tai osoittaa jo toiseen VPN-liitäntään, mudfish-exclude ei pysty määrittämään alkuperäistä internetreittiä.

Julkinen IP ei muutu pois jättämisestä huolimatta​

Tarkista järjestyksessä:

  1. Full VPN on todella yhdistetty ja tavallinen suoritus näyttää solmun IP:n.
  2. Kaikki kohdeohjelman vanhat ja taustaprosessit on suljettu ennen uudelleenkäynnistystä.
  3. Käytä curl -4:ää tai muuta IPv4-tarkistusta, jotta et sekoita tulosta IPv6:een.
  4. Tarkista, välittääkö ohjelma komennot erilliselle palvelulle tai jo käynnissä olevalle käynnistimelle. Käytäntö koskee vain mudfish-exclude:n luomaa uutta prosessipuuta.
  5. Komennon ip -4 route show default table main oletusreitti osoittaa oikeaan internetliitäntään.

Terminaalikomento ei pääty ohjelman sulkemisen jälkeen​

Lapsi- tai taustaprosessi voi yhä toimia poisjättö-cgroupissa. Sulje myös siihen liittyvät ilmaisinalueen ohjelmat, käynnistimet ja päivitysprosessit. Oletuskäynnistystapa odottaa kaikkien lapsiprosessien päättymistä ennen käytännön poistamista.

Verkko toimii oudosti virheellisen sulkemisen jälkeen​

Sulje kaikki tällä työkalulla käynnistetyt ohjelmat ja poista jäljelle jäänyt käytäntö:

sudo mudfish-exclude --cleanup

Jos ongelma jatkuu, sulje Mudfish, tarkista järjestelmän oletusreitti ja iptables-säännöt ja muodosta yhteys uudelleen.

Toimintaperiaate​

mudfish-exclude sijoittaa käynnistettävän ohjelman erilliseen cgroup v2:een ja merkitsee sen IPv4-paketit iptables-markilla. Merkityt paketit ohjataan erillisen käytäntöreititystaulukon kautta Linuxin main-taulukosta löydettyyn oletusreittiin, ja tarvittava NAT MASQUERADE otetaan käyttöön.

Työkalu ei muuta mudrun-, mudflow-, mudfish- tai mudwfp_proxy-ohjelman asetuksia eikä jaetun muistin tilaa. Poisjättökäytäntö toimii vain käyttöjärjestelmän cgroup-, iptables- ja IPv4-käytäntöreitityskerroksissa.