VPN-tööriista seaded: käivitusaegne keskkond või eksport konksus?
Konks käivitab oma lapsed, mitte kesta, mille te juba avasite. Käivitusaegne keskkond hoiab privaatset lõpp-punkti ainult selles ühes käsus, mis seda vajab.
VPN-konks, mis ekspordib API lõpp-punkti, muudab käivitatavate protsesside keskkonda, mitte terminali oma, mis oli juba avatud, kui tunnel tõusis. See üks erinevus seletab enamikku teateid „tööriist kutsub endiselt avalikku lõpp-punkti“. Seade paigutamiseks on kaks töötavat kohta ja valik sõltub sellest, kes seda tarbib ja kui sageli see muutub. Võrrelge neid enne, kui lisate veel ühe käivituskripti.
Kaks kohta, kus seade saab elada
Esimene võimalus on eesliide käsu enda ees: väärtus on ainult selle ühe kutse jaoks ja kaob koos sellega. Teine võimalus on eksport ühenduse konksu sees, mis jõuab igasse protsessi, mille konks pärast seda punkti käivitab. Need erinevad ulatuse ja eluea poolest, mitte süntaksi poolest, ja see erinevus otsustab enamiku ebaõnnestumiste üle.
| 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 |
Tabel teeb konksu odava mulje ja varjab tegeliku arve: see valib privaatse lõpp-punkti ka käskudele, millel pole ülesandega mingit pistmist. Lugege iga rida piiranguna, mitte eelistusena. Kui lõpp-punkt muutub ülesande kaupa, võidab eesliide täpsuses, kuigi maksab ühe klahvivajutuse.
Miks konks ei jõua juba avatud kestani
Keskkonnamuutujad antakse protsessile protsessipildi loomisel. Kest, mis käivitus enne ühendust, hoiab saadud koopiat, ja konksu sees täidetav eksport ei ole saade igale masina protsessile. Selle pärivad ainult konksu enda lapsed. Kesta enda lapsed võtavad selle, mida kest nende käivitamise hetkel hoiab, ja seetõttu võib sama käsk ühes terminalis töötada ja teises ebaõnnestuda.
Sama kehtib graafilise redaktori kohta. Selle laienduste host, sisseehitatud terminal ja taustal töötav keeleserver hargnesid käivitamisel ja hoiavad oma koopiaid. Kausta uuesti avamine ei taaskäivita tingimata neid lapsi, nii et lisatud seade ei jõua ikkagi kunagi kohale.
Odavaim test on välja printida muutuja sellest kohast, mis ebaõnnestub, mitte kestast, mis töötab. Kui ebaõnnestuv protsess käivitus enne tunnelit, ei olnud ekspordil üldse võimalust.
Käsu kaupa vorm, välja kirjutatud
Eesliide hoiab valiku nähtavana käsu sees, mis seda kasutab, mis aitab siis, kui lõpp-punkt muutub ülesannete vahel:
env INTERNAL_API='https://internal-api.example.net:8443' my-work-tool
Käsk on näitlik: my-work-tool on kohatäide ja INTERNAL_API ei ole VPN standard, seega asendage see programmi dokumenteeritud seadega, mida te tegelikult käivitate, ja oma kinnitatud hostiga. Ärge pange tokenit ega parooli samale reale, sest see satub kesta ajalukku.
Kui mitu käsku kuuluvad ühele ülesandele, määrab lühike üle vaadatud mähiskript muutujad ja käivitab need seejärel. Nii jääb üksainus määratlus ega muutu väärtus globaalseks igale tulevasele käsule terminalis.
Laadige uuesti, taaskäivitage või jätke puutumata
Tööriista puhul, mis juba töötab, eelistage selle enda uuestilaadimist või tööruumi profiili, kui see olemas on. Vastasel juhul salvestage töö ja taaskäivitage komponent, mis seadet loeb, milleks on sageli keeleserver, mitte redaktori aken. Akna taaskäivitamine ja eeldamine, et lapsprotsessid järgnesid, ongi põhjus, miks uuestilaadimine näib mitte töötavat.
Ühenduse katkestamine on eraldi otsus. Paus, sulgemine või uuesti ühendamine kuulub rakendusele ja lõpp-punkti muutuja ei juhi seda. Käsitlege muutujat konfiguratsioonina, mis valib aadressi, mitte reeglina selle kohta, millist võrguliiklust tohib hiljem kasutada, ja need kaks küsimust jäävad eraldatavaks.