Cilësimet e mjetit VPN: mjedisi në kohën e nisjes apo eksport brenda grepit?
Një grep nis fëmijët e vet, jo shell-in që keni hapur tashmë. Një mjedis në kohën e nisjes e mban pikën fundore private vetëm në atë komandën e vetme që ka nevojë për të.
Një grep VPN që eksporton një pikë fundore API ndryshon mjedisin e proceseve që nis, jo atë të terminalit që ishte tashmë i hapur kur u ngrit tuneli. Pikërisht ky dallim i vetëm shpjegon shumicën e raporteve «mjeti vazhdon të thërrasë pikën fundore publike». Ka dy vende të zbatueshme për cilësimin, dhe zgjedhja varet nga kush e konsumon dhe sa shpesh ndryshon. Krahasoni të dyja përpara se të shtoni një skript tjetër nisjeje.
Dy vende ku cilësimi mund të jetojë
Opsioni i parë është një parashtesë mbi vetë komandën: vlera ekziston vetëm për atë thirrje të vetme dhe zhduket me të. Opsioni i dytë është një eksport brenda grepit të lidhjes, i cili arrin në çdo proces që grepi nis pas atij pike. Ata ndryshojnë në shtrirje dhe jetëgjatësi, jo në sintaksë, dhe ky dallim vendos shumicën e dështimeve.
| 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 |
Tabela e bën grepin të duket i lirë dhe fsheh faturën e vërtetë: zgjedh një pikë fundore private edhe për komanda që nuk kanë asgjë të bëjnë me detyrën. Lexoni çdo rresht si kufizim, jo si preferencë. Nëse pika fundore ndryshon sipas detyrës, parashtesa fiton në saktësi edhe pse kushton një shtypje taste.
Pse grepi nuk mund të arrijë në një shell tashmë të hapur
Variablat e mjedisit i dorëzohen një procesi kur krijohet imazhi i procesit. Një shell që nisi përpara lidhjes mban kopjen që mori, dhe një eksport i ekzekutuar brenda grepit nuk është një transmetim drejt çdo procesi në makinë. Vetëm fëmijët e grepit e trashëgojnë atë. Fëmijët e një shell-i marrin atë që shell-i mban në çastin kur nisin, dhe prandaj e njëjta komandë mund të funksionojë në një terminal dhe të dështojë në një tjetër.
E njëjta gjë vlen për një redaktor grafik. Prindi i shtesave, terminali i integruar dhe serveri i gjuhës në sfond u degëzuan në nisje dhe mbajnë kopjet e tyre. Rihapja e një dosjeje nuk i rinis domosdoshmërisht ata fëmijë, kështu që cilësimi që shtuat nuk arrin kurrë.
Testi më i lirë është të shtypni variablin nga vendi që dështon, jo nga shell-i që funksionon. Nëse procesi që dështon nisi përpara tunelit, eksporti nuk pati kurrë mundësi.
Forma për çdo komandë, e shkruar
Një parashtesë e mban zgjedhjen të dukshme në komandën që e përdor, gjë që ndihmon kur pika fundore ndryshon mes detyrave:
env INTERNAL_API='https://internal-api.example.net:8443' my-work-tool
Komanda është vetëm ilustruese: my-work-tool është një mbajtës vendi dhe INTERNAL_API nuk është standard VPN, ndaj zëvendësojeni me cilësimin e dokumentuar të programit që ekzekutoni vërtet dhe me pritësin tuaj të miratuar. Mos vendosni një shenjë ose fjalëkalim në të njëjtin rresht, sepse përfundon në historikun e shell-it.
Kur disa komanda i përkasin një detyre, një skript i shkurtër mbështjellës i rishikuar vendos variablat dhe pastaj i nis ato. Kështu mbetet një përkufizim i vetëm, pa e bërë vlerën globale për çdo komandë të ardhshme në terminal.
Ringarkoni, rinisni ose lëreni
Për një mjet që tashmë është duke punuar, preferoni ringarkimin ose profilin e hapësirës së punës të vetë atij, kur i ka. Përndryshe ruani punën dhe rinisni komponentin që lexon cilësimin, i cili shpesh është një server gjuhe dhe jo dritarja e redaktorit. Rinisja e dritares duke supozuar se proceset fëmijë e ndoqën është pikërisht arsyeja pse një ringarkim duket se nuk funksionon.
Shkëputja është një vendim i veçantë. Pauzimi, mbyllja ose rilidhja i përkasin aplikacionit, dhe variabli i pikës fundore nuk e kontrollon atë. Trajtojeni variablin si konfigurim që zgjedh një adresë, jo si rregull për atë se çfarë trafiku rrjeti mund të përdoret më pas, dhe të dyja çështjet mbeten të ndashme.