Přeskočit na hlavní obsah

Uživatelská příručka mudfish-exclude

info

Tento program je dostupný pouze v Mudfish Cloud VPN 6.5.4 nebo novějším.

mudfish-exclude je nástroj příkazového řádku pro Linux, který spouští vybrané programy mimo cestu Mudfish. Hodí se zejména při používání Full VPN, pokud chcete provoz prohlížeče, komunikátoru, přehrávače videa nebo nástroje pro stahování posílat přímo přes původní internetové připojení.

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

Schéma ukazuje, že běžný program používá cestu Mudfish přes uzel, zatímco aplikace spuštěná pomocí mudfish-exclude používá původní výchozí cestu přímo do internetu.

Nástroj nepřidává nastavení do přehledu Mudfish. Vyloučený program jednoduše spusťte pomocí mudfish-exclude místo běžného příkazu.

Podporovaný rozsah: aktuálně pouze Linux a IPv4. Nástroj není dostupný pro Windows, macOS ani Android a pro IPv6 nevytváří samostatná pravidla obcházení.

Požadavky​

Musí být splněny všechny následující podmínky.

  • Je nainstalován Mudfish pro Linux.
  • cgroup v2 je připojen v /sys/fs/cgroup.
  • Jsou dostupné příkazy ip, iptables a funkce cgroup match v iptables.
  • Máte oprávnění sudo pro nastavení směrovacích politik a pravidel firewallu.
  • Hlavní směrovací tabulka Linuxu obsahuje funkční výchozí trasu IPv4.

Spustitelný soubor bývá nainstalován zde.

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

Zástupný údaj v cestě označuje verzi Mudfish. Aktuální umístění zjistíte příkazem:

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

Pokud soubor není v PATH, nahraďte mudfish-exclude v příkladech zjištěnou úplnou cestou. Pro verzi 6.5.4 je výchozí cesta /opt/mudfish/6.5.4/bin/mudfish-exclude.

Základní použití​

  1. Spusťte Mudfish a připojte požadované položky nebo režim Full VPN.
  2. Pokud vylučovaný program již běží, úplně jej ukončete včetně procesů v oznamovací oblasti a na pozadí.
  3. Znovu jej spusťte z terminálu následujícím způsobem.
sudo mudfish-exclude <프로그램> [프로그램 옵션...]

Zástupné údaje označují program a jeho volby. Například Discord vyloučíte takto:

sudo mudfish-exclude discord

Firefox s anonymním oknem spustíte mimo Mudfish takto:

sudo mudfish-exclude firefox --private-window

Pokud cesta obsahuje mezery, uzavřete ji do uvozovek.

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

sudo slouží k nastavení síťové politiky. Samotný program spuštěný přes sudo mudfish-exclude ... se pokud možno spouští s UID, GID, domovským adresářem a prostředím desktopové relace původního uživatele, který vyvolal sudo.

Co je potřeba vědět​

  • Výjimka platí pro nově spuštěný proces mudfish-exclude a jeho potomky.
  • Nelze ji dodatečně připojit k již běžícímu programu. Program s jedinou instancí nejprve úplně ukončete, aby znovu nepoužil existující proces.
  • Při běžném jednorázovém spuštění se politika automaticky odstraní po ukončení programu a všech jeho potomků.
  • Můžete současně spustit více příkazů mudfish-exclude. Společná politika se odstraní po ukončení posledního vyloučeného programu.
  • IPv4 provoz vyloučeného programu nepoužívá uzly Mudfish, urychlování ani veřejnou IP adresu této cesty.

Ověření funkčnosti​

Nejjednodušší ověření je možné, pokud se veřejná IPv4 adresa před připojením Full VPN liší od veřejné IPv4 adresy uzlu Full VPN.

Nejprve zjistěte adresu v běžném terminálu při připojeném Full VPN.

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

Stejný příkaz spusťte přes mudfish-exclude.

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

První výsledek má ukázat adresu uzlu Mudfish, druhý adresu původního internetového připojení. Volba -4 omezuje test na IPv4 v souladu s podporovaným rozsahem nástroje.

Pro ověření v prohlížeči jej nejprve úplně ukončete, spusťte následujícím způsobem a otevřete https://myip.mudfish.net.

sudo mudfish-exclude firefox

Ukončení a odstranění politiky​

Při normálním ukončení není potřeba samostatný úklidový příkaz. Po násilném ukončení mudfish-exclude, neočekávaném zavření terminálu nebo přerušení systému však může politika zůstat aktivní.

Nejprve ukončete všechny programy spuštěné tímto nástrojem a poté spusťte:

sudo mudfish-exclude --cleanup

Použití --cleanup za běhu vyloučeného programu může okamžitě ukončit jeho obcházení Mudfish.

Volby příkazu​

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

Syntaxe znamená: mudfish-exclude, volby nástroje, program a jeho volby.

VolbaPopis
-h, --helpZobrazí nápovědu.
--setupPouze nastaví síťovou politiku pro vyloučení a skončí. Nelze současně zadat program.
--cleanupOdstraní síťovou politiku pro vyloučení a skončí. Nelze současně zadat program.
--no-setupVstoupí do určené cgroup a spustí program bez opětovného nastavení politiky.
--cgroup NAMEUrčuje název cgroup v2. Výchozí je mudfish-exclude.
--mark VALUEUrčuje značku firewallu pro pakety. Výchozí je 0x6d660001.
--priority VALUEUrčuje prioritu pravidla IPv4. Výchozí je 8252.
--table VALUEUrčuje číslo směrovací tabulky obsahující původní výchozí trasu. Výchozí je 8252.

Pro jednoznačné ukončení zpracování voleb můžete program uvést za --.

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

Opakované použití politiky pro více programů​

Běžným uživatelům doporučujeme jednorázové spuštění každého programu. Pokud potřebujete politiku jednou ručně nastavit a znovu použít pro více příkazů, postupujte takto:

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

Po ukončení všech programů politiku nezapomeňte odstranit.

sudo mudfish-exclude --cleanup

Ruční režim neprovádí automatický úklid. Některé desktopové programy se navíc za běhu přesouvají do jiné cgroup systemd. Pro ně je vhodnější výchozí jednorázové spuštění, které přesuny sleduje a automaticky uklízí.

Pokud změníte --cgroup, --mark, --priority nebo --table, používejte stejné hodnoty při --setup, --no-setup i --cleanup. Vlastní hodnoty nesmí kolidovat s existujícími značkami firewallu ani pravidly směrovací politiky systému.

Řešení problémů​

mudfish-exclude: command not found​

Spustitelný soubor není v PATH. Zjistěte umístění a použijte úplnou cestu.

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

Číslo verze ve druhém příkazu upravte podle nainstalované verze.

network policy setup requires root​

Nemáte oprávnění pro nastavení síťové politiky. Přidejte před příkaz sudo a spusťte jej znovu.

sudo mudfish-exclude discord

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

Systém nepoužívá cgroup v2 nebo jej nemá připojený v uvedeném umístění. Ověřte to příkazem:

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

Vypsaná zpráva znamená, že je cgroup v2 dostupný. Pokud se nic nevypíše, zjistěte postup jeho zapnutí ve své distribuci.

iptables rule add failed nebo chyba cgroup match​

Zkontrolujte instalaci iptables a podporu cgroup match v jádře i iptables. I v distribucích založených na nftables nástroj přímo používá kompatibilní příkazy iptables, a proto potřebuje funkční vrstvu kompatibility iptables.

failed to find the IPv4 default route​

V hlavní směrovací tabulce nebyla nalezena výchozí IPv4 trasa původního internetového připojení. Zkontrolujte, zda výstup obsahuje trasu default:

ip -4 route show default table main

Pokud výchozí trasa chybí nebo již směřuje na rozhraní jiné VPN, mudfish-exclude nemůže sestavit původní internetovou cestu.

Veřejná IP adresa se po vyloučení nezměnila​

Postupně ověřte následující.

  1. Full VPN je skutečně připojen a běžné spuštění ukazuje IP adresu uzlu.
  2. Ukončete všechny původní i běžící procesy na pozadí cílového programu a spusťte jej znovu.
  3. Použijte curl -4 nebo jiný test IPv4, abyste nezaměnili výsledek s IPv6.
  4. Zjistěte, zda program nepředává příkazy samostatné službě nebo již běžícímu spouštěči. Výjimka platí jen pro novou větev procesů vytvořenou mudfish-exclude.
  5. Ověřte, že výchozí trasa z ip -4 route show default table main směřuje na skutečné internetové rozhraní.

Program je zavřený, ale příkaz v terminálu neskončil​

V cgroup pro vyloučení může stále běžet potomek nebo proces na pozadí. Ukončete také související ikony v oznamovací oblasti, spouštěče a aktualizační procesy. Výchozí způsob spuštění čeká na konec všech potomků a teprve pak odstraní politiku.

Po neočekávaném ukončení síť nefunguje správně​

Ukončete všechny programy spuštěné nástrojem a odstraňte zbývající politiku.

sudo mudfish-exclude --cleanup

Pokud problém trvá, ukončete Mudfish, zkontrolujte výchozí trasu systému a pravidla iptables a znovu se připojte.

Princip fungování​

mudfish-exclude umístí spouštěný program do samostatné cgroup v2 a IPv4 paketům z této skupiny přiřadí značku iptables. Pakety se značkou jsou přes samostatnou tabulku směrovací politiky předávány na výchozí trasu nalezenou v hlavní směrovací tabulce Linuxu a podle potřeby se použije NAT MASQUERADE.

Tento postup nemění nastavení ani stav sdílené paměti mudrun, mudflow, mudfish nebo mudwfp_proxy. Výjimky fungují pouze ve vrstvách cgroup, iptables a směrovací politiky IPv4 operačního systému.