Tours

La app de macOS, a fondo

15 min de lecturaView as markdown ↗

URnetwork en el Mac se construye desde el mismo proyecto de Xcode que la app de iPhone y iPad: una base de código, un motor, dos formas de ventana. La usas como una VPN (conectas, y tu tráfico aparece desde otro lugar), pero sale por conexiones domésticas reales compartidas por otros miembros, no por centros de datos. Este recorrido cubre al completo las partes con forma de Mac y pasa por las funciones compartidas con la profundidad justa para usarlas; donde el comportamiento es idéntico a iOS, el recorrido de iOS tiene la versión exhaustiva. Para la instalación y la primera conexión, ver los primeros pasos en macOS; para lo que cambian las salidas gestionadas por miembros, la visión general.

Cómo está construida la app

Dos procesos, como toda VPN seria en las plataformas de Apple:

  • La app (bundle network.ur) es la ventana y el extra de la barra de menús.
  • La extensión de túnel (network.ur.extension) es una extensión de red NEPacketTunnelProvider que macOS arranca y supervisa. Tu tráfico se mueve por este proceso, lo que significa que tu protección nunca depende de que la ventana esté abierta.

La app habla con el túnel por un RPC de dispositivo local (un canal de control privado entre los dos procesos), así que puede acoplarse a un túnel que ya está en marcha. Sal de la app y reábrela a mitad de sesión, o haz que se caiga, y adopta el túnel vivo en lugar de reiniciarlo. Esta es también la razón de que macOS te pida aprobar una configuración VPN en la primera conexión: la extensión es un componente gestionado por el sistema, y el sistema operativo exige consentimiento.

La app requiere macOS 13.5 o posterior, y todo es código abierto en github.com/urnetwork, así que afirmaciones como "la ruta de datos no registra nada" pueden comprobarse en el código en lugar de tomarse en confianza. Ninguna auditoría independiente cubre el protocolo ni el código de servidor del operador, donde viven las afirmaciones de privacidad. Dos evaluaciones de terceros de 2025 cubren otras superficies: una prueba de penetración de la aplicación web y la API, y una evaluación MASA AL2 de Leviathan Security Group sobre la app de Android, que la superó. Ninguna cubre la app de Mac. El modelo de amenazas registra ambas y sus límites.

La ventana: una barra lateral con cuatro secciones

La ventana principal es una vista dividida. La barra lateral tiene las mismas cuatro secciones que las pestañas de iOS (Conectar (Connect), Cuenta (Account), Clasificación (Leaderboard), Soporte (Support)), y la sección seleccionada llena el resto de la ventana.

Conectar

El gran globo es el botón de conectar. La línea de estado debajo dice Conectado a N proveedores (Connected to N providers), y hacer clic en esa línea abre Ubicaciones de proveedores (Provider Locations): un globo giratorio sobre la lista de los proveedores que de verdad te transportan ahora mismo. Espera varios a la vez, normalmente de tres a ocho. Tu cliente ejecuta dos conjuntos en paralelo (uno de calidad para HTTPS, uno de velocidad para todo lo demás) y fija cada sitio a un proveedor, así que la imagen es plural por diseño mientras cualquier sitio concreto sigue viendo una sola dirección estable. Los proveedores lentos o desaparecidos se reemplazan automáticamente; que uno se desconecte a mitad de streaming cuesta como mucho una pausa breve mientras ese sitio se muda a otro de tu conjunto, y si una sesión entera se arrastra, reconéctate para sacar un conjunto nuevo. La visión general explica la ruta que toma cada conexión, por qué se detiene en cuatro tramos y lo que cada parte del camino puede ver y no ver.

Bajo el globo está el panel de detalles: tu ubicación seleccionada, las Opciones de conexión (Connect options: modo de conexión, IP fija, Anonimización fuerte, Cifrado poscuántico), las tarjetas de estadísticas Remoto / Bloqueado / Local (Remote / Blocked / Local) que abren los contratos del cliente, las reglas de división y el panel de DNS, y el conmutador Bloquear anuncios y rastreadores (Block ads and trackers). Compartir conexión no está aquí. Vive en Cuenta → Ajustes.

AjusteValor por defectoEfectoCoste principal
Modo de conexión (Connection mode)AutoAuto ejecuta ambos conjuntos de proveedores y encamina cada paquete al que correspondeWeb o Streaming se comprometen con un solo conjunto
IP fija (Fixed IP)DesactivadoEstrecha la ventana a un solo proveedor, así que todos los sitios ven una misma dirección estableRenuncia a la salida plural
Anonimización fuerte (Strong Anonymization)ActivadoProhíbe una ruta directa cliente-proveedor, así que un proveedor nunca ve tu IP realMás lento que la ruta directa
Cifrado poscuántico (Post Quantum Encryption)ActivadoSella la sesión de extremo a extremo hasta el proveedor, así que el operador transporta texto cifradoOmite los proveedores con los que no puede sellar
Bloquear anuncios y rastreadores (Block ads and trackers)DesactivadoFiltra anuncios y rastreadores de todo lo que transporta el túnelEl filtrado es para todo el túnel, no por app
  • Desactivar Anonimización fuerte es el modo directo: más rápido, y ese proveedor pasa a ver tu dirección real.
  • El sellado no admite respaldo. Mientras el Cifrado poscuántico está activado, el cliente no envía ni acepta datos de aplicación en claro: un proveedor con el que no consigue establecer una sesión sellada se omite, no se usa sin sellar. El coste es de disponibilidad, no de confidencialidad: pierdes ese proveedor, no tu cifrado. Toda compilación actual de proveedor habla el lado que responde, así que eso es poco frecuente. Desactiva el ajuste y el tráfico puede volver a tomar la ruta estándar. Ninguna app muestra todavía un veredicto de sellado-o-no por conexión.

Un proveedor es la conexión real de otro miembro; la plataforma es el operador de en medio, que te empareja con ellos. Un proveedor ve adónde va el tráfico que transporta, la vista que tu ISP tiene hoy de ti, pero no lo que hay dentro, porque casi todos los sitios sellan sus propios contenidos con HTTPS. Por defecto nunca conoce tu IP real, que se queda con la plataforma. La plataforma, a su vez, conserva casi nada: tu dirección se guarda como un hash unidireccional con clave (revuelto con una clave secreta, no reversible) del bloque de direcciones que la rodea y no como la dirección en sí, y el registro de transferencias anota recuentos de bytes entre ids de cliente, nunca los sitios que visitas. Una consulta geográfica sí archiva una ciudad aproximada por conexión, así que el dónde grueso se conoce; el qué, nunca. Con ambos valores por defecto activados, un proveedor nunca sabe quién eres y el operador no puede leer lo que envías, así que ninguna parte por sí sola reúne tu identidad y tu actividad.

ModoEl operador veEl proveedor veValor por defecto y disponibilidad
Retransmitido selladotu cuenta y conexión de origen, en qué proveedores estás, y texto cifrado con su tiempo y volumenlos destinos que saca a internet y un id de dispositivo/contrato, no tu IP realel valor de fábrica: Cifrado poscuántico, activado en el panel de conexión
Retransmitido estándartu cuenta y conexión de origen, en qué proveedores estás, y los destinos y bytes de paquete del interiorlos destinos que saca a internet y un id de dispositivo/contrato, no tu IP realsolo con Cifrado poscuántico desactivado
Directomenos intervención en la retransmisióntu IP real y los destinos que saca a internetopcional: desactiva Anonimización fuerte

Límite: nada verifica que los proveedores que se te ofrecen sean independientes entre sí o del operador, y el operador puede ejecutar proveedores él mismo. El modelo de amenazas trabaja estas filas frente a adversarios con nombre, incluido un operador hostil, y es explícito sobre dónde falla cada una.

Haz clic en la tarjeta de ubicación y la lista de proveedores se abre. En el Mac se despliega como un panel junto a la vista de conexión en lugar de una hoja, y el botón Mostrar lista de proveedores (Show Provider List) de la barra de herramientas también la conmuta. Navegarla lista países, cada uno con un recuento en vivo de proveedores en línea; teclea el nombre de un lugar en Buscar proveedores (Search providers) y una sección de Ciudades (Cities) aparece en los resultados. La puntería de nivel ciudad es algo que se busca, no algo a lo que se llega desplazándose. Cada ubicación es el dispositivo de un miembro físicamente allí: la plataforma geolocaliza la conexión que observa, y una dirección que parece un centro de datos o una VPN se degrada en lugar de recibir confianza. "Mejor disponible" optimiza por velocidad cerca de ti; una ubicación concreta te hace aparecer allí.

Cuenta

La identidad y el plan viven aquí:

  • Plan. El gratuito es una cuota de datos diaria real; UR Pro es una mensual grande a 5 $/mes o 40 $/año. Números vigentes en ur.io/products.
  • Tu actividad como proveedor. Donde se configura el compartir, con lo que el tuyo ha transportado detallado. Ajustes lo enlaza como "Usa el protocolo UR" (Uses the UR Protocol); ur.xyz documenta cómo funcionan las recompensas por participar.
  • Códigos de saldo. Recargas de datos de un solo uso: una tarjeta regalo de datos, sin suscripción adjunta.
  • Ubicaciones bloqueadas (Blocked locations). Países por los que nunca quieres salir.
  • Identidades de proveedores. Los proveedores con los que tu cliente mantiene ahora una sesión sellada verificada.
  • El panel de identidad poscuántica. Cubierto abajo.
  • Ajustes (Settings). Donde viven compartir conexión, el kill switch (interruptor de corte), las ubicaciones bloqueadas, el arranque al iniciar sesión, tu frase de recuperación y métodos de inicio de sesión, y la eliminación de la cuenta.

Los conmutadores de Ajustes de un vistazo:

AjusteValor por defectoEfectoCoste principal
Compartir conexión (Provide mode)Nunca (Never)Comparte el ancho de banda sobrante de tu Mac en público, o solo con tus propios dispositivosCada byte transportado cuenta contra el tope de datos del ISP
Kill switchDesactivadoRechaza el recurso a la ruta local, así que el tráfico se detiene en lugar de fugarse cuando ningún proveedor está accesibleSin tráfico cuando los proveedores fallan
Iniciar URnetwork al arrancar el sistema (Launch URnetwork on system startup)DesactivadoArranca la app al iniciar sesión mediante el propio servicio de ítems de inicio de macOSUna entrada en Ajustes del Sistema → Ítems de inicio

Empezar sin correo es aquí una vía de primera clase. Crear Cuenta instantánea (Create Instant Account) en la pantalla de inicio de sesión crea una red real y permanente en un clic, asegurada por una frase de recuperación que la plataforma genera y muestra una vez, justo después de la creación. Guárdala: es la única vía de vuelta, el operador conserva solo formas hash de ella, y con ella guardada la cuenta sobrevive a este Mac. Cuenta es entonces donde puedes añadir cualquier otro método de inicio de sesión (Apple, Google, correo o teléfono, Solana, Bittensor) a esa misma red, conservando saldo e historial. Un correo o un teléfono es tu vía de inicio de sesión y recuperación, nada más, y las vías de frase de recuperación y cartera, con pago en USDC en cadena, permiten que una cuenta no lleve correo, nombre ni tarjeta en absoluto. Un código de autorización (auth code) generado en cualquier dispositivo con la sesión ya iniciada es la forma más rápida de traer tu Mac a una cuenta existente.

Clasificación

Los mayores proveedores por datos movidos, nunca nada sobre la navegación de nadie. Comparte desde tu Mac y puedes aparecer aquí, en público con el nombre de tu red o en privado, sin nombre. Si no compartes, simplemente no estás.

Soporte

Planes, ayuda, comentarios y enlaces de comunidad, con la posibilidad de adjuntar logs del cliente a un informe: la vía normal cuando algo se rompe. Fuera de la app, feedback.ur.io funciona desde cualquier navegador; los hallazgos de seguridad van a [email protected] bajo la política de divulgación en ur.io/vdp.

El extra de la barra de menús

URnetwork también vive en la barra de menús, y es la forma más rápida de usar la app en el día a día:

  • Estado de un vistazo. Conectado y Compartiendo, cada uno con una marca o una cruz.
  • Conectar / Desconectar (Connect / Disconnect). Un clic, sin necesidad de ventana.
  • Mostrar (Show). Trae de vuelta la ventana principal.
  • Salir de URnetwork (Quit URnetwork). Desconecta y cierra.

Cierra la ventana y la app sigue funcionando en la barra de menús; el túnel sigue funcionando en cualquier caso, porque es un proceso aparte gestionado por el sistema. ⌘Q tampoco es un cierre a propósito: oculta la ventana y saca la app del Dock hacia la barra de menús. Salir de URnetwork ahí es la salida real, y se lleva el túnel consigo.

Compartido con iOS: las funciones profundas

Estas funcionan idénticas a la app de iOS; el recorrido de iOS cubre cada una con todo detalle.

DNS personalizado

Un panel de DNS completo bajo Conectar. El DNS es la guía telefónica de internet (convierte un nombre como netflix.com en la dirección a la que se conecta tu Mac) y un lugar clásico de fisgoneo y bloqueo por parte de cortafuegos locales y regionales. No hace falta tocar el panel: el valor por defecto, DNS cifrado sobre HTTPS resuelto a través del túnel, ya es el ajuste más seguro. Desde ahí puedes cambiar cualquier combinación de DoH (remoto/local) y DNS sin cifrar (remoto/local), editar tú mismo las listas de resolvedores y usar el respaldo de DNS local (local DNS fallback), que hace competir a un resolvedor local mientras el túnel arranca para que las consultas nunca se atasquen durante el handshake (desactivado significa que el DNS solo se resuelve por el túnel). La pantalla ofrece ajustes recomendados por país, porque algunas redes nacionales interfieren con las consultas lo bastante como para romper la configuración más estricta, con aplicación de un toque y restauración de un toque a los valores seguros, más servidores sugeridos marcados en el color de tu país conectado.

Reglas de división

Encamina tráfico concreto fuera del túnel o fíjalo en su sitio, a nivel de dominio e IP. Toca el tráfico en vivo para encaminarlo en local, el arreglo cuando una intranet de oficina, una impresora o un NAS desaparecen detrás del túnel. O mantén un sitio en un solo proveedor para una dirección estable, lo que mantiene tranquilos a los sitios sensibles a la dirección como los bancos; ese proveedor pasa entonces a ver tus visitas a ese único sitio, todavía sin tu identidad ni tu contenido. Las reglas capturan todo el grupo de red coasociado, así que el tráfico de CDN y subdominios se mueve junto. Como en iOS, aquí no hay túnel dividido por aplicación. Android y Windows lo tienen, pero las plataformas de Apple no dan a las apps de VPN un gancho por aplicación soportado, así que las reglas en el Mac son de nivel de red.

Compartir conexión

Compartir el ancho de banda sobrante de tu Mac (un escritorio con buena subida es exactamente el dispositivo que la red quiere) se configura en Cuenta → Ajustes → Conexiones, donde Compartir conexión (Provide mode) es una elección de cuatro posiciones y no un interruptor:

ModoQué transporta
Nunca (Never)Nada. El valor por defecto: eres puramente un usuario
AutoTráfico público mientras estás conectado; solo tus propios dispositivos cuando no
Siempre (Always)Tráfico público, conectado o no
Red (Network)Solo y siempre tus propios dispositivos

El tráfico público se mide bajo contratos firmados (acuerdos criptográficos que cuentan bytes entre identidades de cliente, que es como se liquida el uso sin registrar destinos), y los proveedores participan en el protocolo UR; ur.xyz documenta cómo funcionan las recompensas de esa participación.

La seguridad está diseñada en tu propia máquina. La capa de inspección de código abierto del motor connect corre en tu Mac en la salida y bloquea el intercambio de archivos (clase BitTorrent) y el tráfico con patrón de ataque antes de que salga por tu conexión. Lo que produce una coincidencia: el paquete se descarta, y una firma de intercambio de archivos levanta además una señal de abuso al operador que lleva solo el id del dispositivo emisor y un booleano (sin destino, sin dominio, sin contenidos), para la que el operador no incluye hoy ningún gestor. Los descartes de patrón de ataque y de túnel opaco no levantan nada en absoluto. El mismo filtro es la razón de que URnetwork no sea, a propósito, una herramienta de torrents para usuarios. Límite: ningún diseño de salida compartida hace el riesgo exactamente cero, y por eso la audiencia la eliges tú, y cada byte que transportas cuenta contra el tope de datos del ISP, así que en un plan medido comparte selectivamente o no compartas.

El panel de identidad poscuántica

El ajuste en sí es Cifrado poscuántico (Post Quantum Encryption), un conmutador en el panel de conexión bajo Opciones de conexión, y sale de fábrica activado: sellado es el estado en el que empieza una instalación recién hecha, no una elección que tengas que tomar. Cuenta muestra entonces la identidad de sesión poscuántica de tu cliente con una hoja de compartir para la comparación fuera de banda, la misma idea que comparar los números de seguridad en una app de mensajería: leer la huella por otro canal demuestra que la sesión sellada termina donde crees. Lo que cubre el ajuste: tu cliente sella el tráfico directamente hasta un proveedor usando una sesión TLS 1.3 negociada con X25519MLKEM768 (híbrido clásico + ML-KEM), de modo que el operador de en medio transporta bytes que no puede leer, y las grabaciones hechas hoy están diseñadas para seguir selladas incluso frente a un ordenador cuántico futuro (la amenaza de "recolectar ahora, descifrar después"). No admite respaldo: mientras el ajuste 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 se omite en lugar de usarse sin sellar — pierdes ese proveedor, no tu cifrado. Toda compilación actual de proveedor habla el lado que responde, así que eso es poco frecuente; desactiva el ajuste y el tráfico puede volver a tomar la ruta estándar de la plataforma. Ninguna app muestra todavía un veredicto de sellado-o-no por conexión. Las firmas de identidad siguen siendo Ed25519, y "poscuántico" significa este intercambio de claves de sesión, nada más amplio.

Resolución de problemas

La aprobación de la configuración VPN

La primera conexión dispara un diálogo del sistema pidiendo permitir una configuración VPN. Si se rechazó, el túnel no puede arrancar jamás. Apruébala en el siguiente intento, o mira en Ajustes del Sistema → VPN (System Settings → VPN, visible también bajo Red), donde la configuración de URnetwork debería estar listada y habilitada.

Varios perfiles de VPN, y cómo los gestiona la app

Las reinstalaciones y actualizaciones pueden dejar a macOS con más de un perfil de VPN de URnetwork. La app cuenta con ello: al conectar enumera todos los perfiles, y cuando arrancar uno falla lo restablece y reintenta, y pasa al siguiente. Si un túnel ya está en marcha lo adopta por el RPC de dispositivo en lugar de reiniciarlo. Los perfiles rotos se restablecen o eliminan con un tope de eliminaciones, y toda operación sobre perfiles está acotada por plazos para que un demonio del sistema atascado no pueda colgar la app. Es automático, y se describe aquí para que las entradas de Ajustes del Sistema tengan sentido.

"Failed to load VPN profiles" (error 12)

Si conectar falla con "Failed to load VPN profiles" (código de error 12), el almacén de preferencias de VPN del sistema se niega a enumerar perfiles, un estado que la app no puede reparar desde dentro. Arréglalo a mano:

  1. Abre Ajustes del Sistema y encuentra las configuraciones VPN (Ajustes del Sistema → VPN, o el equivalente de General → VPN y gestión de dispositivos en tu versión de macOS).
  2. Elimina la(s) configuración(es) de URnetwork.
  3. Reconecta desde la app y aprueba la configuración nueva.

Eliminar la configuración borra fontanería, no datos: tu cuenta, tus ajustes y tus reglas de división quedan intactos, y la siguiente conexión la recrea (mostrando otra vez el diálogo de aprobación de una sola vez).

Arrancar al iniciar sesión

Iniciar URnetwork al arrancar el sistema (Launch URnetwork on system startup) es un conmutador en Cuenta → Ajustes, bajo Sistema. Registra la app en el propio servicio de ítems de inicio de macOS, así que funciona en todas las versiones que la app soporta y la entrada aparece en Ajustes del Sistema → General → Ítems de inicio (Login Items), donde también puedes quitarla a mano. Desactivar el conmutador la desregistra de nuevo.

Cómo funciona aquí el kill switch

Igual que en iOS: la app lleva un conmutador Kill switch en Cuenta → Ajustes → Conexiones, el mismo control del SDK que tiene toda app de URnetwork. Empieza desactivado, así que encenderlo es un acto deliberado. Activado, el cliente se niega a recurrir a tu ruta local, así que el tráfico se detiene en lugar de fugarse. Lo que el Mac no añade es aplicación a nivel de sistema operativo. La app no establece includeAllNetworks, así que si el proceso del túnel muere de forma inesperada, macOS restaura la red normal en lugar de fallar cerrado: tus apps siguen funcionando por la red subyacente con tu IP real, probablemente sin que notes más que un parpadeo. La marca/cruz de la barra de menús es el cable trampa de un vistazo. La app supervisa el túnel y recupera perfiles con agresividad, pero hoy no le pide al sistema que bloquee en firme el tráfico cuando el túnel está caído. Si necesitas un comportamiento de fallo cerrado garantizado, aplícalo fuera del Mac (una regla de router o cortafuegos que solo deje pasar tráfico del túnel), o haz el trabajo crítico de navegador a través de la extensión de navegador de URnetwork, cuyo kill switch viene activado por defecto y cubre solo el tráfico del navegador.

Leer los logs del túnel

La extensión del túnel escribe en el log unificado del sistema: Console.app, no archivos.

  1. Abre Console.app y selecciona tu Mac.
  2. En el menú Acción, activa Incluir mensajes de información (Include Info Messages) e Incluir mensajes de depuración (Include Debug Messages). Las líneas útiles están en esos niveles.
  3. Filtra por el subsistema network.ur.extension o busca "URnetwork", y reproduce la conexión.

Comportamiento en reposo

El túnel está configurado con disconnectOnSleep desactivado: cerrar la tapa no tumba la sesión, así que retomas donde lo dejaste en lugar de rehacer el handshake en cada despertar. Un Mac dormido no mueve tráfico. No navega y no comparte; el ajuste solo te ahorra el nuevo handshake.

Adónde ir ahora