Hop til hovedindhold

Brugervejledning til mudfish-exclude

info

Programmet er kun tilgængeligt i Mudfish Cloud VPN 6.5.4 eller senere.

mudfish-exclude er et kommandolinjeværktøj til Linux, som starter enkelte programmer uden for Mudfishs rute. Det er især nyttigt med Full VPN, når trafik fra eksempelvis browser, beskedapp, videoafspiller eller downloadværktøj skal gå direkte via den normale internetforbindelse.

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

Diagrammet viser, at almindelige programmer går via Mudfish-ruten til noden, mens programmer startet med mudfish-exclude følger den oprindelige standardrute til internettet.

Værktøjet tilføjer ingen indstillinger i oversigten. Start blot det ønskede program med mudfish-exclude i stedet for den normale kommando.

Understøttelse: kun Linux og IPv4. Windows, macOS og Android understøttes ikke, og der anvendes ingen særskilt omgåelsespolitik på IPv6-trafik.

Krav​

Alle følgende betingelser skal være opfyldt:

  • Mudfish til Linux er installeret.
  • cgroup v2 er monteret på /sys/fs/cgroup.
  • Kommandoerne ip og iptables samt cgroup-matchning i iptables er tilgængelige.
  • Du har sudo-rettigheder til at konfigurere policyrouting og firewallregler.
  • Linux' hovedroutingtabel, main, har en fungerende IPv4-standardrute.

Den eksekverbare fil findes normalt her:

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

Pladsholderen angiver Mudfish-versionen. Find den aktuelle sti med:

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

Hvis programmet ikke findes i PATH, skal du erstatte mudfish-exclude i eksemplerne med den fulde sti. For 6.5.4 er standardstien /opt/mudfish/6.5.4/bin/mudfish-exclude.

Grundlæggende brug​

  1. Start Mudfish, og forbind normalt med de ønskede elementer eller Full VPN.
  2. Hvis det program, der skal undtages, allerede kører, skal det afsluttes helt, inklusive systembakke- og baggrundsprocesser.
  3. Start det igen fra terminalen med følgende format:
sudo mudfish-exclude <프로그램> [프로그램 옵션...]

Pladsholderne angiver programmet og dets indstillinger. Undtag eksempelvis Discord med:

sudo mudfish-exclude discord

Undtag Firefox og åbn et privat vindue med:

sudo mudfish-exclude firefox --private-window

Sæt stier med mellemrum i anførselstegn:

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

sudo bruges til netværkspolitikken. Selve programmet, der startes med sudo mudfish-exclude ..., køres om muligt med den oprindelige brugers UID, GID, hjemmemappe og skrivebordssessionsmiljø.

Vigtigt at vide​

  • Undtagelsen gælder processen, som mudfish-exclude starter, og dens underprocesser.
  • Politikken kan ikke tilføjes til et program, der allerede kører. Afslut derfor programmer med kun én instans helt, så en eksisterende proces ikke genbruges.
  • Ved normal enkeltkørsel fjernes politikken automatisk, når programmet og alle underprocesser er afsluttet.
  • Flere mudfish-exclude-kommandoer kan køre samtidig. Den fælles politik fjernes, når det sidste undtagne program afsluttes.
  • Det undtagne programs IPv4-trafik bruger hverken Mudfish-noder, acceleration eller Mudfish-rutens offentlige IP-adresse.

Kontrollér funktionen​

Det er nemmest at kontrollere, når den offentlige IPv4-adresse før Full VPN er forskellig fra nodens offentlige IPv4-adresse.

Kontrollér først adressen i en almindelig terminal med Full VPN forbundet:

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

Kør samme kommando med mudfish-exclude:

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

Første resultat skal vise nodens adresse, og andet resultat den normale internetforbindelses adresse. -4 begrænser testen til IPv4, som værktøjet understøtter.

For at kontrollere i browseren skal du afslutte den helt, starte den som nedenfor og åbne https://myip.mudfish.net:

sudo mudfish-exclude firefox

Afslutning og oprydning​

Ved normal afslutning kræves ingen særskilt oprydningskommando. Politikken kan dog blive tilbage, hvis mudfish-exclude tvangsafsluttes, terminalen lukkes unormalt, eller systemet afbrydes.

Afslut først alle programmer startet med værktøjet, og kør:

sudo mudfish-exclude --cleanup

Hvis undtagne programmer stadig kører, kan --cleanup straks stoppe deres omgåelse af Mudfish.

Kommandoindstillinger​

사용법: mudfish-exclude [옵션] 프로그램 [프로그램 옵션...]

Syntaksen er mudfish-exclude, værktøjets indstillinger, programmet og derefter programmets indstillinger.

IndstillingBeskrivelse
-h, --helpVis hjælp.
--setupOpret kun netværkspolitikken og afslut. Kan ikke kombineres med et program.
--cleanupFjern netværkspolitikken og afslut. Kan ikke kombineres med et program.
--no-setupGå ind i den angivne cgroup og start programmet uden at genoprette politikken.
--cgroup NAMEAngiv cgroup v2-navnet. Standard er mudfish-exclude.
--mark VALUEAngiv pakkernes firewallmarkering. Standard er 0x6d660001.
--priority VALUEAngiv IPv4-policyreglens prioritet. Standard er 8252.
--table VALUEAngiv routingtabellen til den oprindelige standardrute. Standard er 8252.

Skriv programmet efter -- for tydeligt at afslutte fortolkningen af værktøjets indstillinger:

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

Genbrug politikken til flere programmer​

Normal enkeltkørsel anbefales til almindelige brugere. Hvis du skal oprette politikken manuelt én gang og genbruge den, kan du gøre sådan:

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

Fjern altid politikken efter afslutning af alle programmer:

sudo mudfish-exclude --cleanup

Manuel brug rydder ikke automatisk op. Nogle skrivebordsprogrammer flytter desuden til en anden systemd-cgroup under kørslen. Til dem er normal enkeltkørsel mere egnet, fordi den følger cgroup-flytninger og rydder op automatisk.

Hvis du ændrer --cgroup, --mark, --priority eller --table, skal samme værdier bruges med --setup, --no-setup og --cleanup. Egne værdier må ikke kollidere med eksisterende firewallmarkeringer eller policyroutingregler.

Fejlfinding​

mudfish-exclude: command not found​

Programmet findes ikke i PATH. Find installationsstedet, og brug den fulde sti:

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

Tilpas versionsnummeret i anden kommando til den installerede version.

network policy setup requires root​

Du mangler rettigheder til at konfigurere netværkspolitikken. Kør igen med sudo:

sudo mudfish-exclude discord

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

Systemet bruger ikke cgroup v2 eller har ikke monteret det dér. Kontrollér med:

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

Kommandoen skriver, at cgroup v2 er tilgængelig, hvis kontrollen lykkes. Hvis intet vises, skal du undersøge, hvordan det aktiveres i din distribution.

iptables rule add failed eller fejl ved cgroup-matchning​

Kontrollér, at iptables er installeret, og at kernen og iptables understøtter cgroup-matchning. Selv på nftables-baserede distributioner bruger værktøjet de kompatible iptables-kommandoer direkte, så et fungerende kompatibilitetslag kræves.

failed to find the IPv4 default route​

Den oprindelige internetforbindelses IPv4-standardrute blev ikke fundet i main-tabellen. Kontrollér, at resultatet har en default-rute:

ip -4 route show default table main

Hvis ruten mangler eller allerede peger på et andet VPN-interface, kan mudfish-exclude ikke konfigurere den oprindelige internetvej.

Den offentlige IP ændres ikke trods undtagelsen​

Kontrollér i rækkefølge:

  1. Full VPN er faktisk forbundet, og normal kørsel viser nodens IP-adresse.
  2. Alle programmets eksisterende processer og baggrundsprocesser er afsluttet, før det startes igen.
  3. Brug curl -4 eller en IPv4-kontrol for ikke at forveksle resultatet med IPv6.
  4. Undersøg, om programmet sender kommandoen videre til en separat tjeneste eller en allerede kørende launcher. Undtagelsen gælder kun procestræet, som mudfish-exclude opretter.
  5. Standardruten fra ip -4 route show default table main peger på det faktiske internetinterface.

Terminalkommandoen fortsætter efter lukning af programmet​

En underproces eller baggrundsproces kan stadig køre i undtagelsens cgroup. Afslut også tilhørende systembakkeprogrammer, launchers og opdateringsprocesser. Standardkørsel venter, til alle underprocesser er afsluttet, før politikken fjernes.

Netværket opfører sig forkert efter unormal afslutning​

Afslut alle programmer startet med værktøjet, og fjern resterende politik:

sudo mudfish-exclude --cleanup

Hvis problemet fortsætter, afslut Mudfish, kontrollér systemets standardrute og iptables-regler, og forbind igen.

Virkemåde​

mudfish-exclude placerer programmet i en separat cgroup v2 og markerer dens IPv4-pakker med iptables. De markerede pakker sendes via en separat policyroutingtabel til standardruten fra Linux' main-tabel, og nødvendig NAT MASQUERADE anvendes.

Dette ændrer ikke indstillingerne eller den delte hukommelsestilstand for mudrun, mudflow, mudfish eller mudwfp_proxy. Politikken virker kun i operativsystemets lag for cgroup, iptables og IPv4-policyrouting.