Ga naar hoofdinhoud

Gebruikershandleiding voor mudfish-exclude

info

Dit programma is alleen beschikbaar in Mudfish Cloud VPN 6.5.4 of nieuwer.

mudfish-exclude is een opdrachtregelhulpmiddel voor Mudfish op Linux waarmee je bepaalde programma's buiten het Mudfish-pad start. Dit is vooral handig als je Full VPN gebruikt, maar verkeer van browsers, chatprogramma's, videospelers of downloadprogramma's rechtstreeks via je bestaande internetverbinding wilt sturen.

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

In dit oorspronkelijke schema gaat een gewoon programma via het Mudfish-pad naar een knooppunt. Een app die met mudfish-exclude wordt gestart, volgt de bestaande standaardroute naar internet.

Dit hulpmiddel voegt geen instellingen aan het Mudfish-dashboard toe. Start het uit te sluiten programma eenvoudig met mudfish-exclude in plaats van het gebruikelijke commando.

Ondersteuning: momenteel alleen Linux en IPv4. Het werkt niet op Windows, macOS of Android en past geen afzonderlijk omleidingsbeleid toe op IPv6-verkeer.

Vereisten​

Aan alle volgende voorwaarden moet zijn voldaan:

  • Mudfish voor Linux is geïnstalleerd.
  • cgroup v2 is gekoppeld op /sys/fs/cgroup.
  • De commando's ip en iptables en de cgroup-matchfunctie van iptables zijn beschikbaar.
  • Je hebt sudo-rechten om beleidsroutering en firewallregels in te stellen.
  • De main-routeringstabel van Linux bevat een werkende IPv4-standaardroute.

Het uitvoerbare bestand staat doorgaans hier:

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

De Koreaanse plaatsaanduiding betekent de Mudfish-versie. Zoek het huidige installatiepad met:

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

Staat het bestand niet in PATH, vervang dan mudfish-exclude in de voorbeelden door het gevonden volledige pad. Voor versie 6.5.4 is het standaardpad bijvoorbeeld /opt/mudfish/6.5.4/bin/mudfish-exclude.

Basisgebruik​

  1. Start Mudfish en verbind met de gewenste items of Full VPN.
  2. Als het uit te sluiten programma al actief is, sluit het dan volledig af, inclusief systeemvak- en achtergrondprocessen.
  3. Start het programma opnieuw in de terminal met de volgende vorm:
sudo mudfish-exclude <프로그램> [프로그램 옵션...]

De plaatsaanduidingen staan voor het programma en de eventuele programmaopties. Voor Discord gebruik je bijvoorbeeld:

sudo mudfish-exclude discord

Om Firefox uit te sluiten en een privévenster te openen:

sudo mudfish-exclude firefox --private-window

Zet een uitvoerbaar pad met spaties tussen aanhalingstekens:

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

sudo wordt gebruikt om het netwerkbeleid in te stellen. Het programma zelf wordt waar mogelijk gestart met de UID, GID, thuismap en bureaubladsessie van de oorspronkelijke gebruiker die sudo heeft aangeroepen.

Goed om te weten​

  • Het uitsluitingsbeleid geldt voor het nieuwe proces dat met mudfish-exclude is gestart en zijn kindprocessen.
  • Je kunt dit beleid niet achteraf aan een bestaand proces koppelen. Sluit programma's met één instantie eerst volledig af, zodat ze niet een bestaand proces hergebruiken.
  • Bij de normale eenmalige uitvoering wordt het beleid automatisch opgeruimd wanneer het programma en alle kindprocessen zijn afgesloten.
  • Je kunt meerdere mudfish-exclude-commando's tegelijk uitvoeren. Het gedeelde beleid wordt pas opgeruimd nadat het laatste uitgesloten programma stopt.
  • IPv4-verkeer van uitgesloten programma's gebruikt geen Mudfish-knooppunten, versnelling of het openbare IP-adres van dat pad.

De werking controleren​

Dit is het eenvoudigst als het openbare IPv4-adres vóór de Full VPN-verbinding verschilt van dat van het Full VPN-knooppunt.

Controleer eerst het adres in een gewone terminal terwijl Full VPN verbonden is:

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

Voer hetzelfde commando uit via mudfish-exclude:

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

Het eerste resultaat moet het adres aan de kant van het Mudfish-knooppunt tonen, het tweede dat van je bestaande internetverbinding. Met -4 test je uitsluitend IPv4, passend bij de ondersteuning van dit hulpmiddel.

Wil je dit in een browser controleren, sluit de browser dan volledig af, start hem als volgt en open https://myip.mudfish.net:

sudo mudfish-exclude firefox

Afsluiten en beleid opruimen​

Na normaal afsluiten is geen opruimcommando nodig. Als je mudfish-exclude geforceerd beëindigt, de terminal onverwacht sluit of het systeem stopt, kunnen beleidsregels achterblijven.

Sluit eerst alle programma's die je via dit hulpmiddel hebt gestart en voer daarna uit:

sudo mudfish-exclude --cleanup

Als je --cleanup gebruikt terwijl uitgesloten programma's nog actief zijn, kan hun omleiding onmiddellijk stoppen.

Commando-opties​

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

Dit betekent: mudfish-exclude, gevolgd door eventuele opties, het programma en de programmaopties.

OptieBeschrijving
-h, --helpToont de hulptekst.
--setupStelt alleen het uitsluitingsbeleid voor het netwerk in en stopt. Je kunt niet tegelijk een programma opgeven.
--cleanupVerwijdert het uitsluitingsbeleid en stopt. Je kunt niet tegelijk een programma opgeven.
--no-setupStart het programma in de opgegeven cgroup zonder het bestaande beleid opnieuw in te stellen.
--cgroup NAMEDe naam van de cgroup v2. Standaard mudfish-exclude.
--mark VALUEDe firewallmarkering voor pakketten. Standaard 0x6d660001.
--priority VALUEDe prioriteit van de IPv4-beleidsregel. Standaard 8252.
--table VALUEHet nummer van de routeringstabel voor de bestaande standaardroute. Standaard 8252.

Zet het programma achter -- om expliciet aan te geven waar de opties eindigen:

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

Beleid voor meerdere programma's hergebruiken​

Voor gewoon gebruik raden we de eenmalige uitvoering per programma aan. Wil je het beleid één keer handmatig instellen en daarna voor meerdere commando's hergebruiken, doe dan het volgende:

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

Ruim het beleid altijd op nadat alle programma's zijn afgesloten:

sudo mudfish-exclude --cleanup

De handmatige methode ruimt niet automatisch op. Sommige bureaubladprogramma's kunnen bovendien tijdens het uitvoeren naar een andere systemd-cgroup verhuizen. Voor die programma's is de standaard eenmalige uitvoering geschikter, omdat die cgroup-verplaatsingen volgt en automatisch opruimt.

Als je --cgroup, --mark, --priority of --table wijzigt, gebruik dan dezelfde waarden bij --setup, --no-setup en --cleanup. Eigen waarden mogen niet conflicteren met bestaande firewallmarkeringen of beleidsrouteringsregels van het systeem.

Problemen oplossen​

mudfish-exclude: command not found​

Het uitvoerbare bestand staat niet in PATH. Zoek de installatie en gebruik het volledige pad:

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

Vervang het versienummer in het tweede commando door je geïnstalleerde versie.

network policy setup requires root​

Je hebt onvoldoende rechten om het netwerkbeleid in te stellen. Voeg sudo toe en probeer opnieuw:

sudo mudfish-exclude discord

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

Het systeem gebruikt geen cgroup v2 of heeft deze niet op de vereiste locatie gekoppeld. Controleer dit met:

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

De uitvoer betekent dat cgroup v2 beschikbaar is. Verschijnt er niets, raadpleeg dan hoe je cgroup v2 in jouw distributie inschakelt.

iptables rule add failed of een cgroup-matchfout​

Controleer of iptables is geïnstalleerd en of zowel de kernel als iptables cgroup match ondersteunen. Ook op distributies met nftables gebruikt dit hulpmiddel rechtstreeks compatibele iptables-commando's. Er is dus een werkende iptables-compatibiliteitslaag nodig.

failed to find the IPv4 default route​

De IPv4-standaardroute voor je bestaande internetverbinding is niet gevonden in de main-routeringstabel. Controleer of het volgende commando een default-route toont:

ip -4 route show default table main

Als er geen standaardroute is of deze al naar een andere VPN-interface wijst, kan mudfish-exclude het oorspronkelijke internetpad niet instellen.

Het openbare IP-adres verandert niet ondanks de uitsluiting​

Controleer achtereenvolgens:

  1. Full VPN is daadwerkelijk verbonden en een normale uitvoering toont het IP-adres van het knooppunt.
  2. Sluit alle bestaande en achtergrondprocessen van het programma af en start het opnieuw.
  3. Gebruik curl -4 of een andere IPv4-controle om verwarring met IPv6-resultaten te voorkomen.
  4. Controleer of het programma opdrachten doorgeeft aan een afzonderlijke dienst of een al actieve launcher. Het uitsluitingsbeleid geldt alleen voor de procesboom die mudfish-exclude nieuw aanmaakt.
  5. Controleer of de standaardroute van ip -4 route show default table main naar de daadwerkelijke internetinterface wijst.

Het terminalcommando blijft actief nadat het programma is gesloten​

Er kunnen nog kind- of achtergrondprocessen in de uitsluitings-cgroup actief zijn. Sluit ook bijbehorende systeemvakpictogrammen, launchers en updateprocessen af. De standaarduitvoering wacht tot alle kindprocessen zijn gestopt voordat ze het beleid opruimt.

Het netwerk werkt vreemd na onverwacht afsluiten​

Sluit alle via dit hulpmiddel gestarte programma's af en ruim het achtergebleven beleid op:

sudo mudfish-exclude --cleanup

Blijft het probleem bestaan, sluit Mudfish dan af, controleer de standaardroute en iptables-regels van het systeem en verbind opnieuw.

Werking​

mudfish-exclude plaatst het programma in een afzonderlijke cgroup v2 en markeert de IPv4-pakketten uit die cgroup met iptables. Pakketten met die markering volgen via een aparte beleidsrouteringstabel de standaardroute die in de Linux-main-routeringstabel is gevonden. Waar nodig wordt NAT MASQUERADE toegepast.

Dit wijzigt geen instellingen of gedeeld geheugen van mudrun, mudflow, mudfish of mudwfp_proxy. Het uitsluitingsbeleid werkt uitsluitend op de lagen cgroup, iptables en IPv4-beleidsroutering van het besturingssysteem.