Guida a mudfish-exclude
Questo programma è disponibile soltanto in Mudfish Cloud VPN 6.5.4 o successivo.
mudfish-exclude è uno strumento da riga di comando per Linux che esegue determinati programmi escludendoli dal percorso Mudfish. È utile soprattutto in modalità Full VPN, quando vuoi che browser, messaggistica, lettori video o strumenti di download inviino il traffico direttamente sulla connessione Internet originale.
일반 프로그램 -> 미꾸라지 경로 -> 중계 서버
mudfish-exclude 앱 -> 기존 기본 경로 -> 인터넷
Nel diagramma, i programmi normali seguono il percorso Mudfish fino al nodo; le applicazioni avviate con mudfish-exclude seguono il percorso predefinito originale verso Internet.
Lo strumento non aggiunge impostazioni alla dashboard. Avvia semplicemente il programma da escludere con mudfish-exclude anziché con il suo comando abituale.
Supporto: attualmente sono supportati soltanto Linux e IPv4. Non è disponibile su Windows, macOS o Android e non applica politiche di esclusione separate al traffico IPv6.
Requisiti
Sono necessarie tutte le seguenti condizioni.
- Mudfish per Linux deve essere installato.
- cgroup v2 deve essere montato su
/sys/fs/cgroup. - Devono essere disponibili i comandi
ipeiptablese la funzione cgroup match di iptables. - Devi disporre dei privilegi
sudoper configurare routing basato su politiche e regole del firewall. - La tabella di routing main di Linux deve contenere un percorso predefinito IPv4 funzionante.
L’eseguibile si trova generalmente qui:
/opt/mudfish/<미꾸라지 버전>/bin/mudfish-exclude
Il segnaposto indica la versione di Mudfish. Per trovare il percorso installato:
ls /opt/mudfish/*/bin/mudfish-exclude
Se l’eseguibile non è nel PATH, sostituisci mudfish-exclude negli esempi con il percorso completo trovato. Ad esempio, per la versione 6.5.4 il percorso predefinito è /opt/mudfish/6.5.4/bin/mudfish-exclude.
Utilizzo di base
- Avvia Mudfish e connetti correttamente gli item desiderati o la modalità Full VPN.
- Se il programma da escludere è già in esecuzione, chiudilo completamente, inclusi i processi in background e nell’area di notifica.
- Riavvialo dal terminale con questa sintassi:
sudo mudfish-exclude <프로그램> [프로그램 옵션...]
I segnaposto indicano il programma e le sue opzioni. Ad esempio, per escludere Discord:
sudo mudfish-exclude discord
Per escludere Firefox e aprire una finestra privata:
sudo mudfish-exclude firefox --private-window
Se il percorso dell’eseguibile contiene spazi, racchiudilo tra virgolette.
sudo mudfish-exclude "/path/to/My Program" --option
sudo serve a configurare le politiche di rete. Il programma avviato con sudo mudfish-exclude ... viene eseguito, quando possibile, con UID, GID, directory home e ambiente della sessione desktop dell’utente originale che ha invocato sudo.
Da sapere
- La politica di esclusione si applica ai nuovi processi avviati da
mudfish-excludee ai loro processi figli. - Non può essere applicata successivamente a un programma già in esecuzione. Chiudi completamente i programmi a istanza singola, affinché non riutilizzino un processo esistente.
- Nella modalità normale di esecuzione singola, la politica viene rimossa automaticamente quando terminano il programma e tutti i suoi figli.
- Puoi eseguire più comandi
mudfish-excludecontemporaneamente. La politica condivisa viene rimossa quando termina l’ultimo programma escluso. - Il traffico IPv4 dei programmi esclusi non utilizza i nodi Mudfish, le funzioni di accelerazione o l’IP pubblico di quel percorso.
Verifica del funzionamento
La verifica è più semplice quando l’IPv4 pubblico originale e quello del nodo Full VPN sono diversi.
Prima, con Full VPN connessa, controlla l’indirizzo da un terminale normale.
curl -4 https://myip.mudfish.net
Esegui lo stesso comando con mudfish-exclude.
sudo mudfish-exclude curl -4 https://myip.mudfish.net
Il primo risultato deve mostrare l’indirizzo del nodo Mudfish e il secondo quello della connessione Internet originale. -4 limita il test a IPv4, coerentemente con il supporto dello strumento.
Per verificare con un browser, chiudilo completamente, avvialo come segue e visita https://myip.mudfish.net.
sudo mudfish-exclude firefox
Uscita e rimozione delle politiche
In caso di uscita normale, non serve alcun comando di pulizia. Se però mudfish-exclude viene terminato forzatamente, il terminale si chiude in modo anomalo o il sistema si interrompe, possono rimanere delle politiche.
Chiudi prima tutti i programmi avviati con lo strumento, quindi esegui:
sudo mudfish-exclude --cleanup
Se utilizzi
--cleanupmentre sono ancora attivi programmi esclusi, la loro esclusione può interrompersi immediatamente.
Opzioni del comando
사용법: mudfish-exclude [옵션] 프로그램 [프로그램 옵션...]
La sintassi indica: mudfish-exclude, opzioni dello strumento, programma e opzioni del programma.
| Opzione | Descrizione |
|---|---|
-h, --help | Mostra la guida. |
--setup | Configura soltanto la politica di esclusione ed esce. Non può essere accompagnata da un programma. |
--cleanup | Rimuove la politica di esclusione ed esce. Non può essere accompagnata da un programma. |
--no-setup | Entra nel cgroup specificato ed esegue il programma senza riconfigurare la politica esistente. |
--cgroup NAME | Specifica il nome del cgroup v2. Il valore predefinito è mudfish-exclude. |
--mark VALUE | Specifica il mark del firewall da applicare ai pacchetti. Il valore predefinito è 0x6d660001. |
--priority VALUE | Specifica la priorità della regola IPv4. Il valore predefinito è 8252. |
--table VALUE | Specifica il numero della tabella di routing che conterrà il percorso predefinito originale. Il valore predefinito è 8252. |
Per terminare esplicitamente l’interpretazione delle opzioni, inserisci il programma dopo --.
sudo mudfish-exclude -- firefox --private-window
Riutilizzo della politica per più programmi
Per l’uso normale, consigliamo l’esecuzione singola per ogni programma. Se devi configurare manualmente una politica una sola volta e riutilizzarla con più comandi, procedi così:
sudo mudfish-exclude --setup
sudo mudfish-exclude --no-setup discord
sudo mudfish-exclude --no-setup firefox
Dopo aver chiuso tutti i programmi, rimuovi sempre la politica.
sudo mudfish-exclude --cleanup
La modalità manuale non esegue la pulizia automatica. Inoltre, alcuni programmi desktop possono spostarsi in un altro cgroup di systemd durante l’esecuzione. Per questi programmi è più adatta la modalità predefinita di esecuzione singola, che segue gli spostamenti tra cgroup ed esegue la pulizia automatica.
Se modifichi --cgroup, --mark, --priority o --table, utilizza gli stessi valori con --setup, --no-setup e --cleanup. I valori personalizzati non devono entrare in conflitto con mark del firewall o regole di routing già presenti nel sistema.
Risoluzione dei problemi
mudfish-exclude: command not found
L’eseguibile non è nel PATH. Individua la posizione installata con il comando seguente, quindi usa il percorso completo.
ls /opt/mudfish/*/bin/mudfish-exclude
sudo /opt/mudfish/6.5.4/bin/mudfish-exclude discord
Sostituisci il numero di versione del secondo comando con quello installato.
network policy setup requires root
Non hai i privilegi necessari per configurare le politiche di rete. Ripeti il comando anteponendo sudo.
sudo mudfish-exclude discord
cgroup v2 is required at /sys/fs/cgroup
Il sistema non utilizza cgroup v2 oppure non lo ha montato in quella posizione. Verifica con:
test -f /sys/fs/cgroup/cgroup.controllers && echo "cgroup v2 사용 가능"
Se non viene mostrato nulla, consulta le istruzioni della distribuzione per attivare cgroup v2. Il messaggio coreano indica che cgroup v2 è disponibile.
iptables rule add failed o errore cgroup match
Verifica che iptables sia installato e che il kernel e iptables supportino cgroup match. Anche sulle distribuzioni basate su nftables, lo strumento usa direttamente i comandi compatibili iptables, quindi è necessario un livello di compatibilità iptables funzionante.
failed to find the IPv4 default route
Non è stato trovato il percorso predefinito IPv4 della connessione Internet originale nella tabella main. Verifica che l’output seguente contenga un percorso default.
ip -4 route show default table main
Se il percorso predefinito manca o punta già a un’altra interfaccia VPN, mudfish-exclude non può configurare il percorso Internet originale.
L’IP pubblico non cambia nonostante l’esclusione
Verifica nell’ordine:
- Full VPN è realmente connessa e l’esecuzione normale mostra l’IP del nodo.
- Tutti i processi esistenti e in background del programma sono stati chiusi prima di riavviarlo.
- Il test utilizza
curl -4o un altro metodo IPv4, per evitare confusione con IPv6. - Il programma non inoltra i comandi a un servizio separato o a un launcher già attivo. La politica si applica soltanto alla discendenza dei nuovi processi creati da
mudfish-exclude. - Il percorso predefinito di
ip -4 route show default table mainpunta all’interfaccia Internet effettiva.
Il programma è chiuso ma il comando nel terminale non termina
Un processo figlio o in background potrebbe essere ancora attivo nel cgroup escluso. Chiudi anche icone nell’area di notifica, launcher e processi di aggiornamento associati. La modalità predefinita attende la fine di tutti i processi figli prima di rimuovere la politica.