Brugervejledning til mudfish-exclude
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
ipogiptablessamt 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
- Start Mudfish, og forbind normalt med de ønskede elementer eller Full VPN.
- Hvis det program, der skal undtages, allerede kører, skal det afsluttes helt, inklusive systembakke- og baggrundsprocesser.
- 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-excludestarter, 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
--cleanupstraks stoppe deres omgåelse af Mudfish.
Kommandoindstillinger
사용법: mudfish-exclude [옵션] 프로그램 [프로그램 옵션...]
Syntaksen er mudfish-exclude, værktøjets indstillinger, programmet og derefter programmets indstillinger.
| Indstilling | Beskrivelse |
|---|---|
-h, --help | Vis hjælp. |
--setup | Opret kun netværkspolitikken og afslut. Kan ikke kombineres med et program. |
--cleanup | Fjern netværkspolitikken og afslut. Kan ikke kombineres med et program. |
--no-setup | Gå ind i den angivne cgroup og start programmet uden at genoprette politikken. |
--cgroup NAME | Angiv cgroup v2-navnet. Standard er mudfish-exclude. |
--mark VALUE | Angiv pakkernes firewallmarkering. Standard er 0x6d660001. |
--priority VALUE | Angiv IPv4-policyreglens prioritet. Standard er 8252. |
--table VALUE | Angiv 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:
- Full VPN er faktisk forbundet, og normal kørsel viser nodens IP-adresse.
- Alle programmets eksisterende processer og baggrundsprocesser er afsluttet, før det startes igen.
- Brug
curl -4eller en IPv4-kontrol for ikke at forveksle resultatet med IPv6. - 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-excludeopretter. - Standardruten fra
ip -4 route show default table mainpeger 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.