1. Qué es Clash Verge Rev y cómo se relaciona con Clash, CFW, ClashX y mihomo
Clash Verge Rev es un cliente de escritorio de código abierto (GPL-3.0) creado con Rust y Tauri 2. Su README lo describe como una GUI de Clash Meta y como la continuación del Clash Verge original. Es solo un cliente local: arranca un núcleo proxy, gestiona perfiles y modifica ajustes del sistema. No incluye servidores proxy ni es un servicio VPN.
En el momento de la comprobación, la última versión estable es v2.5.8, publicada el 9 de octubre de 2026 en GitHub. Las estables anteriores salieron el 22 de septiembre (v2.5.5), el 26 de septiembre (v2.5.6) y el 2 de octubre (v2.5.7). La documentación del proyecto indica que la app se distribuye solo mediante GitHub Releases; los portales de descarga con nombres parecidos no son canales oficiales.
El Clash Verge original de zzzgydi está archivado en GitHub (último push el 3 de noviembre de 2023) y no debería usarse en instalaciones nuevas. Clash for Windows (CFW) se abandonó en noviembre de 2023, ClashX es una familia distinta para macOS y mihomo (antes Clash.Meta) es el núcleo de código abierto que mantiene MetaCubeX. Verge Rev incluye mihomo como verge-mihomo y ofrece una compilación Alpha del mismo núcleo en Settings → Clash Core; el núcleo cerrado Clash Premium que usaba CFW no está disponible.
El README y las notas de versión contienen enlaces promocionales de terceros. No forman parte del software, y esta guía no recomienda ningún proveedor de proxy ni de suscripciones.
2. Cuatro capas: entrada, modo de salida, DNS y límites de privacidad
La documentación de Verge separa la ruta de entrada (cómo llega el tráfico al núcleo local: System Proxy o TUN) del modo de salida (adónde lo envía el núcleo: Rule, Global o Direct). El DNS es una tercera capa independiente. Revisar un solo interruptor no dice nada de las demás capas.
- Para el sitio de destino: las peticiones que pasan por completo por el proxy suelen mostrar la IP de salida del nodo, no la IP pública de tu casa u oficina.
- Para el operador del proxy: el nodo recibe tu conexión y puede ver tu IP pública original. Ningún cliente puede ocultársela al propio nodo.
- Para tu red local o tu ISP: siguen visibles la dirección del servidor proxy, los horarios y el volumen de tráfico; el contenido depende del protocolo y del cifrado.
- Para un proveedor de DNS: DoH y DoT cifran el transporte, pero el resolvedor sigue viendo los nombres consultados y la IP que se conecta a él. Cifrar no es anonimizar.
- Para cuentas y navegadores: cookies, sesiones iniciadas, idioma, zona horaria, huellas digitales y servicios de localización del sistema pueden seguir revelando identidad o ubicación.
Aplicación
│
│ 1. System Proxy: la app usa voluntariamente 127.0.0.1:7897
│ 2. TUN: una interfaz virtual captura TCP/UDP a nivel de enrutamiento
▼
Núcleo mihomo (verge-mihomo)
│
│ 3. Rule / Global / Direct: elige la salida
│ 4. DNS: fake-ip o redir-host, qué resolvedores, qué ruta
▼
DIRECT / nodo proxy / REJECT
│
▼
Destino3. Instalación en cada sistema operativo
- Windows: v2.5.8 trae instaladores setup.exe para x64 y ARM64, además de variantes fixed_webview2 que incluyen WebView2 para sistemas donde falta o no se puede instalar. La mayoría de los PC necesitan x64; el error «Esta aplicación no se puede ejecutar en el equipo» suele indicar la arquitectura equivocada. Windows 7 ya no es compatible.
- Gestores de paquetes en Windows: la documentación menciona winget install ClashVergeRev.ClashVergeRev y un paquete de Scoop mantenido por la comunidad (extras/clash-verge-rev) que el proyecto no soporta.
- SmartScreen: si Windows advierte sobre un instalador, confirma que proviene de la página de releases de GitHub y que su SHA-256 coincide con el digest que GitHub muestra para el archivo. No desactives SmartScreen ni Defender de forma global.
- macOS: hay DMG separados para Apple silicon (aarch64) e Intel (x64). La página de instalación indica macOS 12 o posterior. Si Gatekeeper bloquea el primer arranque, verifica el origen y permite esa app concreta en Ajustes del Sistema → Privacidad y seguridad, en lugar de desactivar Gatekeeper o quitar atributos de cuarentena a archivos desconocidos.
- Linux: v2.5.8 ofrece paquetes .deb y .rpm para x86_64, ARM64 y ARMv7. Instala con sudo apt install ./archivo.deb o sudo dnf install ./archivo.rpm. En Arch puedes usar el paquete AUR clash-verge-rev-bin. v2.5.8 no incluye AppImage.
- En Linux hace falta una sesión gráfica, porque la interfaz es un WebView. En servidores sin entorno gráfico conviene ejecutar directamente el binario de mihomo.
- Los archivos .sig junto a cada descarga son firmas para el actualizador integrado. Para una comprobación manual, compara el SHA-256 del archivo con el digest de la página de la release.
# Windows (PowerShell)
Get-FileHash .\Clash.Verge_2.5.8_x64-setup.exe -Algorithm SHA256
# macOS
shasum -a 256 Clash.Verge_2.5.8_aarch64.dmg
# Linux
sha256sum Clash.Verge_2.5.8_amd64.deb
sudo apt install ./Clash.Verge_2.5.8_amd64.deb4. Modo servicio, Sidecar y lo que necesita TUN
TUN crea una interfaz de red virtual y cambia rutas, lo que exige privilegios elevados. El modo servicio instala un proceso privilegiado independiente (clash-verge-service) que arranca el núcleo, de modo que TUN funciona aunque la GUI se ejecute como usuario normal. El servicio sigue activo en segundo plano tras cerrar la GUI. Sin el servicio, la app ejecuta el núcleo como Sidecar sin privilegios y TUN no está disponible.
- Instálalo desde Settings con Install Service y aprueba el aviso del sistema. Antes de activar Tun Mode, la página de inicio debería mostrar el modo servicio.
- En las versiones recientes, el servicio de Windows comprueba el propietario y los permisos de los archivos del núcleo y de sus carpetas superiores. Si un usuario normal pudiera reemplazar el núcleo, la comprobación falla y la app vuelve a Sidecar. La solución es reinstalar en la carpeta predeterminada C:\Program Files\Clash Verge con permisos predeterminados, no relajar permisos.
- Como alternativa en Windows, la documentación permite ejecutar la app como administrador sin el servicio; así también funciona TUN, pero hay que repetirlo en cada arranque.
- Cortafuegos: puede que debas permitir los binarios del núcleo verge-mihomo y verge-mihomo-alpha para TUN. mihomo advierte que las pilas system y mixed no funcionan si el cortafuegos bloquea el núcleo.
- macOS: el servicio es un daemon de launchd. La documentación describe también los ayudantes install-service y uninstall-service dentro del paquete de la app para reparaciones manuales.
- Linux: el servicio se instala desde el mismo ajuste; la documentación indica sudo /bin/install-service y sudo /bin/uninstall-service para reparaciones manuales.
5. Primer uso: importa un perfil que ya tengas
- Abre Profiles y pega la URL HTTPS de suscripción que ya tienes, o importa un archivo YAML local. También puedes arrastrar un archivo a la ventana o usar el esquema clash://install-config?url=<enlace codificado como URL>. Los archivos locales se copian en el directorio de perfiles.
- Las URL de suscripción suelen contener un token de cuenta. Mantenlas fuera de capturas de pantalla, reportes de errores y chats.
- Deja desactivado Allows Invalid Certificates (Danger). Activarlo elimina la verificación TLS de la descarga y facilita mucho la manipulación.
- Selecciona la tarjeta del perfil, abre Proxies, elige el modo Rule y selecciona un nodo real en el grupo principal.
- Activa System Proxy y comprueba en un navegador: la petición debe aparecer en Connections con la regla y la cadena esperadas.
- Activa Tun Mode solo si necesitas apps que ignoran el proxy del sistema. Auto Launch y Silent Start solo controlan cómo arranca la app; no demuestran que el perfil, el nodo o el DNS estén bien.
- Puertos predeterminados en v2.5.8: mixed 7897, SOCKS 7898, HTTP 7899, controlador externo 127.0.0.1:9097. Usa siempre los valores que muestra Port Config.
6. System Proxy frente a TUN, y Rule / Global / Direct
System Proxy escribe los ajustes de proxy del sistema; las aplicaciones que los respetan envían sus peticiones al puerto mixed local. Es voluntario y no transporta UDP, como el tráfico de juegos. TUN redirige el tráfico en la capa de enrutamiento, así que las aplicaciones no necesitan configuración y tanto TCP como UDP llegan al núcleo. Activar ambos no crea un doble cifrado; para diagnosticar, es mejor un único método de captura claro.
- Solo navegadores: System Proxy con el modo Rule suele bastar y es más fácil de depurar.
- Terminales, componentes de IDE, juegos, apps UDP, WSL o Docker: TUN mediante modo servicio, seguido de comprobaciones de DNS, IPv6 y UDP.
- Proxy Guard vuelve a aplicar el proxy del sistema si otro programa lo cambia; Proxy Bypass Settings enumera los hosts que no pasan por el proxy. Mantén ahí localhost, 127.0.0.1, rangos privados y *.local, y no añadas destinos públicos que quieras enviar por el proxy.
- Use PAC Mode está disponible para configuraciones basadas en PAC; un archivo PAC es otra decisión de enrutamiento y debe revisarse como un conjunto de reglas.
- Rule compara el tráfico con las reglas del perfil. Global envía todo lo que llega al núcleo por el nodo elegido en GLOBAL. Direct envía todo por la red local.
- Global no puede capturar aplicaciones que nunca llegaron al núcleo, y solo tiene sentido si GLOBAL apunta a un nodo real y no a DIRECT.
- Los ajustes de Tun Mode incluyen Tun Stack, Auto Route, Strict Route, Auto Detect Interface, DNS Hijack, Route Exclude Address y MTU. Cambia un campo cada vez y vuelve a probar.
7. Perfiles, Extend Config (Merge) y Extend Script
Los perfiles remotos se sobrescriben al actualizarse, así que los cambios duraderos van en extensiones. El orden actual es: perfil original → ajustes de la app → global extend config → global extend script → extend config del perfil → extend script del perfil → reaplicación de los ajustes de la app. Haz clic derecho en la tarjeta de un perfil para editar su Extend Config o su Extend Script.
Desde v2.5.5, los campos dns y el hosts de nivel superior escritos en un extend config reemplazan por completo los valores existentes (incluido nameserver-policy), en lugar de fusionarse entrada por entrada. Las listas como rules también se reemplazan; los objetos anidados como tun o sniffer se fusionan campo a campo. Los ajustes que controla la app, como mixed-port, allow-lan, mode, ipv6, secret, external-controller, tun.enable y los campos guardados en el diálogo de Tun Mode, se descartan al final de la cadena si una extensión los define.
- Sustituye Proxy por un nombre de grupo que exista en tu perfil, escrito exactamente igual.
- Las reglas se evalúan de arriba abajo; gana la primera coincidencia y MATCH va al final.
- PROCESS-NAME usa el nombre del ejecutable de cada plataforma, por ejemplo git.exe en Windows.
- Los scripts se ejecutan en un motor JavaScript integrado (boa_engine) sin E/S de red ni de archivos, pero aun así pueden reescribir cada regla, servidor DNS y salida. Ejecuta solo scripts que entiendas.
- Revisa el resultado en Settings → Runtime Config, que muestra la configuración que carga realmente el núcleo.
# Extend Config (YAML): un cambio pequeño y fácil de revisar
dns:
use-system-hosts: false
// Extend Script (JavaScript): anteponer dos reglas de forma segura
function main(config, profileName) {
const extra = [
"DOMAIN-SUFFIX,example.com,DIRECT",
"PROCESS-NAME,git,Proxy"
];
config.rules = extra.concat(config.rules || []);
return config;
}8. DNS: fake-ip frente a redir-host, nameserver, fallback y DoH
En mihomo, enhanced-mode admite fake-ip o redir-host, y redir-host es el valor predeterminado. fake-ip devuelve direcciones de un rango reservado como 198.18.0.1/16 y guarda un mapeo de dominios dentro del núcleo, de modo que el enrutamiento puede usar el nombre de dominio sin entregar una resolución real a la aplicación. redir-host devuelve direcciones reales. Ninguno de los dos modos es cifrado.
nameserver es la lista de resolvedores predeterminada. default-nameserver debe contener IP simples y solo resuelve los nombres de los propios servidores DNS. proxy-server-nameserver resuelve los nombres de host de los nodos proxy y evita el problema del huevo y la gallina. fallback junto con fallback-filter elige respuestas alternativas cuando los resultados parecen contaminados; el filtro geosite está obsoleto en favor de nameserver-policy. respect-rules hace que las conexiones DNS sigan las reglas de enrutamiento y requiere proxy-server-nameserver.
El interruptor DNS Overwrite de Verge escribe una sección DNS desde la app antes de que se ejecuten las extensiones. Si un perfil ya trae una política DNS cuidadosamente construida, compara ambas antes de activarlo.
- dns.ipv6: false solo suprime las respuestas AAAA; no desactiva IPv6 en el sistema operativo.
- mihomo documenta que en Windows y macOS dns-hijack no puede capturar consultas DNS enviadas a direcciones de la LAN, así que no apuntes el resolvedor del sistema a tu router si dependes de TUN.
- En macOS, Verge configura el DNS del sistema con un resolvedor público provisional mientras TUN está activo y lo restaura después; v2.5.8 corrigió un caso en que 114.114.114.114 permanecía tras desactivar TUN.
- Los nombres de intranet que fallan con fake-ip necesitan una entrada nameserver-policy hacia el resolvedor interno o una entrada fake-ip-filter específica, no desactivar el módulo DNS.
- Un nameserver puede llevar #NombreDeGrupo para elegir su salida, por ejemplo https://1.1.1.1/dns-query#Proxy, donde Proxy es un grupo real.
# Fragmento de referencia en tiempo de ejecución para mihomo actual (revísalo en Runtime Config).
# Define tun.* en el diálogo de Tun Mode; Verge controla esos campos.
dns:
enable: true
ipv6: false
enhanced-mode: fake-ip
fake-ip-range: 198.18.0.1/16
fake-ip-filter:
- "+.lan"
- "+.local"
default-nameserver:
- 1.1.1.1
proxy-server-nameserver:
- https://1.1.1.1/dns-query
respect-rules: true
nameserver:
- https://1.1.1.1/dns-query
- https://8.8.8.8/dns-query
tun:
enable: true
stack: mips # predeterminado en mihomo actual; también existen system, gvisor y mixed
auto-route: true
auto-detect-interface: true
strict-route: true # Windows: bloquea fugas de DNS multi-homed; puede romper VirtualBox
dns-hijack:
- any:53
- tcp://any:539. IPv6, WebRTC, QUIC, DoH del navegador y cómo comprobar fugas
- IPv6: el interruptor IPv6 de Verge controla si el núcleo acepta tráfico IPv6. Si la red física tiene IPv6 público y el túnel no lo transporta, los sitios IPv6 pueden seguir viendo la dirección original. Enruta IPv6 de forma deliberada o restríngelo, y vuelve a probar ambas familias.
- WebRTC: STUN puede exponer direcciones adicionales fuera de un proxy de aplicación normal (RFC 8828). Los navegadores basados en Chromium pueden limitarlo con una política de UDP no proxificado, lo que puede afectar a las llamadas.
- QUIC/HTTP3 usa UDP. Solo con System Proxy, los navegadores suelen recurrir a TCP; con TUN, el nodo tiene que admitir UDP de verdad. Compruébalo en lugar de suponerlo.
- DoH del navegador: el DNS seguro propio del navegador elude el resolvedor del núcleo y fake-ip. Plantéate desactivarlo solo después de verificar TUN y el secuestro de DNS.
- Un candidato mDNS .local en una prueba de WebRTC no es una fuga de IP pública; céntrate en las direcciones IPv4/IPv6 públicas.
- Método de comprobación: (1) abre dos páginas independientes de consulta de IP y anota los resultados IPv4 e IPv6; (2) ejecuta una prueba DNS estándar y una extendida, y busca tu ISP, tu router u otro resolvedor inesperado; (3) haz una prueba de WebRTC; (4) confirma las mismas peticiones en Connections con la regla y la cadena esperadas.
- Repite las pruebas tras la suspensión, cambios de red, actualizaciones de perfil, cambios de nodo y reinicios de la app. Si las apps salen en directo cuando Verge está detenido, la configuración no es fail-closed; TUN no es un kill switch.
10. Terminales, Git, SSH, navegadores, IDE, Docker y WSL
Las herramientas de línea de comandos suelen ignorar el proxy del sistema. Elige PowerShell, Bash o CMD en Copy Env Type y usa la acción de copiar del menú de la bandeja para obtener las variables de entorno correspondientes. El host copiado es 127.0.0.1, salvo que definas la variable de entorno CLASH_VERGE_REV_IP.
- http.proxy de Git no afecta a los remotos SSH git@; usa TUN o un ProxyCommand.
- Chrome y Edge siguen el proxy del sistema; revisa además extensiones, DNS seguro, WebRTC y QUIC. Firefox puede usar un proxy SOCKS v5 manual con DNS a través del proxy.
- IDE: el editor, las extensiones, los servidores de lenguaje, los gestores de paquetes y el terminal integrado pueden tener cada uno su propio ajuste de proxy.
- Las apps de Microsoft Store (UWP) no pueden acceder a localhost por defecto; usa Settings → Open UWP tool para las apps concretas que lo necesiten.
- Los contenedores Docker y WSL tienen su propia pila de red; 127.0.0.1 dentro de ellos no es el host. Prefiere TUN, o activa Allow LAN solo en una red de confianza y solo mientras haga falta.
- Algunas apps de macOS ignoran el proxy del sistema; configura su proxy interno o usa TUN.
# Bash / zsh (solo la shell actual; usa tu puerto real)
export http_proxy=http://127.0.0.1:7897
export https_proxy=http://127.0.0.1:7897
export all_proxy=socks5://127.0.0.1:7897
# curl con resolución de nombres remota a través del proxy
curl --proxy socks5h://127.0.0.1:7897 https://example.com/
# Git solo sobre HTTP(S); configurar y eliminar
git config --global http.proxy http://127.0.0.1:7897
git config --global --unset http.proxy
# SSH mediante SOCKS para un solo host (~/.ssh/config, macOS/Linux)
Host example.com
ProxyCommand nc -X 5 -x 127.0.0.1:7897 %h %p
# PowerShell (sesión actual)
$env:HTTPS_PROXY = "http://127.0.0.1:7897"
Remove-Item Env:HTTPS_PROXY11. Logs, Connections, Web UI y lista de solución de problemas
- Connections muestra el proceso, el destino, el tipo de red, la regla coincidente y la cadena. Una cadena que termina en DIRECT no usó ningún nodo. Si no hay ninguna entrada, la app nunca llegó al núcleo.
- Logs muestra errores de carga del perfil, DNS y TUN. Sube Log Level a Debug solo mientras diagnosticas, y elimina dominios, IP y URL de suscripción antes de compartir. Export Diagnostic Info reúne detalles para reportes de errores; revísalo antes.
- Auto Close Connections cierra las conexiones antiguas al cambiar de nodo, para que una sesión TCP vieja no siga usando la salida anterior.
- Web UI abre un panel externo contra el External Controller. Necesita la dirección del controlador y el Core Secret.
- Sin red salvo que Verge esté en marcha (Windows): el proxy del sistema puede haberse quedado activo tras un cierre inesperado. Desactiva el proxy manual en Configuración → Red e Internet → Proxy.
- La red falla tras activar TUN: revisa el modo servicio, las reglas del cortafuegos para verge-mihomo, adaptadores virtuales sobrantes u otras VPN y la pila TUN. Restaura un perfil que funcionara antes de cambiar muchos ajustes.
- Página Proxies vacía: puede que otro programa ocupe el puerto del controlador; cambia el puerto del External Controller y reinicia.
- Algunos sitios fallan con el proxy activado: busca otro programa en el puerto 7897 y entradas inesperadas en el archivo hosts del sistema.
- La interfaz no abre en Windows: falta WebView2 o está desactivado; reinstálalo o usa el instalador fixed_webview2. En Linux con NVIDIA y Wayland, la documentación indica WEBKIT_DISABLE_DMABUF_RENDERER=1 como solución provisional.
12. Notas de seguridad y mantenimiento
- Importa perfiles solo de fuentes en las que confíes. Un perfil decide qué tráfico va por DIRECT, qué servidores DNS se usan y qué nodos ven tu tráfico.
- Los Extend Script son código. Lee cualquier script antes de activarlo y guarda una copia de lo que cambiaste.
- Cambia el Core Secret. La plantilla de v2.5.8 rellena un secreto vacío con el marcador set-your-secret, y la lista CORS predeterminada permite que varios paneles alojados llamen al controlador desde un navegador.
- Mantén el External Controller en 127.0.0.1. Nunca expongas un controlador sin autenticación en 0.0.0.0 ni en una interfaz pública.
- Deja Allow LAN desactivado salvo que otro dispositivo necesite de verdad el proxy, sobre todo en Wi-Fi público.
- Backup Setting admite copias locales y por WebDAV. Las copias pueden contener URL de suscripción y credenciales de nodos, así que guárdalas solo donde eso sea aceptable.
- Usa el canal estable, actualiza pronto y revisa las notas de versión. Las compilaciones AutoBuild son para pruebas, y el núcleo Alpha es una compilación de prueba.
- La política de privacidad del proyecto indica que la app no recopila datos de usuario y enumera las conexiones de red que realiza, como las comprobaciones de actualizaciones.
- Cumple la legislación local y las condiciones de los servicios que uses. Un cliente proxy cambia rutas de red; no cambia tus obligaciones.