Postavke VPN alata: okruženje pri pokretanju ili izvoz iz hooka?
Hook pokreće svoju vlastitu djecu, a ne ljusku koju ste već otvorili. Okruženje pri pokretanju drži privatnu krajnju točku samo u onoj jednoj naredbi kojoj treba.
VPN hook koji izvozi krajnju točku API-ja mijenja okruženje procesa koje pokreće, a ne terminala koji je već bio otvoren kad se tunel podigao. Ta jedna razlika objašnjava većinu izvještaja „alat još uvijek poziva javnu krajnju točku“. Postoje dva upotrebljiva mjesta za postavku, a izbor ovisi o tome ko je troši i koliko se često mijenja. Usporedite ih prije nego dodate još jednu skriptu za pokretanje.
Dva mjesta na kojima postavka može živjeti
Prva je mogućnost prefiks na samoj naredbi: vrijednost postoji za taj jedan poziv i nestaje s njim. Druga je mogućnost izvoz unutar hooka za vezu, koji doseže svaki proces koji hook nakon toga pokrene. Razlikuju se po dosegu i trajanju, ne po sintaksi, i ta razlika odlučuje većinu kvarova.
| 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 |
Tablica čini hook jeftinim i skriva pravi račun: ona odabire privatnu krajnju točku i za naredbe koje nemaju veze sa zadatkom. Čitajte svaki redak kao ograničenje, a ne kao sklonost. Ako se krajnja točka mijenja po zadatku, prefiks pobjeđuje u preciznosti iako košta jedan pritisak tipke.
Zašto hook ne može dosegnuti već otvorenu ljusku
Varijable okruženja predaju se procesu kad se stvara slika procesa. Ljuska koja je počela prije veze zadržava primjerak koji je primila, a izvoz izvršen unutar hooka nije emitiranje svakom procesu na stroju. Nasljeđuju ga samo hookova vlastita djeca. Djeca same ljuske uzimaju ono što ljuska drži u trenutku njihova pokretanja, i zato ista naredba može raditi u jednom terminalu, a u drugom ne.
Isto vrijedi i za grafički uređivač. Njegov host za proširenja, ugrađeni terminal i pozadinski jezični poslužitelj odvojeni su pri pokretanju i drže vlastite primjerke. Ponovno otvaranje mape ne pokreće nužno tu djecu iznova, pa postavka koju ste dodali ipak nikad ne stigne.
Najjeftiniji je test ispisati varijablu s mjesta koje zakaže, a ne iz ljuske koja radi. Ako je proces koji zakaže počeo prije tunela, izvoz nikada nije imao priliku.
Oblik za pojedinu naredbu, ispisan
Prefiks drži izbor vidljivim u naredbi koja ga koristi, što pomaže kad se krajnja točka mijenja između zadataka:
env INTERNAL_API='https://internal-api.example.net:8443' my-work-tool
Naredba je samo primjer: my-work-tool je zamjenski naziv, a INTERNAL_API nije VPN standard, pa umetnite dokumentiranu postavku programa koji doista pokrećete i svoj odobreni host. Ne stavljajte token ni lozinku u isti redak, jer završavaju u povijesti ljuske.
Kad više naredbi pripada jednom zadatku, kratka pregledana omotna skripta postavlja varijable i zatim ih pokreće. Time ostaje jedna definicija, a vrijednost ne postaje globalna za svaku buduću naredbu u terminalu.
Ponovno učitajte, ponovno pokrenite ili ostavite kako jest
Za alat koji već radi, radije upotrijebite njegovo vlastito ponovno učitavanje ili profil radnog prostora ako ga ima. Inače spremite rad i ponovno pokrenite komponentu koja čita postavku, a to je često jezični poslužitelj, ne prozor uređivača. Ponovno pokretanje prozora uz pretpostavku da su djeca krenula za njim jest ono zbog čega ponovno učitavanje izgleda kao da ne radi.
Prekid veze je zasebna odluka. Pauziranje, zatvaranje ili ponovno povezivanje pripada aplikaciji, a varijabla krajnje točke to ne kontrolira. Tretirajte varijablu kao konfiguraciju koja odabire adresu, a ne kao pravilo o tome koji se mrežni promet smije koristiti poslije, i te dvije stvari ostaju razdvojive.