Я часто надаю віддалену технічну підтримку, але деяким клієнтам важко знайти меню «Пуск» у гарний день. Занадто складно сказати їм увійти в обліковий запис VPN, щоб дозволити мені вирішити проблему. Я знайшов спосіб отримати доступ до цих комп’ютерів, застосувати виправлення й працювати, не вимагаючи постійно встановленого клієнта VPN.
Я мав на увазі Tailcat, інструмент, створений командою Tailscale. Це дозволяє двом комп’ютерам обмінюватися даними, не потребуючи облікового запису Tailscale або доступних IP-адрес, і намагається встановити пряме з’єднання, коли NAT успішно пройдено.
Два комп’ютери, без публічної IP-адреси, без облікового запису
Їх з’єднує лінія, якої секунду тому не було в обох автомобілів
Це виглядає якось магічно. Перший раз, коли я використав його, я запустив команду tailcat на комп’ютері, який створив і надрукував адресу Tailcat. Потім я переслав цю адресу на інший комп’ютер в іншій мережі за окремим маршрутизатором. За кілька секунд обидві машини змогли встановити зв’язок.
Мої попередні знання про домашню мережу передбачали, що це не спрацює. Жоден із пристроїв не мав загальнодоступної IP-адреси та не ввімкнув переадресацію портів. Насправді жодне з’єднання навіть не пінгувало інше.
Рядок не є самим паролем, але він виконує свою функцію. Він містить відкритий ключ генеруючого пристрою, ключ виявлення, попередній спільний ключ та інформацію, необхідну для закриття з’єднання через ретранслятор DERP. У тестованому режимі за замовчуванням ключі є тимчасовими, тому підключення не стає постійним або обліковим записом Tailnet.
Мені було дуже смішним саме рукостискання. Це починається з того, що власне джерело проекту називає «Мяу», яке надсилає сигнал розблокування від однієї машини до іншої, надісланий через реле зустрічі DERP. Відповідь, яку я отримав на його початковий сигнал, була в основному “Мяу”.
Під час тестування з’єднання я побачив, що відповідь надходить через перше реле, і через кілька секунд з’єднання перемкнулося на прямий шлях між двома комп’ютерами. Ці системи були здебільшого комунікаційними і не потребували публічного оповіщення.
На відміну від традиційної VPN, з’єднання Tailcat залишається в межах програми без налаштування мережевого інтерфейсу чи переписування таблиці маршрутизації комп’ютера.
Що насправді можуть два з’єднані комп’ютери
За цією адресою розміщено напрочуд багато вакансій
Щойно зв’язок був встановлений, цікавість перетворилася на досвід: я мав побачити, на що він здатний. Я почав із клацання файлу безпосередньо на монтуванні:
# On the receiving PC:
tailcat > archive.tar.gz# On my laptop:
tailcat tc8f9a2b1c4d...
Це працювало без проблем без попереднього завантаження в хмарну службу. Tailcat також може створити розташування лише для отримання, щоб хтось міг надсилати файли, не відкриваючи звичайний каталог.
Значною зміною стала можливість відкривати лише одну службу замість того, щоб відкривати всю мережу. Я можу зробити панель керування доступною через підключення Tailcat, не перетворюючи всю автомобільну чи домашню мережу на щось, на що може дивитися інший комп’ютер.
Проте стало ще краще. Tailcat дає мені змогу створювати відчуття, що ця віддалена служба працює локально. Це означає, що браузер або база даних працюватимуть, якщо я вкажу їх на локальний порт, не знаючи, що вони досягнуть Інтернету. Єдиний момент задоволення був, коли я виконав ці команди:
# On the remote machine serving the app:
tailcat serve 80# On my laptop:
tailcat forward tc8f9a2b1c4d... 8080:80
Я відкрив цю адресу: у моєму браузері та веб-програма, що працює на іншому комп’ютері, завантажуватиметься безпосередньо та пропускатиме екрани налаштування.
Якщо взяти до уваги той факт, що Tailcat може передавати файли та передавати TCP-з’єднання, стає зрозуміло, що це більше, ніж просто програма передачі з одним трюком.
Це не менший Tailscale
Чого не вистачає, не важливо
Надто спрощений опис цього інструменту був би Tailscale-lite. Але це було б неправильно. Команда Tailscale описує це як Tailscale без Tailscale. Це більше схоже на того, як зашифрований сантехнік отримує доступ до віддалених машин без приватної мережі, побудованої на вершині.
Я використовую Tailscale щодня і описую його як інструмент для мережі, яку ви підтримуєте. Тож чудово, якщо ваш ноутбук, NAS і телефон мають бути доступні необмежений час за допомогою одного облікового запису. Tailcat використовується, щоб отримати доступ до однієї машини, виконати завдання та дозволити з’єднанню залишатися тимчасовим замість додавання цієї машини до постійної мережі.
Це те, що я використовую, якщо мені потрібен для зберігання файл із машини, яка мені не належить. Я можу додати цю машину до своєї мережі, але зробити це занадто багато для п’ятихвилинного завдання.
|
Кошеня |
Хвостова луска |
|
|---|---|---|
|
Основна мета |
Одноразове підключення |
Приватна мережа продовжує працювати |
|
Потрібен обліковий запис |
немає |
так |
|
Керована Tailnet |
немає |
так |
|
Центральне адміністрування/політика |
немає |
так |
|
Найкраще підходить |
Конкретне завдання |
Повторний доступ між пристроями |
Певні елементи, такі як облікові записи, список пристроїв для керування та рівень політики, який вирішує, хто з чим спілкується, можуть здатися відсутніми частинами Tailcat, але це лише дизайн.
Простота використання все ще вимагає заходів безпеки
Перш ніж я засмучуся, є одна важлива деталь, якої я ще не торкнувся. Оскільки мати адресу Tailcat достатньо для доступу до завантаження в налаштуваннях за замовчуванням, вона заслуговує на таку ж увагу, як пароль. Це не те посилання, яке можна випадково вставити в груповий чат.
Ви можете опублікувати цей рядок як запис DNS і отримати доступ до свого пристрою замість того, щоб копіювати рядок навколо імені. Однак записи DNS регулярно скануються ботами, і це може становити загрозу безпеці. Ця деталь змусила мене знати; легкий доступ часто заслуговує більшої обережності.
Весь трюк Tailcat полягав не в тому, щоб зробити два приватні комп’ютери доступними, а в тому, щоб вони могли спілкуватися, не вимагаючи доступу до одного з них.