Поставки на VPN алатката: околина при стартување или извоз во куката?
Куката стартува свои сопствени деца, не лушпата што веќе сте ја отвориле. Околината при стартување ја држи приватната крајна точка само во таа една наредба што ѝ е потребна.
VPN кука што извезува крајна точка на API ја менува околината на процесите што ги стартува, не на терминалот што веќе бил отворен кога тунелот се крена. Токму оваа една разлика објаснува повеќето извештаи „алатката сѐ уште го повикува јавната крајна точка“. Постојат две употребливи места за поставката, а изборот зависи од тоа кој ја троши и колку често се менува. Споредете ги пред да додадете уште една скрипта за стартување.
Две места каде поставката може да живее
Првата опција е префикс на самата наредба: вредноста постои само за тој еден повик и исчезнува со него. Втората опција е извоз внатре во куката за поврзување, што допира до секој процес што куката го стартува по таа точка. Тие се разликуваат по опфат и животен век, не по синтакса, и таа разлика решава повеќето неуспеси.
| 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 |
Табелата ја прави куката да изгледа евтина и ја крие вистинската сметка: таа избира приватна крајна точка и за наредби што немаат никаква врска со задачата. Читајте го секој ред како ограничување, а не како претпочитање. Ако крајната точка се менува по задача, префиксот победува во прецизноста, иако чини едно притискање на копче.
Зошто куката не може да допре до веќе отворена лушпа
Променливите на околината му се предаваат на процесот кога се создава сликата на процесот. Лушпа што започнала пред врската ја задржува копијата што ја добила, а извозот извршен внатре во куката не е емитување до секој процес на машината. Ја наследуваат само сопствените деца на куката. Сопствените деца на лушпата го земаат она што лушпата го држи во моментот на нивното стартување, и затоа истата наредба може да работи во еден терминал, а да не успее во друг.
Истото важи и за графички уредувач. Неговиот домаќин за проширувања, вградениот терминал и позадинскиот јазичен сервер се раздвоиле при стартувањето и држат свои копии. Повторното отворање на папка не ги рестартира нужно тие деца, така што додадената поставка сѐ уште никогаш не пристигнува.
Најевтиниот тест е да ја испечатите променливата од местото што не успева, а не од лушпата што работи. Ако процесот што не успева започнал пред тунелот, извозот немал никаква шанса.
Формата по наредба, изпишана
Префиксот ја држи изборот видлив во наредбата што го користи, што помага кога крајната точка се менува меѓу задачите:
env INTERNAL_API='https://internal-api.example.net:8443' my-work-tool
Наредбата е само илустративна: my-work-tool е заменка, а INTERNAL_API не е VPN стандард, затоа ставете ја документираната поставка на програмата што навистина ја извршувате и вашиот одобрен домаќин. Не ставајте токен или лозинка во истиот ред, зашто тие завршуваат во историјата на лушпата.
Кога неколку наредби припаѓаат на една задача, кратка прегледана скрипта-обвивка ги поставува променливите и потоа ги стартува. Така останува една дефиниција, без вредноста да стане глобална за секоја идна наредба во терминалот.
Вчитајте повторно, рестартирајте или оставете го
За алатка што веќе работи, дајте предност на нејзиното сопствено вчитување или профил на работниот простор, кога го има. Инаку зачувајте ја работата и рестартирајте ја компонентата што ја чита поставката, а тоа често е јазичен сервер, не прозорецот на уредувачот. Рестартирањето на прозорецот со претпоставка дека децата процеси го следеа е токму причината зошто повторното вчитување изгледа како да не работи.
Прекинот е одделна одлука. Паузирање, затворање или повторно поврзување му припаѓа на прилогот, а променливата на крајната точка не го контролира тоа. Третирајте ја променливата како конфигурација што избира адреса, а не како правило за тоа кој мрежен сообраќај смее да се користи потоа, и двете работи остануваат раздвоени.