दोन्ही आदेश स्थानिक सेवा Tailscale HTTPS नावाने प्रकाशित करतात, आणि ज्या मशीनवर ते चालतात तिथून ते जवळजवळ सारखेच दिसतात। फरक हा आहे की नंतर URL पर्यंत कोण पोहोचू शकते, आणि हाच फरक तुमच्या अनुप्रयोगाला अजून कोणती नियंत्रणे हवी आहेत हे ठरवतो। Serve प्रेक्षक tailnet च्या आत ठेवते, तर Funnel त्यांना खुल्या इंटरनेटवर नेते। आधी प्रेक्षक निवडा, मग त्याला जुळणारा आदेश निवडा।

Serve तुमच्या tailnet मधील प्रश्नाचे उत्तर देते

Serve स्थानिक पोर्ट प्रॉक्सी करते किंवा तुमच्या tailnet मधील उपकरणांना स्थानिक सामग्री देते, आणि tailnet चे प्रवेश नियम प्रत्येक विनंतीला अजूनही लागू असतात। पोर्ट 3000 वरील डॅशबोर्ड केवळ तुमची उपकरणे सोडवू आणि जोडू शकतील अशा HTTPS नावावर पोहोचण्यायोग्य होते। अंतर्गत साधनांसाठी हा योग्य डीफॉल्ट आहे, कारण प्रेक्षक आधीच tailnet द्वारे प्रमाणित आहेत आणि तुम्ही कोणताही सार्वजनिक पृष्ठभाग जोडत नाही। URL सामान्य वेबसाइटसारखा दिसतो, आणि म्हणूनच लोक त्याला तसाच समजतात।

Serve ते पुढे पाठवणाऱ्या विनंत्यांना tailnet वापरकर्त्याचे वर्णन करणारे ओळख हेडरही जोडू शकते। तुमचा अनुप्रयोग त्या हेडरवर प्रमाणीकरण म्हणून विश्वास ठेवत असेल, तर बॅकएंड localhost ला बांधा, जेणेकरून दुसरे काहीही त्याला थेट पोहोचू शकणार नाही; मार्गनिर्देशित करण्यायोग्य पत्त्यावर ऐकणारा बॅकएंड प्रॉक्सीतून कधीही न गेलेल्या विनंत्या घेऊ शकतो।

Funnel प्रेक्षकांना खुल्या इंटरनेटमध्ये बदलते

Funnel निवडलेली सेवा URL असलेल्या प्रत्येकासाठी प्रकाशित करते, आणि अभ्यागतांना क्लायंट, खाते किंवा तुमच्या tailnet मधील सदस्यत्वाची गरज नसते। त्यामुळे संसाधनाला कोणत्याही सार्वजनिक सेवेवर लागू करता ते प्रमाणीकरण, दर मर्यादा आणि पॅच आवश्यक असतात। सार्वजनिक विनंत्या Serve चे tailnet ओळख हेडर घेऊन जात नाहीत, त्यामुळे त्यांच्यावर अवलंबून असलेल्या अनुप्रयोगाकडे Funnel अंतर्गत वापरकर्ता ओळखच नसते। वेगळा प्रकाशन आदेश निवडल्याने प्रमाणीकरणाचा प्रश्न तुमच्याऐवजी सुटत नाही।

Funnel ला अशा मर्यादाही आहेत ज्यांचा जुन्या आवृत्तीचा ट्युटोरियल उल्लेख करणार नाही। ते नावासाठी Tailscale घेत असलेल्या प्रमाणपत्राने TLS संपवते, आणि केवळ विशिष्ट ऐकण्याचे पोर्ट समर्थित करते, जसे Funnel दस्तऐवजीकरण वर्णन करते। तुमची सेवा त्या पोर्टपैकी एकावर HTTPS व्यतिरिक्त प्रोटोकॉल अपेक्षित असेल, तर Funnel कॉन्फिगरेशनचे कोडे नसून चुकीचे साधन आहे।

मोड पोर्टवरून नव्हे, क्लायंटवरून वाचा

काहीही सामायिक करण्यापूर्वी सध्याची स्थिती तपासा, कारण दोन्ही मोड एकाच स्थानिक पोर्टसाठी वेगवेगळ्या वेळी कॉन्फिगर केले जाऊ शकतात। स्थिती आदेश प्रत्यक्षात काय प्रकाशित झाले आणि कोणासाठी हे सांगतात। URL प्रतिसाद देतो या वस्तुस्थितीवरून प्रेक्षकांचा अंदाज लावू नका।

tailscale serve status
tailscale funnel status
tailscale status --json | head -40

क्लायंट आवृत्त्यांमध्ये आदेशाची वाक्यरचना बदलली आहे, त्यामुळे कॉपी केलेले कॉल तुम्ही हेतू ठेवलेल्यापेक्षा वेगळा मोड निवडू शकते। तुम्ही चालवत असलेल्या आवृत्तीसाठी दस्तऐवजीकृत स्वरूपाला प्राधान्य द्या, आणि गृहीत धरण्याऐवजी क्लायंट छापत असलेली पुष्टी वाचा। Serve आणि Funnel दोन्हीचे कॉन्फिगरेशन असल्यास, उघडीकरणासाठी महत्त्वाचे सार्वजनिक असते। तुम्हाला नको असलेले कॉन्फिगरेशन त्यावर दुसरे चढवण्याऐवजी रीसेट करा।

आउटपुट प्रेक्षकांचे नाव घेत नसेल तर थांबा आणि स्थिती पुन्हा वाचा। जाहीर केलेल्या प्रेक्षकांशिवाय प्रकाशित URL हा अंदाज असतो, आणि अंदाज हाच अंतर्गत डॅशबोर्ड खुल्या इंटरनेटवर पोहोचण्याचा मार्ग आहे।

तुम्ही खरोखर हेतू ठेवलेल्या प्रेक्षकांसह चाचणी करा

सेवा प्रकाशित करणाऱ्या मशीनवरून नव्हे, तर tailnet बाहेरून चाचणी करा। tailnet उपकरणाकडून आलेली विनंती प्रॉक्सी काम करत असल्याचे सिद्ध करते, पण बाहेरचा माणूस वगळला आहे हे सिद्ध करत नाही। Tailscale क्लायंट नसलेले आणि tailnet मध्ये मार्ग नसलेले नेटवर्क वापरा।

curl -sI https://host.tailnet-name.ts.net
curl -sI https://host.tailnet-name.ts.net --resolve host.tailnet-name.ts.net:443:203.0.113.10

अंतर्गत डॅशबोर्डसाठी बाहेरील विनंती जोडणीत अयशस्वी व्हायला हवी किंवा अधिकृततेत अयशस्वी व्हायला हवी, आणि आतील विनंती तुम्ही अपेक्षित असलेल्या ओळखीसह यशस्वी व्हायला हवी। सार्वजनिक सेवेसाठी बाहेरील विनंती यशस्वी व्हायला हवी आणि अनुप्रयोगाने स्वतःची क्रेडेन्शियल्स मागितली पाहिजेत। या दोन निकालांपैकी कोणता तुम्ही पाहिला ते नोंदवा, कारण केवळ URL हे सांगत नाही। निकाल हेतूच्या विरुद्ध असेल, तर आधी सार्वजनिक कॉन्फिगरेशन काढा आणि नंतर तपासणी करा।

सेवा प्रकाशित करणे हे तुमचा बाहेर जाणारा रहदारी कुठून बाहेर पडतो हे नियंत्रित करणाऱ्या निर्गम नोडची निवड करण्यासारखेच निर्णय नाही। Serve आणि Funnel तुम्ही चालवता त्या गोष्टीपर्यंत कोण पोहोचू शकतो याचे उत्तर देतात, तर निर्गम नोड तुमची स्वतःची जोडणी कुठून येत असल्याचे दिसते याचे उत्तर देतो। दोन्ही प्रश्न वेगळे ठेवा आणि तुलना सोपी राहते।

संबंधित लेख