दुवै आदेशले स्थानीय सेवालाई 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 ले तपाईंले चलाउने कुनै कुरामा को पुग्न सक्छ भन्ने जवाफ दिन्छन्, जबकि निकास नोडले तपाईंका आफ्नै जडानहरू कहाँबाट आएजस्तो देखिन्छ भन्ने जवाफ दिन्छ। दुवै प्रश्न अलग राख्नुहोस् र तुलना सरल रहन्छ।

सम्बन्धित लेखहरू