Axustes da ferramenta VPN: contorno ao arrincar ou exportación no hook?
Un gancho inicia os seus propios fillos, non a consola que xa abriu. Un contorno ao arrincar mantén o extremo privado só no único comando que o necesita.
Un gancho de VPN que exporta un extremo de API cambia o contorno dos procesos que inicia, non o da terminal que xa estaba aberta cando subiu o túnel. Esa única distinción explica a maioría dos informes «a ferramenta segue chamando o extremo público». Hai dous sitios viables para poñer o axuste, e a elección depende de quen o consome e de cada canto cambia. Compáreos antes de engadir outro script de arrinque.
Dous sitios onde pode vivir o axuste
A opción un é un prefixo no propio comando: o valor existe para esa única invocación e desaparece con ela. A opción dous é unha exportación dentro do gancho de conexión, que chega a cada proceso que o gancho inicie despois dese punto. Diferéncianse en alcance e duración, non en sintaxe, e esa diferenza decide a maioría dos 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 |
A táboa fai que o gancho pareza barato e esconde a factura real: tamén selecciona un extremo privado para comandos que non teñen nada que ver coa tarefa. Lea cada fila como unha restrición e non como unha preferencia. Se o extremo cambia por tarefa, o prefixo gaña en precisión aínda que custe unha pulsación.
Por que o gancho non pode chegar a unha consola xa aberta
As variables de contorno entréganse a un proceso cando se crea a imaxe do proceso. Unha consola que arrincou antes da conexión conserva a copia que recibiu, e unha exportación executada dentro do gancho non é unha difusión a cada proceso da máquina. Só a herdan os fillos propios do gancho. Os fillos propios dunha consola toman o que a consola ten no momento de arrincar, e por iso o mesmo comando pode funcionar nunha terminal e fallar noutra.
O mesmo vale para un editor gráfico. O seu host de extensións, a súa terminal integrada e o seu servidor de linguaxe en segundo plano bifurcáronse ao arrincar e conservan as súas propias copias. Reabrir un cartafol non reinicia necesariamente eses fillos, así que o axuste que engadiu segue sen chegar nunca.
A proba máis barata é imprimir a variable desde o sitio que falla, non desde a consola que funciona. Se o proceso que falla arrincou antes do túnel, a exportación nunca tivo ocasión.
A forma por comando, escrita
Un prefixo mantén a elección visible no comando que a usa, o que axuda cando o extremo cambia entre tarefas:
env INTERNAL_API='https://internal-api.example.net:8443' my-work-tool
O comando é ilustrativo: my-work-tool é un marcador de posición e INTERNAL_API non é un estándar de VPN, así que substitúa polo axuste documentado do programa que realmente executa e polo seu propio host aprobado. Non poña un token nin un contrasinal na mesma liña, porque acaban no historial da consola.
Cando varios comandos pertencen a unha soa tarefa, un script envoltorio curto e revisado define as variables e logo iníciaos. Así mantense unha soa definición sen volver o valor global para cada comando futuro na terminal.
Recargue, reinicie ou déixeo estar
Para unha ferramenta que xa se executa, prefira a súa propia recarga ou o seu perfil de espazo de traballo cando o teña. Se non, garde o traballo e reinicie o compoñente que le o axuste, que a miúdo é un servidor de linguaxe e non a xanela do editor. Reiniciar a xanela e supoñer que os procesos fillos a seguiron é a razón de que unha recarga pareza non funcionar.
A desconexión é unha decisión á parte. Pausar, pechar ou reconectar pertence á aplicación, e a variable do extremo non o controla. Trate a variable como configuración que escolle un enderezo, non como unha regra sobre que tráfico de rede se pode usar despois, e as dúas cuestións seguen sendo separables.