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 మీరు నడిపే దానిని ఎవరు చేరుకోగలరు అని సమాధానం ఇస్తాయి, నిష్క్రమణ నోడ్ మీ స్వంత కనెక్షన్లు ఎక్కడ నుండి వస్తున్నట్లు కనిపిస్తాయో సమాధానం ఇస్తుంది. రెండు ప్రశ్నలను వేరుగా ఉంచండి, పోలిక సులభంగానే ఉంటుంది.