La app de Windows, a fondo
Esta es la inmersión a fondo: cada superficie importante de la app de Windows, qué controla, sus valores por defecto y cómo arreglarla cuando algo se rompe. Asume que ya instalaste y conectaste. Si no, empieza por los primeros pasos. Para saber cómo funciona la red detrás de la app, lee la visión general.
El cliente de Windows es dos programas con privilegios distintos, un controlador de kernel para el túnel dividido por aplicación y una interfaz alineada con la app de macOS. Todo es código abierto en github.com/urnetwork/windows.
Los ajustes de un vistazo
Los valores por defecto te protegen sin configurar nada. Todos los controles de abajo viven en el panel de conexión, salvo las reglas de división de apps bajo Ajustes (Settings).
| Ajuste | Valor por defecto | Efecto | Coste principal |
|---|---|---|---|
| Modo de conexión (Connection mode) | Auto | elige las ventanas de proveedores; Auto ejecuta calidad y velocidad juntas | Web o Streaming se estrechan a una ventana |
| Anonimización fuerte (Strong Anonymization) | Activado | oculta tu IP de origen al proveedor | más latencia |
| Cifrado poscuántico (Post Quantum Encryption) | Activado | cifra desde la app hasta el proveedor | descarta los proveedores con los que no puede sellar |
| Kill switch | Desactivado | impide el recurso a la ruta local cuando el túnel está caído | sin tráfico mientras los proveedores fallan |
| IP fija (Fixed IP) | Desactivado | un proveedor, una dirección de salida | sin relevo ante fallos; inactivo en Auto |
| Bloquear anuncios y rastreadores (Block ads and trackers) | Desactivado | filtra el tráfico de anuncios y rastreadores | el filtrado puede romper algunos sitios |
| DNS personalizado (Custom DNS) | DoH cifrado vía túnel | el DNS queda cifrado y dentro del túnel | aflojarlo es el intercambio |
| Compartir conexión (Provide mode) | Desactivado | comparte ancho de banda sobrante como salida para otros | el tráfico de desconocidos sale por tu IP |
| Reglas de división de apps (app split rules) | vacías | las apps listadas esquivan el túnel | su tráfico va sin proteger |
| Reglas de división (dominio/IP) | vacías | los destinos listados usan tu conexión local | ese tráfico va sin proteger |
Salvedades que acompañan a la tabla:
- Desactivar Anonimización fuerte es el modo directo: el cliente habla directamente con el proveedor y va más rápido, y ese proveedor pasa a ver tu dirección real. El valor por defecto protege tu identidad. Gástala a propósito.
- Los ajustes de los conmutadores persisten entre modos de conexión. IP fija está inactivo hasta que eliges Web o Streaming.
- El kill switch también decide qué pasa con un paquete que el filtro de seguridad descarta (ver compartir conexión): activado, se bloquea de plano; desactivado, sale por tu ruta normal.
- Eliminar tu cuenta no está en Windows. Hazlo en la app web, que gestiona la misma cuenta.
Dos procesos, un túnel
La app está dividida en dos programas a propósito:
- URnetwork.exe. La app de bandeja WinUI 3 con la que interactúas. Se ejecuta sin privilegios, en tu sesión de usuario: un panel emergente desde la bandeja del sistema más una ventana completa para conectar, cuenta, cartera, clasificación, soporte y ajustes.
- urnetworkd. Un servicio de Windows ejecutándose como LocalSystem, la cuenta integrada más privilegiada de Windows: el poder necesario para crear adaptadores de red y establecer rutas, que la app en la que haces clic nunca recibe. Incrusta el SDK de URnetwork, posee el adaptador virtual wintun, bombea paquetes, aplica rutas, DNS y MTU, y mantiene su propio tráfico de control fuera del túnel.
Hablan por dos canales, cada uno con un solo trabajo:
- El RPC de dispositivo. El
DeviceRemotede la app maneja elDeviceLocaldel servicio por el RPC propio del SDK: un WebSocket TLS mutuamente autenticado en loopback. Ambos extremos prueban su identidad con certificados y la conexión nunca sale de tu máquina, así que otro programa local no puede simplemente conectarse y manejar el servicio. Todo lo que haces en la interfaz viaja por este canal: conectar, elegir una ubicación, conmutar el compartir. - Una tubería con nombre (
\\.\pipe\urnetwork.control). Lleva solo ciclo de vida y configuración: arrancar y parar el túnel, aplicar reglas de túnel dividido, cerrar sesión. Refleja cómo la app de macOS habla con su extensión de red, para que las dos bases de código sigan alineadas.
Por qué la división: un túnel VPN necesita privilegios, y una interfaz nunca debe tenerlos. Casi toda VPN de Windows son dos programas por esta razón. Apruebas una solicitud de UAC, al instalar, cuando el servicio se registra. El uso diario nunca pide administrador.
También significa que tu protección no depende de que la ventana esté abierta. Cierra la ventana y se oculta en la bandeja. Sal desde el menú de la bandeja y el túnel sigue arriba, porque el servicio lo posee. Solo Desconectar (Disconnect), un cierre de sesión o parar el servicio lo tumban.
La ventana
La navegación recorre Conectar, Cuenta, Cartera, Clasificación, Soporte, Ajustes (Connect, Account, Wallet, Leaderboard, Support, Settings).
Conectar es el globo y el panel debajo. El panel es donde vive la sesión:
- Ubicación seleccionada y pares. Por dónde estás conectado, y cuántos proveedores transportan ahora tu tráfico. Haz clic en el recuento de pares para abrir la hoja de proveedores conectados: un globo sobre una fila por proveedor, con su id de cliente, ciudad/región/país, coordenadas y cuánto lleva en tu ventana, más un quitar en línea.
- Opciones de conexión (Connect options). El modo de conexión (Auto, Web o Streaming: con qué agresividad el cliente cambia número de proveedores por rendimiento) y los cuatro conmutadores de la tabla de arriba: IP fija, Anonimización fuerte, Cifrado poscuántico y el kill switch (interruptor de corte).
- Las tarjetas Estadísticas del cliente (Client statistics) y Estadísticas locales (Local statistics), cada una abriendo una hoja de detalle: contratos en vivo por un lado, reglas de división y actividad de tráfico bloqueado por el otro.
- DNS personalizado. Una tarjeta de estado sobre el editor completo de resolvedores (abajo).
- Bloquear anuncios y rastreadores. Un conmutador.
- Plan y uso. Tu nivel, la barra de usado/pendiente/disponible, la cuota diaria, las invitaciones, Obtener UR Pro (Get UR Pro) y el canje de un código de saldo.
Cuenta lleva el plan y el uso, los códigos de saldo canjeados, el nombre de tu red y las invitaciones. Cartera cubre tu plan y la vía de mejora, y los ajustes de cartera para participar en el protocolo UR (ur.xyz). Las carteras Bittensor pueden añadirse pero se registran solo para uso futuro, y la app lo dice donde esperarías que lo dijera. Clasificación ordena las redes proveedoras. Soporte envía comentarios y llega a feedback.ur.io. Ajustes guarda las reglas de división de apps y el cierre de sesión.
Una salvedad a la entrada: la pantalla de inicio de sesión aún ofrece Probar modo invitado (Try Guest Mode). Crea una cuenta corriente y permanente, pero la app de Windows tira la frase de recuperación que el servidor devuelve, y aquí no hay inicio de sesión por frase de recuperación. Añade un correo o una cartera a esa cuenta antes de depender de ella.
La bandeja
Comportamiento clásico de bandeja Win32, porque WinUI no tiene API de bandeja propia:
- Clic izquierdo abre la ventana posicionada junto al icono de la bandeja, estilo panel emergente.
- Clic derecho da un menú con conectar/desconectar, mostrar y salir.
- Cuatro estados de icono reflejan la matriz de la barra de menús de macOS (conectado o no, compartiendo o no), cada uno con arte claro y oscuro, cambiado para casar con el tema de tu barra de tareas.
Elegir proveedores, y qué significa
El selector de ubicación es la propia agrupación del SDK: primero los pares de tu red conectados, luego el mejor disponible, luego países con recuentos de proveedores en vivo. Teclea en la caja de búsqueda y los resultados se reorganizan en mejores coincidencias más regiones, ciudades y dispositivos. La puntería es de nivel ciudad; a una ciudad se llega buscándola, no desplazándose hasta ella.
Dos protecciones respaldan cada sesión retransmitida, y ninguna necesita tocar un ajuste. El proveedor que saca tu tráfico a internet nunca sabe quién eres, porque el operador se interpone. El operador no puede leer los paquetes que reenvía, porque el Cifrado poscuántico sella la sesión de extremo a extremo hasta el proveedor por defecto. Juntas, ninguna parte por sí sola reúne tu identidad y tu actividad. La ruta completa, incluido el tramo del extensor que lleva tu sesión cifrada hasta el operador, está en la visión general.
| Modo | El operador ve | El proveedor ve | Valor por defecto y disponibilidad |
|---|---|---|---|
| Retransmitido sellado | cuenta y conexión de origen, asociación con proveedores, texto cifrado con tiempo y volumen | los destinos que saca a internet, un id de dispositivo/contrato, no tu IP real | el valor de fábrica: Cifrado poscuántico activado en el panel |
| Retransmitido estándar | cuenta y conexión de origen, asociación con proveedores, destinos interiores y bytes de los paquetes | los destinos que saca a internet, un id de dispositivo/contrato, no tu IP real | opcional: desactiva el Cifrado poscuántico |
| Directo | menos intervención en la retransmisión | tu IP real y los destinos que saca a internet | opcional: desactiva Anonimización fuerte |
El modelo de amenazas trabaja estas filas frente a adversarios con nombre y es explícito sobre dónde falla cada una.
En Auto corren dos ventanas de proveedores en paralelo, así que el tráfico sale típicamente por 3–8 proveedores a la vez, con cada sitio fijado a uno. Un proveedor concreto solo ve una porción de tu sesión. Web y Streaming ejecutan una ventana cada uno, más estrecha. IP fija la colapsa a un proveedor y una dirección de salida.
Túnel dividido por aplicación y el controlador
"Deja que esta app esquive la VPN", para que un juego conserve su ping más bajo o una app bancaria hostil a las VPN se quede en tu conexión normal, no puede hacerse bien desde el espacio de usuario en Windows. La decisión de redirección tiene que ocurrir donde se crea el socket, dentro de la pila de red. Así que la app incluye SplitTunnel.sys, un controlador callout de la Windows Filtering Platform (WFP):
- De sala limpia. Implementado desde primeros principios contra la documentación de Microsoft y las especificaciones públicas, no derivado del controlador de otro fabricante.
- Con licencia MPL-2.0, desarrollado en el mismo repositorio abierto que la app.
- Basado en procesos, nunca en destinos. El controlador registra exactamente un callout, en la capa de redirección de bind de Windows. Cuando cualquier proceso abre un socket, el controlador compara la ruta del ejecutable de ese proceso con tu lista de exclusión y, si coincide, reescribe la dirección local del socket a la interfaz física, de modo que el flujo sale por tu conexión normal. No lee ninguna dirección remota en absoluto. El servicio exime su propio tráfico por id de proceso.
- Los procesos hijos heredan. Los procesos auxiliares de un lanzador siguen a la app que excluiste.
- Falla en abierto, nunca en agujero negro. Si no hay interfaz física establecida, la redirección queda inerte en lugar de descartar tráfico.
Gestiona la lista en Ajustes → reglas de división de apps. Tres límites. Los sockets que un proceso ya tenía abiertos conservan su ruta hasta que reconectan. Las consultas DNS de una app excluida siguen pasando por el servicio de resolución compartido de Windows, así que pueden seguir el túnel aunque la app no lo haga. Y el controlador es una opción de compilación: un MSI empaquetado sin él instala un túnel funcional sin reglas por app.
Aparte, la hoja de reglas de división del panel de conexión hace reglas de nivel dominio e IP a través del propio túnel, la misma superficie que tienen las apps de Apple y Linux. Las dos se componen: el controlador decide por app, las reglas deciden por destino.
Mantener al servicio fuera de su propio túnel
Un proceso de túnel tiene un problema de arranque: su propio tráfico hacia la plataforma no debe pasar por el túnel que crea, o el primer paquete da vueltas para siempre. El servicio lo resuelve en la capa de sockets. El SDK expone un gancho de enlace de salida, y el servicio fija sus propios sockets de control y retransmisión a la interfaz física, siguiendo a un monitor de salida que recalcula la interfaz correcta en cada cambio de red (de Wi-Fi a Ethernet, adaptadores que aparecen y desaparecen).
Rutas y DNS
Cuando el túnel se levanta, el servicio no borra tu ruta por defecto. La supera en la puja: todo el espacio IPv4 excepto los rangos de LAN privados (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) se instala como un conjunto de rutas más específicas a través del adaptador del túnel. Ganan a tu ruta por defecto existente sin tocarla, el desmontaje es solo quitarlas, y tu impresora y tu NAS siguen funcionando en local. El adaptador del túnel recibe su dirección y una MTU de 1440 del SDK, y los resolvedores de la red se establecen en ese adaptador.
Tres límites que puedes exigirle a la app:
- El DNS se establece por adaptador, y Windows resuelve por adaptador. Los ajustes de DNS propios de la app (la hoja de DNS personalizado, cuyo valor por defecto es DNS-sobre-HTTPS cifrado resuelto por el túnel) son la protección significativa aquí. Si usas una configuración de resolvedores inusual, comprueba adónde van de verdad tus consultas.
- El túnel transporta IPv4. IPv6 no se enruta por él hoy, así que en una red con IPv6 un sitio capaz de v6 aún puede ver tu dirección real. Si necesitas que todo salga por un proveedor, desactiva IPv6 en la conexión.
- Fallar cerrado es un interruptor, no una suposición. Deja el kill switch desactivado y un túnel parado significa que Windows recurre a tu conexión normal. Actívalo y el tráfico se detiene. Es la primitiva
SetRouteLocaldel SDK invertida, la misma que enlaza toda app de URnetwork, y sale desactivada de fábrica.
DNS personalizado
El mismo panel de resolvedores multiplataforma que tienen las apps de Apple y Linux. El valor por defecto es la opción más estricta: DNS cifrado sobre HTTPS, resuelto a través del túnel. Puedes hacer el intercambio a propósito: DoH o sin cifrar, resuelto en remoto o en local, con listas de servidores editables, un interruptor de respaldo de DNS local que hace competir a un resolvedor local mientras el túnel arranca para que las consultas no se atasquen, y una acción para restaurar los valores seguros.
Compartir conexión
Compartir está desactivado por defecto y vive en el panel de conexión: Auto, Siempre (Always), Red (Network, solo los dispositivos de tu propia cuenta) o Nunca (Never). Los proveedores participan en el protocolo UR; ur.xyz documenta cómo funcionan las recompensas.
Lo que te protege cuando compartes es la capa ip_security de código abierto del motor connect. Inspecciona el tráfico en tu propia salida y descarta el tráfico de clase DMCA (firmas con seguimiento de estado de BitTorrent e intercambio de archivos, descartes de protocolo opaco) y el de clase CFAA (patrones de ataque e intrusión) antes de que salga por tu conexión. Una coincidencia es un paquete descartado, sin destino, dominio ni contenidos registrados. Una firma de BitTorrent en claro sobre tráfico que transportas para otro envía además al operador una señal de abuso con el id de dispositivo del par y un booleano, nada más, y el operador no incluye hoy ningún gestor para ella. El mismo filtro corre sobre tu propia ruta de envío compartas o no, y tu propio tráfico nunca se reporta. El sellado no esquiva el filtro, porque corre donde el tráfico sale. La visión general cubre la capa al completo.
Qué hace de verdad el Cifrado poscuántico
Tu cliente sella el tráfico de extremo a extremo hasta el proveedor sobre una sesión negociada con X25519MLKEM768 (híbrido clásico más ML-KEM). Ese tramo sellado es lo que ciega al salto de en medio: el operador transporta bytes que no puede leer. Está activado por defecto y falla en cerrado: mientras está activado, el cliente no envía ni acepta datos de aplicación en claro, así que un proveedor con el que no consigue establecer una sesión sellada queda descartado en vez de usarse sin sellar. Toda compilación actual de proveedor habilita el lado que responde, así que en la práctica el sellado es automático. El coste es de disponibilidad, no de confidencialidad: puedes perder un proveedor, nunca tu cifrado, y no hay degradación silenciosa. Desactiva el ajuste y el tráfico podrá volver a tomar la ruta TLS-hasta-plataforma estándar. Las firmas de identidad siguen siendo Ed25519 y el cifrado es AES-256-GCM. "Poscuántico" significa este intercambio de claves, nada más amplio.
Límite: la app de Windows no tiene panel de inspección de identidad. No hay huella de clave que comparar fuera de banda, ni veredicto por conexión que te diga si esta sesión selló. La hoja de proveedores conectados es la superficie más cercana.
Firma y actualizaciones
- Windows 10 21H2 o posterior y Windows 11, x64 y ARM64, como MSI por máquina desde la página de versiones. ARM64 es una compilación nativa, no emulación.
- App, servicio e instalador van firmados con Authenticode.
- El controlador necesita más: un certificado EV más la firma de atestación de Microsoft. Windows solo carga controladores firmados por atestación, así que es la puerta de carga, no ceremonia.
- El controlador viaja dentro del MSI. Nada se descarga en tiempo de ejecución; lo que contiene el instalador es lo que corre. Las dependencias de terceros fijadas (wintun) se verifican por hash y firmante original antes de empaquetar.
- Las actualizaciones son trabajo del servicio, no de la Store. La Microsoft Store no empuja actualizaciones para fichas EXE/MSI, y un paquete MSIX (el tipo que la Store sí autoactualiza) no puede llevar limpiamente un controlador de kernel. Así que la vía de actualización pasa por
urnetworkd: descargar, verificar la firma, cambiar los binarios. Sin solicitud de UAC por actualización, y los arreglos de seguridad no esperan a la revisión de la tienda. Windows también protege este patrón: un binario de servicio solo puede reemplazarse cuando el viejo y el nuevo están firmados por el mismo editor.
Resolución de problemas
La app dice que no puede alcanzar el servicio
El túnel vive en urnetworkd. Comprueba que está en marcha en Servicios (Services, o sc query urnetworkd); está registrado para arrancar automáticamente y reiniciarse dos veces ante un fallo. Si está parado y no arranca, reinstala el MSI, que vuelve a registrar el servicio.
Conectado, pero una app concreta no tiene internet
Revisa Ajustes → reglas de división de apps. Una app en la lista de exclusión esquiva el túnel por diseño, y si excluiste algo que luego no pudo alcanzar un servicio por tu conexión normal, esa es la regla funcionando. Los cambios surten efecto en la siguiente conexión de esa app, porque los sockets ya abiertos conservan su ruta, así que reinicia la app.
El túnel dividido por aplicación no está disponible
El controlador es una característica opcional del instalador. Vuelve a ejecutar el MSI y asegúrate de que la característica de túnel dividido está seleccionada. Los controladores de kernel además requieren la compilación firmada por atestación; un controlador compilado por ti no cargará en una máquina que no esté en modo de firma de pruebas.
Los sitios siguen viendo mi dirección real
Casi siempre IPv6. El túnel transporta IPv4 hoy; desactiva IPv6 en el adaptador de red y vuelve a probar. Lo segundo más probable: una ruta de DNS por adaptador, que el valor por defecto de la hoja de DNS personalizado (DoH por el túnel) está diseñado para cerrar.
El tráfico se atasca tras cambiar de red
Moverse entre Wi-Fi y Ethernet cambia a qué interfaz debe fijar el servicio sus propios sockets. Lo vigila y recalcula, pero si una sesión queda atascada, desconéctate y reconéctate para reconstruir en limpio.
No pasa nada cuando salgo
Ese es el diseño: salir de la app de la bandeja deja el túnel funcionando en el servicio. Usa Desconectar.
En otros lugares
La visión general explica la red de extremo a extremo: proveedores, contratos, lo que cada parte puede ver y no ver, y el cifrado. Las preguntas frecuentes responden las dudas comunes. Otras plataformas: Android, iOS, macOS, Linux y el navegador.