Brukerveiledning for mudfish-exclude
Programmet er bare tilgjengelig i Mudfish Cloud VPN 6.5.4 eller nyere.
mudfish-exclude er et kommandolinjeverktøy for Mudfish på Linux som starter bestemte programmer utenfor Mudfish-ruten. Det er særlig nyttig med Full VPN når trafikk fra nettlesere, meldingsprogrammer, videospillere eller nedlastingsverktøy skal gå direkte gjennom den vanlige internettforbindelsen.
일반 프로그램 -> 미꾸라지 경로 -> 중계 서버
mudfish-exclude 앱 -> 기존 기본 경로 -> 인터넷
Diagrammet viser at vanlige programmer følger Mudfish-ruten til en node, mens programmer startet med mudfish-exclude følger den opprinnelige standardruten til internett.
Verktøyet legger ikke til innstillinger i Mudfish-kontrollpanelet. Start programmet som skal unntas, med mudfish-exclude i stedet for den vanlige startkommandoen.
Støtte: Foreløpig støttes bare Linux og IPv4. Verktøyet kan ikke brukes på Windows, macOS eller Android og bruker ingen egen omgåelsespolicy for IPv6-trafikk.
Nødvendig miljø
Alle følgende krav må være oppfylt:
- Mudfish for Linux må være installert.
- cgroup v2 må være montert på
/sys/fs/cgroup. - Kommandoene
ipogiptables, samt iptables-funksjonen cgroup match, må være tilgjengelige. - Du må ha
sudo-rettigheter for å konfigurere policyruting og brannmurregler. - Linux' main-rutingtabell må ha en fungerende IPv4-standardrute.
Programfilen finnes vanligvis her. Den koreanske plassholderen betyr Mudfish-versjon:
/opt/mudfish/<미꾸라지 버전>/bin/mudfish-exclude
Finn den aktuelle installasjonsbanen med:
ls /opt/mudfish/*/bin/mudfish-exclude
Hvis programfilen ikke er registrert i PATH, erstatt mudfish-exclude i eksemplene nedenfor med den fullstendige banen. Standardbanen for 6.5.4 er for eksempel /opt/mudfish/6.5.4/bin/mudfish-exclude.
Grunnleggende bruk
- Start Mudfish, og koble til ønsket element eller Full VPN på vanlig måte.
- Hvis programmet som skal unntas, allerede kjører, avslutt det helt, inkludert systemstatusfeltet og bakgrunnsprosesser.
- Start programmet på nytt fra terminalen med følgende format. Plassholderne betyr program og programalternativer.
sudo mudfish-exclude <프로그램> [프로그램 옵션...]
For å unnta Discord:
sudo mudfish-exclude discord
For å unnta Firefox og åpne et privat vindu:
sudo mudfish-exclude firefox --private-window
Sett anførselstegn rundt programbanen hvis den inneholder mellomrom:
sudo mudfish-exclude "/path/to/My Program" --option
sudo brukes til å konfigurere nettverkspolicyen. Selve programmet som startes med sudo mudfish-exclude ..., kjøres om mulig med UID, GID, hjemmemappe og skrivebordssesjonsmiljø for brukeren som opprinnelig kalte sudo.
Viktig å vite
- Unntakspolicyen gjelder den nye prosessen som startes med
mudfish-exclude, og dens underprosesser. - Policyen kan ikke legges til et program som allerede kjører. Avslutt programmet helt først, slik at et program som bare bruker én instans, ikke gjenbruker en eksisterende prosess.
- Ved vanlig enkeltkjøring ryddes policyen opp automatisk når programmet og alle underprosesser er avsluttet.
- Flere
mudfish-exclude-kommandoer kan kjøre samtidig. Den felles policyen ryddes opp etter at det siste unntatte programmet avsluttes. - IPv4-trafikk fra unntatte programmer bruker ikke Mudfish-noder, akselerasjon eller den offentlige IP-adressen til Mudfish-ruten.
Kontrollere at det fungerer
Dette er enklest å kontrollere når den offentlige IPv4-adressen før Full VPN er forskjellig fra nodens offentlige IPv4-adresse.
Kontroller først adressen i en vanlig terminal mens Full VPN er tilkoblet:
curl -4 https://myip.mudfish.net
Kjør deretter samme kommando med mudfish-exclude:
sudo mudfish-exclude curl -4 https://myip.mudfish.net
Det første resultatet skal vise adressen på nodesiden, mens det andre skal vise den vanlige internettforbindelsens adresse. -4 begrenser testen til IPv4, som verktøyet støtter.
For å teste i en nettleser, avslutt nettleseren helt, start den slik, og åpne https://myip.mudfish.net:
sudo mudfish-exclude firefox
Avslutning og opprydding
Ved normal avslutning trengs ingen egen oppryddingskommando. Policyen kan imidlertid bli liggende igjen hvis mudfish-exclude tvangsavsluttes, terminalen lukkes unormalt eller systemet stopper.
Avslutt først alle programmer som er startet med verktøyet, og kjør:
sudo mudfish-exclude --cleanup
Hvis du bruker
--cleanupmens unntatte programmer fortsatt kjører, kan omgåelsen deres stoppe umiddelbart.
Kommandoalternativer
Bruksformatet nedenfor viser alternativer, program og programalternativer:
사용법: mudfish-exclude [옵션] 프로그램 [프로그램 옵션...]
| Alternativ | Beskrivelse |
|---|---|
-h, --help | Vis hjelp. |
--setup | Konfigurer bare nettverkspolicyen for unntak, og avslutt. Kan ikke kombineres med et program. |
--cleanup | Fjern nettverkspolicyen for unntak, og avslutt. Kan ikke kombineres med et program. |
--no-setup | Gå inn i angitt cgroup og kjør programmet uten å konfigurere policyen på nytt. |
--cgroup NAME | Angi cgroup v2-navnet. Standardverdien er mudfish-exclude. |
--mark VALUE | Angi brannmurmerket for pakkene. Standardverdien er 0x6d660001. |
--priority VALUE | Angi prioriteten for IPv4-policyregelen. Standardverdien er 8252. |
--table VALUE | Angi nummeret på rutingtabellen som skal inneholde den opprinnelige standardruten. Standardverdien er 8252. |
Sett programmet etter -- for å avslutte tolkningen av alternativer uttrykkelig:
sudo mudfish-exclude -- firefox --private-window
Gjenbruke policyen for flere programmer
Vanlige brukere anbefales å starte hvert program separat på standardmåten. Hvis du trenger å konfigurere policyen manuelt én gang og gjenbruke den i flere kommandoer, kan du gjøre følgende:
sudo mudfish-exclude --setup
sudo mudfish-exclude --no-setup discord
sudo mudfish-exclude --no-setup firefox
Etter at alle programmene er avsluttet, må policyen ryddes opp:
sudo mudfish-exclude --cleanup
Den manuelle metoden rydder ikke opp automatisk. Enkelte skrivebordsprogrammer kan også flytte til en annen systemd-cgroup under kjøring. For slike programmer passer standardmetoden bedre, siden den følger cgroup-flytting og rydder opp automatisk.
Hvis du endrer --cgroup, --mark, --priority eller --table, må de samme verdiene brukes med --setup, --no-setup og --cleanup. Egendefinerte verdier må ikke komme i konflikt med eksisterende brannmurmerker eller policyrutingsregler.
Feilsøking
mudfish-exclude: command not found
Programfilen finnes ikke i PATH. Finn installasjonsbanen, og kjør den med fullstendig bane:
ls /opt/mudfish/*/bin/mudfish-exclude
sudo /opt/mudfish/6.5.4/bin/mudfish-exclude discord
Tilpass versjonsnummeret i den andre kommandoen til den installerte versjonen.
network policy setup requires root
Du mangler rettigheter til å konfigurere nettverkspolicyen. Sett sudo foran kommandoen, og prøv igjen:
sudo mudfish-exclude discord
cgroup v2 is required at /sys/fs/cgroup
Systemet bruker ikke cgroup v2, eller det er ikke montert på forventet sted. Kontroller med følgende kommando; den koreanske teksten betyr at cgroup v2 er tilgjengelig:
test -f /sys/fs/cgroup/cgroup.controllers && echo "cgroup v2 사용 가능"
Hvis ingenting skrives ut, undersøk hvordan cgroup v2 aktiveres i distribusjonen din.
iptables rule add failed eller cgroup match-feil
Kontroller at iptables er installert, og at både kjernen og iptables støtter cgroup match. Verktøyet bruker iptables-kompatible kommandoer direkte også på nftables-baserte distribusjoner, så et fungerende kompatibilitetslag kreves.
failed to find the IPv4 default route
Verktøyet fant ikke den opprinnelige internettforbindelsens IPv4-standardrute i main-rutingtabellen. Kontroller at følgende kommando viser en default-rute:
ip -4 route show default table main
Hvis standardruten mangler eller allerede peker til et annet VPN-grensesnitt, kan mudfish-exclude ikke sette opp den opprinnelige internettruten.
Den offentlige IP-adressen endres ikke selv om programmet er unntatt
Kontroller følgende i rekkefølge:
- At Full VPN faktisk er tilkoblet, og at vanlig kjøring viser nodens IP-adresse.
- Avslutt alle eksisterende prosesser og bakgrunnsprosesser for målprogrammet, og start det på nytt.
- Bruk
curl -4eller en annen IPv4-test for å unngå å forveksle resultatet med IPv6. - Kontroller om programmet sender kommandoen videre til en egen tjeneste eller en launcher som allerede kjører. Unntakspolicyen gjelder bare prosessrekken som
mudfish-excludeoppretter. - Kontroller at standardruten i
ip -4 route show default table mainpeker til det faktiske internettgrensesnittet.
Terminalkommandoen avsluttes ikke selv om programmet er lukket
Underprosesser eller bakgrunnsprosesser kan fortsatt kjøre i unntakets cgroup. Avslutt også tilknyttede systemstatusfeltikoner, launchere og oppdateringsprosesser. Standardmetoden venter på at alle underprosesser avsluttes før policyen ryddes opp.
Nettverket oppfører seg unormalt etter en uventet avslutning
Avslutt alle programmer startet med verktøyet, og rydd opp gjenværende policy:
sudo mudfish-exclude --cleanup
Hvis problemet vedvarer, avslutt Mudfish, kontroller systemets standardrute og iptables-regler, og koble til igjen.
Hvordan det fungerer
mudfish-exclude plasserer programmet i en egen cgroup v2 og merker IPv4-pakker fra denne gruppen med iptables. Pakker med dette merket sendes gjennom en egen policyrutingstabell til standardruten som ble funnet i Linux' main-rutingtabell. Nødvendig NAT MASQUERADE brukes også.
Prosessen endrer ikke innstillingene eller det delte minnet for mudrun, mudflow, mudfish eller mudwfp_proxy. Unntakspolicyen virker bare i operativsystemets cgroup-, iptables- og IPv4-policyrutingslag.