VPN साधनाची सेटिंग्ज: लॉन्चच्या वेळचे पर्यावरण की हुकमधील एक्सपोर्ट?
हुक स्वतःच्या चाइल्ड प्रोसेस सुरू करतो, तुम्ही आधीच उघडलेले शेल नाही. लॉन्चच्या वेळचे पर्यावरण खाजगी एंडपॉइंट फक्त त्या एका कमांडवर ठेवते जिला त्याची गरज आहे.
API एंडपॉइंट एक्सपोर्ट करणारा VPN हुक त्याने सुरू केलेल्या प्रोसेसचे पर्यावरण बदलतो, टनेल वर आल्यावर आधीच उघडे असलेल्या टर्मिनलचे नाही। हाच एक फरक «साधन अजूनही सार्वजनिक एंडपॉइंटला कॉल करत आहे» अशा बहुतेक अहवालांचे स्पष्टीकरण देतो। सेटिंग ठेवण्यासाठी दोन व्यवहार्य जागा आहेत, आणि निवड ते कोण वापरते व किती वेळा बदलते यावर अवलंबून आहे। अजून एक स्टार्टअप स्क्रिप्ट जोडण्यापूर्वी दोन्हींची तुलना करा।
सेटिंग राहू शकते अशा दोन जागा
पहिला पर्याय कमांडवरच असलेला प्रीफिक्स आहे: मूल्य फक्त त्या एका कॉलसाठी असते आणि त्यासोबत नाहीसे होते। दुसरा पर्याय कनेक्शन हुकच्या आतला एक्सपोर्ट आहे, जो त्या क्षणानंतर हुक सुरू करणाऱ्या प्रत्येक प्रोसेसपर्यंत पोहोचतो। ते व्याप्ती आणि आयुष्यात वेगळे आहेत, सिंटॅक्समध्ये नाही, आणि हाच फरक बहुतेक अपयशे ठरवतो।
| 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 मानक नाही, म्हणून तुम्ही प्रत्यक्ष चालवता त्या प्रोग्रामची दस्तऐवजीकृत सेटिंग आणि तुमचा मंजूर होस्ट टाका। एकाच ओळीत टोकन किंवा पासवर्ड ठेवू नका, कारण ते शेलच्या इतिहासात जाते।
जेव्हा अनेक कमांड एकाच कामाच्या असतात, तेव्हा छोटी पुनरावलोकित रॅपर स्क्रिप्ट चल सेट करते आणि नंतर त्या सुरू करते। यामुळे एकच व्याख्या राहते, मूल्य टर्मिनलमधील प्रत्येक भावी कमांडसाठी जागतिक होत नाही।
पुन्हा लोड करा, पुन्हा सुरू करा किंवा तसेच राहू द्या
आधीच चालू असलेल्या साधनासाठी, असल्यास त्याचे स्वतःचे पुनर्लोड किंवा कार्यक्षेत्र प्रोफाइल पसंत करा। नाहीतर काम जतन करा आणि सेटिंग वाचणारा घटक पुन्हा सुरू करा, जो बहुतेक वेळा भाषा सर्व्हर असतो, एडिटरची विंडो नाही। विंडो पुन्हा सुरू करून चाइल्ड प्रोसेस तिच्यामागे आल्या असे गृहीत धरणे हेच पुनर्लोड काम करत नसल्यासारखे दिसण्याचे कारण आहे।
डिस्कनेक्शन हा वेगळा निर्णय आहे। थांबवणे, बंद करणे किंवा पुन्हा जोडणे हे अनुप्रयोगाचे आहे, आणि एंडपॉइंट चल ते नियंत्रित करत नाही। चलाला पत्ता निवडणारी संरचना माना, नंतर कोणता नेटवर्क रहदारी वापरता येईल याचा नियम नाही, आणि दोन्ही बाबी वेगळ्या राहतात।