Hook VPN tí ń tẹ̀jáde àkópọ̀ ìparí API ń yí àyíká àwọn ìlànà tí ó bẹ̀rẹ̀ padà, kì í ṣe ti terminal tí ó ti ṣí nígbà tí tunnel gòkè. Ìyàtọ̀ kan ṣoṣo yìí ni ó ṣàlàyé ọ̀pọ̀lọpọ̀ ìròyìn «irinṣẹ́ náà ṣì ń pe àkópọ̀ ìparí gbogbogbò». Àwọn ibi méjì wà tí ó lè gbé ètò náà, yàn án sì dá lórí ẹni tí ó ń lò ó àti ìgbà tí ó ń yí padà. Fi wọ́n wé ara wọn kí o tó fi script ìbẹ̀rẹ̀ mìíràn kún.

Àwọn ibi méjì tí ètò náà lè gbé

Àkọ́kọ́ ni àfikún kan lórí pàtó náà fúnra rẹ̀: iye náà wà fún ìpè yẹn nìkan, ó sì pòórá pẹ̀lú rẹ̀. Èkejì ni ìtẹ̀jáde nínú hook ìsopọ̀, tí ó dé ọ̀dọ̀ gbogbo ìlànà tí hook bẹ̀rẹ̀ lẹ́yìn ibi yẹn. Wọ́n yàtọ̀ ní ìgbòkègbodò àti àkókò ìwàláàyè, kì í ṣe ní ìṣàkóso ọ̀rọ̀, ìyàtọ̀ yẹn sì ń pinnu ọ̀pọ̀lọpọ̀ ìkùnà.

PropertyPrefix on the commandExport from the hook
Who receives itThat invocation onlyChildren the hook starts
LifetimeUntil the process exitsUntil the hook's own session ends
LeakageScoped to one commandApplies to later commands in that session
Repeat costEvery invocationOnce per connection
Works for an open editorNo, unless the editor is started with itNo

Tábìlì náà jẹ́ kí hook dà bí ẹni pọ́n, ó sì fi owó gidi pamọ́: ó tún yan àkópọ̀ ìparí àdáni fún àwọn pàtó tí kò ní í ṣe pẹ̀lú iṣẹ́ náà. Ka gbogbo ìlà gẹ́gẹ́ bí ààlà, kì í ṣe gẹ́gẹ́ bí ìfẹ́. Bí àkópọ̀ ìparí bá ń yí padà fún iṣẹ́ kọ̀ọ̀kan, àfikún náà ṣẹ́gun ní ìpéye kódà bí ó bá gba títẹ̀ bọ́tìnì kan.

Ìdí tí hook kò fi lè dé shell tí ó ti ṣí

Àwọn oníbàárà àyíká ni a ń fi fún ìlànà nígbà tí a bá ṣẹ̀dá àwòrán ìlànà. Shell tí ó bẹ̀rẹ̀ kí ìsopọ̀ tó dé ń pa ẹ̀dà tí ó gbà mọ́, ìtẹ̀jáde tí a ṣe nínú hook kì í sì ṣe ìgbóhùnsáfẹ́fẹ́ sí gbogbo ìlànà lórí ẹ̀rọ náà. Àwọn ọmọ hook fúnra rẹ̀ nìkan ni ó jogún rẹ̀. Àwọn ọmọ shell fúnra wọn gba ohun tí shell ní ní àkókò tí wọ́n bẹ̀rẹ̀, ìdí niyẹn tí pàtó kan náà lè ṣiṣẹ́ ní terminal kan tí ó sì kùnà ní òmíràn.

Bẹ́ẹ̀ ni ó rí fún olóòtú àwòrán pẹ̀lú. Ojú-ìkójú àfikún rẹ̀, terminal inú rẹ̀ àti server èdè ẹ̀yìn rẹ̀ pín nígbà ìbẹ̀rẹ̀, wọ́n sì ní ẹ̀dà wọn fúnra wọn. Ṣíṣí folda lẹ́ẹ̀kan sí i kì í sábà dá àwọn ọmọ yẹn padà, nítorí náà ètò tí o fi kún kò dé rárá.

Ìdánwò tí ó pọ́n jùlọ ni láti tẹ̀wé oníbàárà náà jáde láti ibi tí ó kùnà, kì í ṣe láti shell tí ń ṣiṣẹ́. Bí ìlànà tí ó kùnà bá bẹ̀rẹ̀ kí tunnel tó dé, ìtẹ̀jáde náà kò ní àǹfààní kankan.

Ìrísí fún pàtó kọ̀ọ̀kan, tí a kọ sílẹ̀

Àfikún ń jẹ́ kí yíyàn náà hàn nínú pàtó tí ó ń lò ó, èyí sì ṣèrànwọ́ nígbà tí àkópọ̀ ìparí bá ń yí padà láàrín àwọn iṣẹ́:

env INTERNAL_API='https://internal-api.example.net:8443' my-work-tool

Pàtó náà jẹ́ àpẹẹrẹ nìkan: my-work-tool jẹ́ ibi ìdúró àti INTERNAL_API kì í ṣe ìlànà VPN, nítorí náà fi ètò tí a kọ sílẹ̀ ti ètò tí o ń ṣiṣẹ́ gidi àti olùgbàlejò tí o fọwọ́ sí kún un. Má ṣe fi token tàbí ọ̀rọ̀ ìkọ̀kọ̀ sí ìlà kan náà, nítorí ó ń lọ sínú ìtàn shell.

Nígbà tí ọ̀pọ̀lọpọ̀ pàtó bá jẹ́ ti iṣẹ́ kan, script ìdìpọ̀ kúkúrú tí a ti yẹ̀wò yóò fi àwọn oníbàárà sílẹ̀, yóò sì bẹ̀rẹ̀ wọ́n. Èyí ń pa ìtumọ̀ kan mọ́ láìjẹ́ kí iye náà di ti gbogbo pàtó ọjọ́ iwájú nínú terminal.

Tún gbé e, tún bẹ̀rẹ̀, tàbí fi í sílẹ̀

Fún irinṣẹ́ tí ó ti ń ṣiṣẹ́, yan ìgbé padà tàbí profáìlì ibi iṣẹ́ rẹ̀ fúnra rẹ̀ bí ó bá ní. Bí bẹ́ẹ̀ kọ́, tọ́jú iṣẹ́ náà kí o sì tún bẹ̀rẹ̀ ẹ̀yà tí ó ń ka ètò náà, èyí sábà jẹ́ server èdè kì í ṣe fèrèsé olóòtú. Tún bẹ̀rẹ̀ fèrèsé náà kí o sì rò pé àwọn ọmọ ìlànà tẹ̀lé e ni ìdí tí ìgbé padà fi dà bí ẹni kò ṣiṣẹ́.

Ìpínyà ìsopọ̀ jẹ́ àwọn ìpinnu ọ̀tọ̀ọ̀tọ̀. Dídúró díẹ̀, pípa tàbí àtúnṣopọ̀ jẹ́ ti ohun èlò náà, oníbàárà àkópọ̀ ìparí kò sì ṣàkóso rẹ̀. Wo oníbàárà náà gẹ́gẹ́ bí ìṣètò tí ó ń yan àdírẹ́sì, kì í ṣe gẹ́gẹ́ bí òfin nípa irú ìrìn àjò nẹ́tíwọ́kì tí a lè lò lẹ́yìn náà, àwọn ọ̀ràn méjèèjì sì wà lọ́tọ̀ọ̀tọ̀.

Àwọn àpilẹ̀kọ tó jọra