OpenVPN Connect frente a OpenVPN GUI: dónde guarda Windows los perfiles
Dos clientes de Windows, dos modelos de perfil: la GUI lista archivos .ovpn de una carpeta, Connect mantiene un almacén de importación. Luego elimina o importa correctamente.
En Windows, "dónde está mi perfil de OpenVPN" tiene dos respuestas distintas, y elegir la incorrecta cuesta una tarde. La GUI comunitaria de OpenVPN trata un directorio como su lista de perfiles: cada archivo .ovpn de la carpeta configurada aparece en el menú de la bandeja, y un archivo eliminado de esa carpeta desaparece. OpenVPN Connect trabaja desde un almacén de importación, así que conserva un perfil que borraste del disco e ignora un archivo que copiaste dentro. La comparación de abajo es la que uso para decidir qué carpeta abrir antes de tocar nada.
Una lista de carpeta frente a un almacén de importación
La GUI comunitaria enumera los archivos al iniciarse: lee un directorio de configuración, elegido durante la instalación, y un archivo .ovpn que esté ahí es un perfil. Cierra el cliente, copia un archivo en esa carpeta, vuelve a iniciarlo y la entrada está en el menú.
Connect, en cambio, construye su lista a partir de registros que escribió durante la importación, así que un archivo copiado es invisible mientras que un perfil importado sobrevive al borrado de la descarga original. Esa única diferencia explica la mayoría de los informes de que los dos clientes guardan los perfiles en lugares distintos, porque es cierto.
La GUI comunitaria: qué carpeta se usa realmente
Importan dos carpetas. Una instalación por usuario lee %USERPROFILE%\OpenVPN\config; una instalación para todos los usuarios lee C:\Program Files\OpenVPN\config, o la ruta x86 cuando el cliente es de 32-bit. Si un perfil aparece solo para una cuenta de Windows, está en la carpeta por usuario y la otra cuenta nunca lo verá.
No deduzcas la ruta del instalador. La GUI acepta un argumento --config_dir y recuerda el directorio con el que se inició, así que un acceso directo puede apuntar a otro lugar por completo. Revisa el destino del acceso directo y el campo Start in, o la configuración de la GUI, antes de crear cualquier archivo.
Eliminar es eliminar archivos. Cierra primero la GUI para que no retenga la entrada en memoria, borra el .ovpn junto con los archivos de certificado o clave que haya al lado y vuelve a iniciar el cliente.
La carpeta para todos los usuarios necesita un borrado elevado. Un borrado que allí no hace nada en silencio es UAC, no un fallo del cliente.
Connect: el almacén de importación y la doble trampa de AppData
Las versiones 2.x y 3.x actuales guardan los perfiles en %APPDATA%\OpenVPN Connect\profiles. Las versiones alrededor de la 2.5 usaban en su lugar %ProgramFiles(x86)%\OpenVPN Technologies\OpenVPN Client\etc\profile, y por eso las respuestas antiguas y nuevas de los foros parecen contradecirse. Una máquina actualizada en el sitio aún puede tener ambas.
Las rutas se estropean al contarlas. %AppData% ya se resuelve en AppData\Roaming, así que escribir %AppData%\Roaming\OpenVPN Connect\profiles se expande a AppData\Roaming\Roaming y no apunta a nada. Usa la variable o la ruta literal, nunca una mezcla de las dos.
Elimina a través del cliente: abre Profiles, usa el icono del lápiz, elige Delete. Eso quita el registro y la copia guardada a la vez. Eliminar la carpeta mientras Connect se ejecuta puede dejar un registro que no abre nada, que es la queja "profile still shows up" en su otra forma.
La copia importada es la que ejecuta el cliente. Editar el .ovpn que queda en Downloads no cambia nada, porque Connect lee su copia guardada; para cambiar un remote o un cipher, edita el perfil dentro del cliente, o edita el archivo y vuelve a importarlo .
Por qué vuelve un perfil eliminado
Dos instalaciones de la misma familia de clientes es la razón habitual. Una GUI por usuario y una GUI para todos los usuarios tienen directorios de configuración separados, así que eliminar de una deja la otra intacta y la bandeja sigue listando el nombre. Programs and Features es donde confirmas si ambas están instaladas.
La segunda razón es un perfil que nunca estuvo en la carpeta que revisaste. Abrir un .ovpn una vez desde un recurso compartido de red o una carpeta Downloads puede copiarlo al directorio de configuración por usuario, y los perfiles de Connect importados existen solo en AppData. Antes de editar nada, busca el nombre del archivo tanto en %USERPROFILE% como en %APPDATA%. Una carpeta de perfil suele contener la clave privada junto al .ovpn, así que nunca pegues la carpeta en un ticket o chat para demostrar qué perfil eliminaste - cita el nombre del archivo y la marca de tiempo.
Las versiones antiguas de la GUI también guardan las preferencias del cliente en el registro. Si la bandeja sigue listando un nombre después de que el archivo desapareció y solo hay una instalación, reinicia el cliente una vez y vuelve a revisar el directorio de configuración del acceso directo antes de plantearte tocar claves del registro.
Dos túneles a la vez: primero los adaptadores, luego la ruta
La GUI puede mantener varias conexiones, una por adaptador virtual; añade adaptadores desde la entrada del menú Start que instala TAP-Windows6 y luego confirma el recuento en Network Connections, porque dos túneles simultáneos necesitan dos adaptadores y ambos deberían obtener su dirección automáticamente. El enrutamiento es el límite más difícil. Dos perfiles que redirigen todo el tráfico compiten por la ruta predeterminada, y solo uno puede poseerla, así que obtienes fallos intermitentes en lugar de dos túneles funcionales. Mantén un túnel completo y da al segundo un perfil de split-tunnel que empuje solo su propia subred.
Los rangos privados superpuestos no se arreglan añadiendo un adaptador. Si ambos servidores reparten 10.8.0.0/24, el segundo túnel choca a nivel de dirección y ninguna cantidad de configuración del cliente los separará.
Los nombres de los adaptadores te dicen qué estás mirando. Get-NetAdapter en PowerShell lista los adaptadores TAP-Windows y el adaptador Wintun por nombre, lo que es más rápido que contar iconos en Network Connections cuando un túnel se levantó en el equivocado.
Iniciar un perfil con nombre desde un script
La GUI toma un nombre de perfil relativo a su directorio de configuración, así que un lanzador queda así: "C:\Program Files\OpenVPN\bin\openvpn-gui.exe" --connect "myvpn.ovpn". Una ruta absoluta, o un proceso iniciado en un directorio de trabajo distinto, falla en silencio, y por eso un acceso directo que funciona con doble clic se rompe bajo Task Scheduler.
Define el directorio de trabajo en lugar de esperar. En un lanzador de AutoHotkey eso es SetWorkingDir, C:\Program Files\OpenVPN\config; en Task Scheduler es el campo Start in de la acción. Pasar --config_dir con la misma ruta hace que el lanzador sea independiente de ambos.
Antes de terminar, exporta el perfil, anota su adaptador, su subred y la subred que enruta, y guarda los certificados de cada cliente en su propia subcarpeta. Luego confirma que la carpeta pertenece al cliente que realmente ejecutas, y elimina a través del cliente cuando ese cliente tenga un almacén de importación. Hacerlo en ese orden es lo que evita que el mismo perfil reaparezca tras el siguiente reinicio.