Salta al contingut principal

Guia d'ús de mudfish-exclude

Informació

Aquest programa només està disponible a Mudfish Cloud VPN 6.5.4 o posterior.

mudfish-exclude és una eina de línia d'ordres de Mudfish per a Linux que permet executar determinats programes fora de la ruta de Mudfish. És especialment útil quan utilitzeu Full VPN però voleu que el trànsit del navegador, la missatgeria, el reproductor de vídeo o les eines de baixada surti directament per la connexió habitual a Internet.

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

A l'esquema original, els programes normals passen per la ruta de Mudfish i els nodes; les aplicacions executades amb mudfish-exclude passen per la ruta predeterminada original cap a Internet.

Aquesta eina no afegeix cap configuració al tauler de control de Mudfish. Només cal iniciar el programa que voleu excloure amb mudfish-exclude en lloc de l'ordre habitual.

Compatibilitat: actualment només admet Linux i IPv4. No es pot utilitzar al Windows, macOS ni Android, i no aplica cap política específica d'exclusió al trànsit IPv6.

Requisits​

Cal complir totes les condicions següents:

  • Mudfish per a Linux ha d'estar instal·lat.
  • cgroup v2 ha d'estar muntat a /sys/fs/cgroup.
  • Han d'estar disponibles les ordres ip i iptables, així com la funció de coincidència cgroup d'iptables.
  • Cal tenir permisos de sudo per configurar l'encaminament per polítiques i les regles del tallafoc.
  • La taula d'encaminament main de Linux ha de contenir una ruta IPv4 predeterminada vàlida.

L'executable instal·lat normalment és aquí:

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

El marcador <미꾸라지 버전> representa la versió de Mudfish. Podeu trobar la ubicació instal·lada amb:

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

Si l'executable no és al PATH, substituïu mudfish-exclude als exemples següents per la ruta completa que hàgiu trobat. Per exemple, la ubicació predeterminada de la versió 6.5.4 és /opt/mudfish/6.5.4/bin/mudfish-exclude.

Ús bàsic​

  1. Executeu Mudfish i connecteu correctament els elements que vulgueu o el mode Full VPN.
  2. Si el programa que voleu excloure ja s'executa, tanqueu-lo completament, inclosos els processos de la safata del sistema i els processos en segon pla.
  3. Torneu-lo a executar des del terminal amb el format següent:
sudo mudfish-exclude <프로그램> [프로그램 옵션...]

Els marcadors indiquen el programa i les seves opcions. Per exemple, per excloure Discord de Mudfish:

sudo mudfish-exclude discord

Per excloure Firefox i obrir una finestra privada:

sudo mudfish-exclude firefox --private-window

Si la ruta de l'executable conté espais, poseu-la entre cometes:

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

sudo s'utilitza per configurar les polítiques de xarxa. Sempre que sigui possible, el programa iniciat amb sudo mudfish-exclude ... s'executa amb l'UID, el GID, el directori personal i l'entorn de sessió d'escriptori de l'usuari original que ha invocat sudo.

Aspectes que cal tenir en compte​

  • La política d'exclusió s'aplica al procés nou iniciat amb mudfish-exclude i als seus processos fills.
  • No es pot aplicar posteriorment a un programa que ja s'estigui executant. Cal tancar-lo completament abans perquè els programes d'instància única no reutilitzin el procés existent.
  • En l'execució habitual per programa, les polítiques es netegen automàticament quan s'han tancat el programa i tots els processos fills.
  • Podeu executar diverses ordres mudfish-exclude alhora. Les polítiques compartides es netegen quan es tanca l'últim programa exclòs.
  • El trànsit IPv4 d'un programa exclòs no utilitza els nodes de Mudfish, les funcions d'acceleració ni la IP pública d'aquella ruta.

Comprovar el funcionament​

La comprovació és més senzilla quan la vostra IPv4 pública anterior a la connexió Full VPN és diferent de la IPv4 pública del node de Full VPN.

Primer, amb Full VPN connectat, consulteu l'adreça des d'un terminal normal:

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

Executeu la mateixa ordre amb mudfish-exclude:

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

El primer resultat ha de mostrar l'adreça del node de Mudfish, i el segon, la de la connexió habitual a Internet. L'opció -4 limita la comprovació a IPv4, d'acord amb la compatibilitat de l'eina.

Per comprovar-ho amb un navegador, tanqueu-lo completament, executeu-lo com es mostra a continuació i visiteu https://myip.mudfish.net:

sudo mudfish-exclude firefox

Tancament i neteja de polítiques​

En un tancament normal no cal cap ordre de neteja addicional. Tanmateix, poden quedar polítiques actives si es força el tancament de mudfish-exclude, si el terminal es tanca de manera anormal o si el sistema s'atura inesperadament.

Tanqueu primer tots els programes iniciats amb aquesta eina i després executeu:

sudo mudfish-exclude --cleanup

Si utilitzeu --cleanup mentre hi ha programes exclosos en execució, la seva exclusió es pot interrompre immediatament.

Opcions de l'ordre​

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

La sintaxi indica: mudfish-exclude, opcions de l'eina, programa i opcions del programa.

OpcióDescripció
-h, --helpMostra l'ajuda.
--setupConfigura només les polítiques de xarxa d'exclusió i surt. No es pot especificar també un programa.
--cleanupElimina les polítiques de xarxa d'exclusió i surt. No es pot especificar també un programa.
--no-setupEntra al cgroup indicat i executa el programa sense tornar a configurar les polítiques existents.
--cgroup NAMEEspecifica el nom del cgroup v2. Per defecte és mudfish-exclude.
--mark VALUEEspecifica la marca de tallafoc dels paquets. Per defecte és 0x6d660001.
--priority VALUEEspecifica la prioritat de la regla de política IPv4. Per defecte és 8252.
--table VALUEEspecifica el número de la taula d'encaminament que contindrà la ruta predeterminada original. Per defecte és 8252.

Podeu escriure el programa després de -- per indicar explícitament el final de les opcions de l'eina:

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

Reutilitzar les polítiques amb diversos programes​

Per a l'ús habitual, recomanem executar cada programa individualment amb l'eina. Si necessiteu configurar les polítiques manualment una sola vegada i reutilitzar-les amb diverses ordres, podeu fer-ho així:

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

Després de tancar tots els programes, cal netejar les polítiques:

sudo mudfish-exclude --cleanup

El mètode manual no fa neteja automàtica. A més, alguns programes d'escriptori poden passar a un altre cgroup de systemd durant l'execució. Per a aquests programes és més adequat el mètode habitual per programa, que segueix els canvis de cgroup i fa la neteja automàtica.

Si canvieu --cgroup, --mark, --priority o --table, utilitzeu els mateixos valors amb --setup, --no-setup i --cleanup. Els valors personalitzats no han d'entrar en conflicte amb les marques del tallafoc o les regles d'encaminament per polítiques existents.

Resolució de problemes​

mudfish-exclude: command not found​

L'executable no és al PATH. Localitzeu-lo amb l'ordre següent i executeu-lo amb la ruta completa:

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

Canvieu el número de versió de la segona ordre pel de la versió instal·lada.

network policy setup requires root​

No teniu permisos per configurar les polítiques de xarxa. Torneu a executar l'ordre amb sudo al davant:

sudo mudfish-exclude discord

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

El sistema no utilitza cgroup v2 o no el té muntat en aquesta ubicació. Ho podeu comprovar amb:

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

El text de sortida indica que cgroup v2 està disponible. Si no es mostra res, consulteu com habilitar cgroup v2 a la vostra distribució.

iptables rule add failed o error de coincidència cgroup​

Comproveu que iptables estigui instal·lat i que el nucli i iptables admetin la coincidència cgroup. Fins i tot en distribucions basades en nftables, l'eina utilitza directament les ordres compatibles amb iptables, de manera que cal una capa de compatibilitat iptables funcional.

failed to find the IPv4 default route​

No s'ha trobat la ruta IPv4 predeterminada de la connexió habitual a Internet a la taula main. Comproveu que la sortida següent contingui una ruta default:

ip -4 route show default table main

Si no hi ha cap ruta predeterminada o ja apunta a una altra interfície VPN, mudfish-exclude no pot configurar el camí original cap a Internet.

La IP pública no canvia tot i haver exclòs el programa​

Comproveu aquests punts en ordre:

  1. Verifiqueu que Full VPN estigui realment connectat i que una execució normal mostri la IP del node.
  2. Tanqueu tots els processos existents i en segon pla del programa i torneu-lo a executar.
  3. Utilitzeu curl -4 o un altre mètode de comprovació d'IPv4 per no confondre el resultat amb IPv6.
  4. Comproveu si el programa delega les ordres a un servei separat o a un llançador que ja s'està executant. La política d'exclusió només s'aplica a l'arbre de processos nou creat per mudfish-exclude.
  5. Verifiqueu que la ruta predeterminada de ip -4 route show default table main apunti a la interfície real d'Internet.

He tancat el programa, però l'ordre del terminal no acaba​

Pot ser que encara hi hagi processos fills o en segon pla al cgroup d'exclusió. Tanqueu també les icones de la safata, els llançadors i els processos d'actualització relacionats. El mètode habitual espera que acabin tots els processos fills abans de netejar les polítiques.

La xarxa funciona de manera estranya després d'un tancament anormal​

Tanqueu tots els programes iniciats amb l'eina i elimineu les polítiques restants:

sudo mudfish-exclude --cleanup

Si el problema persisteix, tanqueu Mudfish, reviseu la ruta predeterminada del sistema i les regles d'iptables i torneu-vos a connectar.

Funcionament intern​

mudfish-exclude col·loca el programa en un cgroup v2 separat i aplica una marca d'iptables als paquets IPv4 generats en aquest cgroup. Els paquets marcats passen per una taula d'encaminament per polítiques separada que els envia a la ruta predeterminada trobada a la taula main de Linux. També s'hi aplica el NAT MASQUERADE necessari.

Aquest procés no modifica la configuració ni l'estat de memòria compartida de mudrun, mudflow, mudfish o mudwfp_proxy. Les polítiques d'exclusió només actuen a les capes de cgroup, iptables i encaminament per polítiques IPv4 del sistema operatiu.