Ghidul mudfish-exclude
Disponibil numai în Mudfish Cloud VPN 6.5.4 sau mai nou.
mudfish-exclude este un instrument de linie de comandă pentru Linux care pornește anumite programe în afara rutelor Mudfish. Este util mai ales în Full VPN, când doriți ca browserul, mesageria, playerul video sau instrumentele de descărcare să folosească direct conexiunea originală.
일반 프로그램 -> 미꾸라지 경로 -> 중계 서버
mudfish-exclude 앱 -> 기존 기본 경로 -> 인터넷
Schema originală de mai sus arată că programele obișnuite trec prin ruta Mudfish și nod, iar aplicația pornită cu mudfish-exclude trece prin ruta implicită originală spre internet.
Instrumentul nu adaugă setări în tabloul de bord. Porniți programul de exclus cu mudfish-exclude în locul comenzii obișnuite.
Compatibilitate: în prezent numai Linux și IPv4. Nu funcționează pe Windows, macOS sau Android și nu aplică o politică separată de ocolire traficului IPv6.
Cerințe
Toate condițiile următoare sunt necesare:
- Mudfish pentru Linux instalat.
- cgroup v2 montat la
/sys/fs/cgroup. - Comenzile
ipșiiptables, cu funcția cgroup match din iptables disponibilă. - Drepturi
sudopentru rutare bazată pe politici și reguli firewall. - O rută IPv4 implicită validă în tabela main Linux.
Executabilul este instalat de obicei aici:
/opt/mudfish/<미꾸라지 버전>/bin/mudfish-exclude
În calea originală, substituentul coreean reprezintă versiunea Mudfish. Găsiți instalarea prin:
ls /opt/mudfish/*/bin/mudfish-exclude
Dacă executabilul nu este în PATH, înlocuiți mudfish-exclude din exemple cu calea completă găsită. Pentru 6.5.4, calea implicită este /opt/mudfish/6.5.4/bin/mudfish-exclude.
Utilizare de bază
- Porniți Mudfish și conectați corect elementele dorite sau Full VPN.
- Dacă programul de exclus rulează deja, închideți-l complet, inclusiv procesele de fundal și pictograma din zona de notificare.
- Reporniți-l din terminal în forma:
sudo mudfish-exclude <프로그램> [프로그램 옵션...]
Substituenții coreeni din exemplu reprezintă programul și opțiunile sale. Pentru Discord:
sudo mudfish-exclude discord
Pentru Firefox cu fereastră privată:
sudo mudfish-exclude firefox --private-window
Încadrați în ghilimele calea executabilului dacă are spații:
sudo mudfish-exclude "/path/to/My Program" --option
sudo configurează politica de rețea. Programul pornit prin sudo mudfish-exclude ... rulează, când este posibil, cu UID-ul, GID-ul, directorul personal și mediul sesiunii desktop ale utilizatorului care a apelat sudo.
De reținut
- Politica se aplică procesului nou pornit cu
mudfish-excludeși proceselor sale copil. - Nu poate fi adăugată ulterior unui program deja pornit. Închideți complet programele cu o singură instanță pentru a evita reutilizarea procesului existent.
- În modul obișnuit de executare unică, politica este curățată automat când programul și toate procesele copil se încheie.
- Mai multe comenzi
mudfish-excludepot rula simultan. Politica comună este curățată după încheierea ultimului program exclus. - Traficul IPv4 exclus nu folosește nodurile Mudfish, accelerarea sau IP-ul public al acelei rute.
Verificarea funcționării
Verificarea este cea mai simplă când IP-ul public IPv4 original diferă de IP-ul nodului Full VPN.
Cu Full VPN conectat, verificați mai întâi dintr-un terminal obișnuit:
curl -4 https://myip.mudfish.net
Executați aceeași comandă prin mudfish-exclude:
sudo mudfish-exclude curl -4 https://myip.mudfish.net
Primul rezultat trebuie să fie adresa nodului, al doilea adresa conexiunii originale. -4 limitează verificarea la IPv4, conform compatibilității instrumentului.
Pentru browser, închideți-l complet, porniți-l astfel și accesați https://myip.mudfish.net:
sudo mudfish-exclude firefox
Închidere și curățarea politicii
La închidere normală nu trebuie o comandă separată. Politicile pot rămâne însă după închiderea forțată a mudfish-exclude, închiderea anormală a terminalului sau oprirea sistemului.
Închideți mai întâi toate programele pornite prin instrument, apoi executați:
sudo mudfish-exclude --cleanup
Folosirea
--cleanupcât timp rulează programe excluse poate opri imediat ocolirea pentru acestea.
Opțiuni
사용법: mudfish-exclude [옵션] 프로그램 [프로그램 옵션...]
Sintaxa originală înseamnă: mudfish-exclude, opțiunile sale, programul și opțiunile programului.
| Opțiune | Descriere |
|---|---|
-h, --help | Afișează ajutorul. |
--setup | Configurează numai politica de excludere și închide. Nu poate fi specificat și un program. |
--cleanup | Elimină politica de excludere și închide. Nu poate fi specificat și un program. |
--no-setup | Intră în cgroup-ul specificat și pornește programul fără reconfigurarea politicii existente. |
--cgroup NAME | Numele cgroup v2. Implicit mudfish-exclude. |
--mark VALUE | Marcajul firewall pentru pachete. Implicit 0x6d660001. |
--priority VALUE | Prioritatea regulii IPv4. Implicit 8252. |
--table VALUE | Numărul tabelei care conține ruta implicită originală. Implicit 8252. |
Puteți pune programul după -- pentru a încheia explicit interpretarea opțiunilor:
sudo mudfish-exclude -- firefox --private-window
Reutilizarea politicii pentru mai multe programe
Pentru utilizarea obișnuită recomandăm executarea unică pentru fiecare program. Dacă trebuie să configurați manual politica o dată și să o reutilizați:
sudo mudfish-exclude --setup
sudo mudfish-exclude --no-setup discord
sudo mudfish-exclude --no-setup firefox
După închiderea tuturor programelor, curățați obligatoriu politica:
sudo mudfish-exclude --cleanup
Modul manual nu face curățare automată. Unele aplicații desktop pot trece în alt cgroup systemd în timpul execuției; pentru ele este mai potrivit modul implicit, care urmărește mutarea și curăță automat.
Dacă schimbați --cgroup, --mark, --priority sau --table, folosiți aceleași valori la --setup, --no-setup și --cleanup. Valorile personalizate nu trebuie să intre în conflict cu marcajele firewall sau regulile de rutare existente.
Depanare
mudfish-exclude: command not found
Executabilul nu este în PATH. Găsiți instalarea și folosiți calea completă:
ls /opt/mudfish/*/bin/mudfish-exclude
sudo /opt/mudfish/6.5.4/bin/mudfish-exclude discord
În a doua comandă, înlocuiți versiunea cu cea instalată.
network policy setup requires root
Lipsesc drepturile pentru configurarea politicii de rețea. Adăugați sudo:
sudo mudfish-exclude discord
cgroup v2 is required at /sys/fs/cgroup
Sistemul nu folosește cgroup v2 sau nu îl montează în locația respectivă. Verificați:
test -f /sys/fs/cgroup/cgroup.controllers && echo "cgroup v2 사용 가능"
Textul coreean afișat de comandă înseamnă „cgroup v2 disponibil”. Dacă nu apare nimic, consultați metoda de activare cgroup v2 a distribuției.
iptables rule add failed sau eroare cgroup match
Verificați instalarea iptables și suportul cgroup match în kernel și iptables. Chiar și pe distribuții nftables, instrumentul folosește direct comenzile compatibile iptables, deci necesită un strat de compatibilitate funcțional.
failed to find the IPv4 default route
Ruta IPv4 implicită a conexiunii originale nu a fost găsită în tabela main. Verificați existența unei rute default în:
ip -4 route show default table main
Dacă ruta lipsește sau indică deja altă interfață VPN, mudfish-exclude nu poate configura ruta originală către internet.
IP-ul public nu se schimbă după excludere
Verificați în ordine:
- Full VPN este efectiv conectat și execuția normală afișează IP-ul nodului.
- Închideți toate procesele existente și de fundal ale programului, apoi reporniți-l.
- Folosiți
curl -4sau altă verificare IPv4 pentru a evita confuzia cu IPv6. - Verificați dacă programul trimite comenzi către un serviciu separat sau un launcher deja pornit. Politica se aplică numai arborelui de procese nou creat de
mudfish-exclude. - Verificați că ruta implicită din
ip -4 route show default table mainindică interfața reală de internet.
Comanda din terminal nu se încheie după închiderea programului
Un proces copil sau de fundal poate rula încă în cgroup-ul exclus. Închideți și pictogramele din zona de notificare, launcherele și procesele de actualizare. Modul implicit așteaptă încheierea tuturor proceselor copil înainte de curățare.
Rețeaua funcționează anormal după o închidere forțată
Închideți toate programele pornite prin instrument și curățați politica rămasă:
sudo mudfish-exclude --cleanup
Dacă problema persistă, închideți Mudfish, verificați ruta implicită și regulile iptables, apoi reconectați-vă.
Principiul de funcționare
mudfish-exclude plasează programul într-un cgroup v2 separat și aplică un marcaj iptables pachetelor IPv4 generate acolo. Pachetele marcate sunt trimise, printr-o tabelă separată de rutare bazată pe politici, către ruta implicită găsită în tabela main Linux, cu NAT MASQUERADE necesar.
Nu modifică setările sau memoria partajată ale mudrun, mudflow, mudfish ori mudwfp_proxy. Politica de excludere funcționează numai în straturile cgroup, iptables și rutare IPv4 bazată pe politici ale sistemului de operare.