Uživatelská příručka mudfish-exclude
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,iptablesa funkce cgroup match v iptables. - Máte oprávnění
sudopro 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í
- Spusťte Mudfish a připojte požadované položky nebo režim Full VPN.
- Pokud vylučovaný program již běží, úplně jej ukončete včetně procesů v oznamovací oblasti a na pozadí.
- 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-excludea 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í
--cleanupza 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.
| Volba | Popis |
|---|---|
-h, --help | Zobrazí nápovědu. |
--setup | Pouze nastaví síťovou politiku pro vyloučení a skončí. Nelze současně zadat program. |
--cleanup | Odstraní síťovou politiku pro vyloučení a skončí. Nelze současně zadat program. |
--no-setup | Vstoupí do určené cgroup a spustí program bez opětovného nastavení politiky. |
--cgroup NAME | Určuje název cgroup v2. Výchozí je mudfish-exclude. |
--mark VALUE | Určuje značku firewallu pro pakety. Výchozí je 0x6d660001. |
--priority VALUE | Určuje prioritu pravidla IPv4. Výchozí je 8252. |
--table VALUE | Urč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í.
- Full VPN je skutečně připojen a běžné spuštění ukazuje IP adresu uzlu.
- Ukončete všechny původní i běžící procesy na pozadí cílového programu a spusťte jej znovu.
- Použijte
curl -4nebo jiný test IPv4, abyste nezaměnili výsledek s IPv6. - 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. - Ověřte, že výchozí trasa z
ip -4 route show default table mainsměř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.