Guía de usuario de mudfish-exclude
Este programa solo está disponible para Mudfish Cloud VPN 6.5.4 o superior.
mudfish-exclude es una herramienta de línea de comandos de Mudfish para Linux que permite ejecutar determinados programas fuera de las rutas de Mudfish. Resulta útil, especialmente con Full VPN activado, para que el tráfico de navegadores, aplicaciones de mensajería, reproductores de vídeo o herramientas de descarga salga directamente por su conexión habitual a Internet.
일반 프로그램 -> 미꾸라지 경로 -> 중계 서버
mudfish-exclude 앱 -> 기존 기본 경로 -> 인터넷
Esta herramienta no agrega ninguna configuración al panel de Mudfish. Simplemente inicie el programa que desea excluir con mudfish-exclude en lugar del comando de ejecución habitual.
Compatibilidad: Actualmente solo admite Linux e IPv4. No está disponible en Windows, macOS ni Android, y no aplica reglas de exclusión específicas al tráfico IPv6.
Requisitos del entorno
Se requieren todas las condiciones siguientes:
- Debe estar instalado Mudfish para Linux.
- cgroup v2 debe montarse en
/sys/fs/cgroup. - Deben estar disponibles los comandos
ipyiptables, así como la extensión de coincidencia cgroup de iptables. - Debe disponer de permisos de
sudopara configurar el enrutamiento por políticas y las reglas del cortafuegos. - La tabla de enrutamiento main de Linux debe contener una ruta IPv4 predeterminada válida.
Los archivos ejecutables instalados normalmente se encuentran en:
/opt/mudfish/<미꾸라지 버전>/bin/mudfish-exclude
La ruta de instalación actual se puede encontrar con el siguiente comando:
ls /opt/mudfish/*/bin/mudfish-exclude
Si el ejecutable no está en PATH, sustituya mudfish-exclude en los ejemplos por la ruta completa que haya localizado. Por ejemplo, la ruta predeterminada de la versión 6.5.4 es /opt/mudfish/6.5.4/bin/mudfish-exclude.
Uso básico
- Inicie Mudfish y conecte correctamente los elementos que desea utilizar o el modo Full VPN.
- Si el programa que desea excluir ya está abierto, ciérrelo por completo, incluidos sus procesos en segundo plano y los que permanecen en la bandeja del sistema.
- Vuelva a ejecutar el programa en la terminal con el siguiente formato:
sudo mudfish-exclude <프로그램> [프로그램 옵션...]
Por ejemplo, para excluir Discord de Mudfish, ejecute:
sudo mudfish-exclude discord
Para abrir una ventana privada excluyendo Firefox, ejecute lo siguiente:
sudo mudfish-exclude firefox --private-window
Si la ruta al ejecutable contiene espacios, escríbala entre comillas.
sudo mudfish-exclude "/path/to/My Program" --option
sudo se utiliza para configurar las políticas de red. Siempre que sea posible, el programa iniciado mediante sudo mudfish-exclude ... se ejecuta con el UID, el GID, el directorio personal y el entorno de escritorio del usuario original que invocó sudo.
Cosas que debe saber
- La exclusión se aplica al proceso que inicia
mudfish-excludey a sus procesos hijos. - No se puede aplicar la política a un proceso que ya está en ejecución. Cierre por completo los programas de instancia única para impedir que reutilicen un proceso existente.
- En el modo habitual, que inicia el programa junto con la configuración, las políticas se eliminan automáticamente cuando terminan tanto el programa como sus procesos hijos.
- Puede ejecutar varios comandos
mudfish-excludea la vez. Las políticas compartidas se eliminan cuando termina el último programa excluido. - El tráfico IPv4 de un programa excluido no utiliza los servidores de Mudfish, sus funciones de aceleración ni la IP pública de esa ruta.
Comprobar el funcionamiento
La comprobación resulta más sencilla cuando la IP pública IPv4 de su conexión habitual es distinta de la del servidor elegido para Full VPN.
Primero, verifique la dirección en un terminal normal con Full VPN conectado.
curl -4 https://myip.mudfish.net
Ejecute el mismo comando mediante mudfish-exclude.
sudo mudfish-exclude curl -4 https://myip.mudfish.net
El primer resultado debe ser la dirección del lado del servidor de retransmisión de Mudfish y el segundo resultado debe ser la dirección de la línea de Internet existente. -4 es una opción para comprobar únicamente IPv4, de acuerdo con el alcance del soporte de esta herramienta.
Al verificar usando un navegador, cierre completamente el navegador y luego ejecute lo siguiente para acceder a https://myip.mudfish.net.
sudo mudfish-exclude firefox
Finalizar y eliminar las políticas
No se requiere ningún comando de limpieza independiente durante el apagado normal. Sin embargo, la política puede permanecer si el proceso mudfish-exclude se termina por la fuerza, el terminal se cierra de manera anormal o el sistema se interrumpe.
Primero, cierre todos los programas ejecutados con esta herramienta y luego ejecute el siguiente comando.
sudo mudfish-exclude --cleanup
Si utiliza
--cleanupmientras un programa excluido sigue en ejecución, ese programa puede dejar inmediatamente de evitar las rutas de Mudfish.
Opciones de comando
사용법: mudfish-exclude [옵션] 프로그램 [프로그램 옵션...]
| Opción | Descripción |
|---|---|
-h, --help | Muestra la ayuda. |
--setup | Configura únicamente las políticas de exclusión y termina. No se puede indicar un programa junto con esta opción. |
--cleanup | Elimina las políticas de exclusión y termina. No se puede indicar un programa junto con esta opción. |
--no-setup | Ingresa al cgroup especificado y ejecuta el programa sin restablecer la política existente. |
--cgroup NAME | Especifica el nombre de cgroup v2 que se utilizará. El valor predeterminado es mudfish-exclude. |
--mark VALUE | Especifica la marca de firewall que se utilizará para los paquetes. El valor predeterminado es 0x6d660001. |
--priority VALUE | Especifica la prioridad de la regla de política IPv4. El valor predeterminado es 8252. |
--table VALUE | Especifica el número de la tabla de enrutamiento que contendrá la ruta predeterminada existente. El valor predeterminado es 8252. |
Puede colocar -- antes del nombre del programa para indicar explícitamente el final de las opciones.
sudo mudfish-exclude -- firefox --private-window
Reutilizar las políticas con varios programas
Para el uso habitual, se recomienda iniciar cada programa junto con la configuración. Si necesita configurar manualmente las políticas una sola vez y reutilizarlas con varios comandos, siga este orden:
sudo mudfish-exclude --setup
sudo mudfish-exclude --no-setup discord
sudo mudfish-exclude --no-setup firefox
Asegúrese de cerrar todos los programas y luego borrar la política.
sudo mudfish-exclude --cleanup
El modo manual no elimina las políticas automáticamente. Además, algunos programas de escritorio pueden trasladarse a otro cgroup de systemd durante la ejecución. Para ellos resulta más adecuado el modo habitual, que sigue esos cambios de cgroup y realiza la limpieza automáticamente.
Si cambió los valores de --cgroup, --mark, --priority y --table, debe usar los mismos valores en --setup, --no-setup y --cleanup. Los valores personalizados no deben entrar en conflicto con ninguna marca de firewall o regla de enrutamiento de políticas existente en el sistema.
Solución de problemas
mudfish-exclude: command not found
El ejecutable no está incluido en PATH. Localice su instalación con el siguiente comando y ejecútelo mediante la ruta completa.
ls /opt/mudfish/*/bin/mudfish-exclude
sudo /opt/mudfish/6.5.4/bin/mudfish-exclude discord
El número de versión en el segundo comando debe cambiarse para que coincida con la versión instalada.
network policy setup requires root
No tiene permisos para configurar las políticas de red. Añada sudo al principio del comando y vuelva a ejecutarlo.
sudo mudfish-exclude discord
cgroup v2 is required at /sys/fs/cgroup
El sistema actual no utiliza cgroup v2 o no lo tiene montado en esa ubicación. Puedes comprobarlo con el siguiente comando:
test -f /sys/fs/cgroup/cgroup.controllers && echo "cgroup v2 사용 가능"
Si no aparece nada, debe verificar cómo habilitar cgroup v2 en su distribución.
Error de iptables rule add failed o de la extensión cgroup de iptables
Compruebe que iptables esté instalado y que tanto el kernel como iptables admitan la coincidencia por cgroup. Incluso en distribuciones basadas en nftables, esta herramienta utiliza directamente comandos compatibles con iptables, por lo que necesita una capa de compatibilidad de iptables que funcione correctamente.
failed to find the IPv4 default route
No se encuentra la ruta IPv4 predeterminada de su conexión habitual en la tabla main. Compruebe que el siguiente comando muestre una ruta default.
ip -4 route show default table main
mudfish-exclude no puede configurar la ruta de Internet original si la ruta predeterminada no existe o ya apunta a otra interfaz VPN.
La IP pública no cambia al excluir el programa
Verifique lo siguiente en orden:
- Compruebe que Full VPN esté conectado y que, al ejecutar la prueba normalmente, aparezca la IP del servidor de retransmisión.
- Termine todos los procesos existentes y los procesos en segundo plano del programa de destino y ejecútelo nuevamente.
- Utilice
curl -4u otro método de comprobación de IPv4 para evitar confundir el resultado con una dirección IPv6. - Compruebe si el programa delega la ejecución en un servicio independiente o en un iniciador que ya estaba abierto. La exclusión solo se aplica al árbol de procesos creado por
mudfish-exclude. - Compruebe que la ruta predeterminada de
ip -4 route show default table mainapunte a la interfaz que realmente da acceso a Internet.
El comando de terminal no finaliza cuando se cierra el programa
Puede que aún haya procesos hijos o en segundo plano dentro del cgroup de exclusión. Cierre también los procesos de la bandeja del sistema, los iniciadores y las actualizaciones asociados. El modo habitual espera a que terminen todos los procesos hijos antes de eliminar las políticas.
Problemas de red tras un cierre anormal
Cierre todos los programas iniciados con esta herramienta y elimine las políticas que hayan quedado activas.
sudo mudfish-exclude --cleanup
Si el problema persiste después de eso, salga de Mudfish, verifique la ruta predeterminada del sistema y las reglas de iptables y vuelva a conectarse.
Principio de funcionamiento
mudfish-exclude coloca el programa en un cgroup v2 independiente y marca mediante iptables los paquetes IPv4 que genera ese grupo. Una tabla de enrutamiento por políticas dirige los paquetes marcados hacia la ruta predeterminada obtenida de la tabla main de Linux y aplica NAT MASQUERADE cuando es necesario.
Este proceso no modifica la configuración ni el estado de la memoria compartida de mudrun, mudflow, mudfish ni mudwfp_proxy. Las políticas de exclusión actúan únicamente mediante cgroup, iptables y el enrutamiento por políticas de IPv4 del sistema operativo.