Tailscale Serve அல்லது Funnel: இணைப்பை உண்மையில் யார் திறக்க முடியும்?
Serve சேவையை உங்கள் tailnet-உடன் பகிர்கிறது, Funnel அதை திறந்த இணையத்திற்கு வெளிப்படுத்துகிறது. பார்வையாளர்கள், அடையாள தலைப்புகள் மற்றும் Funnel அனுமதிக்கும் துறைமுகங்களை ஒப்பிடுங்கள்.
இரண்டு கட்டளைகளும் ஒரு உள்ளூர் சேவையை Tailscale HTTPS பெயர் மூலம் வெளியிடுகின்றன, அவற்றை இயக்கும் இயந்திரத்திலிருந்து அவை கிட்டத்தட்ட ஒரே மாதிரியாகத் தெரிகின்றன. வேறுபாடு என்னவென்றால், பின்னர் URL-ஐ யார் அடைய முடியும் என்பதுதான், அந்த வேறுபாடே உங்கள் பயன்பாட்டிற்கு இன்னும் எந்தக் கட்டுப்பாடுகள் தேவை என்பதைத் தீர்மானிக்கிறது. Serve பார்வையாளர்களை tailnet-க்குள் வைத்திருக்கிறது, Funnel அவர்களை திறந்த இணையத்திற்கு நகர்த்துகிறது. முதலில் பார்வையாளர்களைத் தேர்ந்தெடுக்கவும், பின்னர் அவர்களுடன் பொருந்தும் கட்டளையைத் தேர்ந்தெடுக்கவும்.
Serve உங்கள் tailnet-க்குள் ஒரு கேள்விக்கு பதிலளிக்கிறது
Serve ஒரு உள்ளூர் துறைமுகத்தை ப்ராக்ஸி செய்கிறது அல்லது உங்கள் tailnet-இல் உள்ள சாதனங்களுக்கு உள்ளூர் உள்ளடக்கத்தை வழங்குகிறது, tailnet-இன் அணுகல் விதிகள் ஒவ்வொரு கோரிக்கைக்கும் இன்னும் பொருந்தும். துறைமுகம் 3000-இல் உள்ள டாஷ்போர்டு உங்கள் சாதனங்கள் மட்டுமே தீர்த்து இணைக்கக்கூடிய HTTPS பெயரில் அணுகக்கூடியதாகிறது. உள் கருவிகளுக்கு இதுவே சரியான இயல்புநிலை, ஏனெனில் பார்வையாளர்கள் ஏற்கனவே tailnet-ஆல் அங்கீகரிக்கப்பட்டுள்ளனர், நீங்கள் பொது மேற்பரப்பைச் சேர்க்கவில்லை. URL ஒரு சாதாரண வலைத்தளம் போலத் தெரிகிறது, அதனால்தான் மக்கள் அதை அப்படியே கருதுகிறார்கள்.
Serve தான் அனுப்பும் கோரிக்கைகளுடன் tailnet பயனரை விவரிக்கும் அடையாள தலைப்புகளையும் இணைக்க முடியும். உங்கள் பயன்பாடு அந்தத் தலைப்புகளை அங்கீகாரமாக நம்பினால், backend-ஐ localhost-உடன் பிணைக்கவும், வேறு எதுவும் அதை நேரடியாக அடைய முடியாது; வழியமைக்கக்கூடிய முகவரியில் கேட்கும் backend, ப்ராக்ஸி வழியாக ஒருபோதும் செல்லாத கோரிக்கைகளைப் பெறலாம்.
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 நீங்கள் இயக்கும் ஒன்றை யார் அடைய முடியும் என்பதற்குப் பதிலளிக்கின்றன, வெளியேறும் முனை உங்கள் சொந்த இணைப்புகள் எங்கிருந்து வருவது போலத் தெரிகிறது என்பதற்குப் பதிலளிக்கிறது. இரண்டு கேள்விகளையும் தனித்தனியாக வைத்திருங்கள், ஒப்பீடு எளிமையாகவே இருக்கும்.