Ajustes de la herramienta VPN: ¿entorno al arrancar o exportación en el hook?
Un hook inicia sus propios procesos hijos, no la consola que ya abrió. Un entorno al arrancar mantiene el extremo privado solo en el único comando que lo necesita.
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.
| Property | Prefix on the command | Export from the hook |
|---|---|---|
| Who receives it | That invocation only | Children the hook starts |
| Lifetime | Until the process exits | Until the hook's own session ends |
| Leakage | Scoped to one command | Applies to later commands in that session |
| Repeat cost | Every invocation | Once per connection |
| Works for an open editor | No, unless the editor is started with it | No |
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.