Екі команда да жергілікті қызметті 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 сіз іске қосатын нәрсеге кім жете алатынын жауаптайды, ал шығыс түйіні өз қосылымдарыңыздың қайдан келетін сияқты көрінетінін жауаптайды. Екі сұрақты бөлек ұстаңыз, сонда салыстыру қарапайым болып қалады.

Қатысты мақалалар