Un hook de VPN que exporta un extremo de API cambia el entorno de los procesos que inicia, no el de la terminal que ya estaba abierta cuando subió el túnel. Esa única distinción explica la mayoría de los informes «la herramienta sigue llamando al extremo público». Hay dos sitios viables para poner el ajuste, y la elección depende de quién lo consume y de cada cuánto cambia. Compárelos antes de añadir otro script de arranque.

Dos sitios donde puede vivir el ajuste

La opción uno es un prefijo en el propio comando: el valor existe para esa única invocación y desaparece con ella. La opción dos es una exportación dentro del hook de conexión, que llega a cada proceso que el hook inicie después de ese punto. Difieren en alcance y duración, no en sintaxis, y esa diferencia decide la mayoría de los fallos.

PropertyPrefix on the commandExport from the hook
Who receives itThat invocation onlyChildren the hook starts
LifetimeUntil the process exitsUntil the hook's own session ends
LeakageScoped to one commandApplies to later commands in that session
Repeat costEvery invocationOnce per connection
Works for an open editorNo, unless the editor is started with itNo

La tabla hace que el hook parezca barato y esconde la factura real: también selecciona un extremo privado para comandos que no tienen nada que ver con la tarea. Lea cada fila como una restricción y no como una preferencia. Si el extremo cambia por tarea, el prefijo gana en precisión aunque cueste una pulsación.

Por qué el hook no puede llegar a una consola ya abierta

Las variables de entorno se entregan a un proceso cuando se crea la imagen del proceso. Una consola que arrancó antes de la conexión conserva la copia que recibió, y una exportación ejecutada dentro del hook no es una difusión a cada proceso de la máquina. Solo la heredan los hijos propios del hook. Los hijos propios de una consola toman lo que la consola tiene en el momento de arrancar, y por eso el mismo comando puede funcionar en una terminal y fallar en otra.

Lo mismo vale para un editor gráfico. Su host de extensiones, su terminal integrada y su servidor de lenguaje en segundo plano se bifurcaron al arrancar y conservan sus propias copias. Reabrir una carpeta no reinicia necesariamente a esos hijos, así que el ajuste que añadió sigue sin llegar nunca.

La prueba más barata es imprimir la variable desde el sitio que falla, no desde la consola que funciona. Si el proceso que falla arrancó antes del túnel, la exportación nunca tuvo ocasión.

La forma por comando, escrita

Un prefijo mantiene la elección visible en el comando que la usa, lo que ayuda cuando el extremo cambia entre tareas:

env INTERNAL_API='https://internal-api.example.net:8443' my-work-tool

El comando es ilustrativo: my-work-tool es un marcador de posición y INTERNAL_API no es un estándar de VPN, así que sustituya por el ajuste documentado del programa que realmente ejecuta y por su propio host aprobado. No ponga un token ni una contraseña en la misma línea, porque acaban en el historial de la consola.

Cuando varios comandos pertenecen a una sola tarea, un script envoltorio corto y revisado define las variables y luego los inicia. Así se mantiene una sola definición sin volver el valor global para cada comando futuro en la terminal.

Recargue, reinicie o déjelo estar

Para una herramienta que ya se ejecuta, prefiera su propia recarga o su perfil de espacio de trabajo cuando lo tenga. Si no, guarde el trabajo y reinicie el componente que lee el ajuste, que a menudo es un servidor de lenguaje y no la ventana del editor. Reiniciar la ventana y suponer que los procesos hijos la siguieron es la razón de que una recarga parezca no funcionar.

La desconexión es una decisión aparte. Pausar, cerrar o reconectar pertenece a la aplicación, y la variable del extremo no lo controla. Trate la variable como configuración que elige una dirección, no como una regla sobre qué tráfico de red puede usarse después, y las dos cuestiones siguen siendo separables.

Artículos relacionados