Выпуск новостей завершён 15 сентября 2026. Материалы сохранены на дату публикации. Перейти к инструкциям →

Архив · Полный материал · Tproger

Tailscale выпустила tailcat: соединить две машины через NAT без аккаунта и tailnet, адрес машины — её ключ

Tailscale открыла tailcat, CLI и Go-пакет, который соединяет две машины за NAT через WireGuard и DERP без аккаунтов, tailnet и IP-адресов. Как это работает, для чего годится и чем отличается от обычного Tailscale. — Читать дальше « Tailscale выпустила tailcat: соединить две машины через NAT без…

Разработка · TprogerМарат Ильясов4 минуты
Перейти к тексту ↓
Tailscale выпустила tailcat: соединить две машины через NAT без аккаунта и tailnet, адрес машины — её ключ
Tproger
Коротко о главномРазвернутьСвернуть
  1. Tailscale 31 августа опубликовала tailcat , открытый инструмент, который соединяет две машины, где бы они ни стояли, без регистрации в сервисе и без сети tailnet; IP-адреса внутри туннеля есть, но пользователю их знать не нужно.
  2. Автор — Брэд Фицпатрик, создатель memcached и один из основателей Tailscale.
  3. Идея проста: взять из Tailscale только сетевую часть (WireGuard, обход NAT и релеи DERP) и выбросить всё, что требует аккаунта.

Tailscale 31 августа опубликовала tailcat , открытый инструмент, который соединяет две машины, где бы они ни стояли, без регистрации в сервисе и без сети tailnet; IP-адреса внутри туннеля есть, но пользователю их знать не нужно. Автор — Брэд Фицпатрик, создатель memcached и один из основателей Tailscale. Идея проста: взять из Tailscale только сетевую часть (WireGuard, обход NAT и релеи DERP) и выбросить всё, что требует аккаунта.

На практике это выглядит как netcat для интернета: на одной машине запускаете tailcat в режиме ожидания и получаете длинный адрес, на другой — вызываете tailcat с этим адресом, и между ними появляется шифрованный двунаправленный канал. Сверху можно пустить SSH, передачу файлов или проброс порта.

Как это работает без IP-адресов

В обычном Tailscale центральный сервер (control plane) раздаёт машинам ключи друг друга и координаты, по которым их искать. В tailcat этого посредника нет: всё, что нужно для соединения, упаковано в сам адрес. Это публичный ключ WireGuard плюс сведения о том, через какой DERP-релей к машине можно достучаться, если прямой путь через NAT не найдётся. Получатель адреса знает и кому доверять, и где искать.

No accounts, login flow, tailnets, or IP addresses. Tailscale анонс tailcat

Дальше работает тот же механизм, что и в Tailscale: машины пытаются пробить NAT и соединиться напрямую, а если не выходит, трафик идёт через DERP-релей, зашифрованный концами так, что релей содержимого не видит. Релеи Tailscale публичные, и их можно заменить своим. Ни root, ни TUN-интерфейс, ни права администратора не нужны: tailcat работает в пространстве пользователя как обычная программа.

Чем это отличается от ngrok, SSH-туннелей и самого Tailscale

От ngrok и подобных сервисов tailcat отличается тем, что не выставляет ничего в публичный интернет: соединение получит только тот, у кого есть адрес, а адрес — это ключ. От SSH-прыжков через промежуточный сервер — тем, что промежуточный сервер не нужен вообще, DERP лишь помогает найти друг друга и при необходимости ретранслирует уже зашифрованные байты. От Tailscale — отсутствием всей управляющей части: нет списка устройств, ACL, MagicDNS, нет и постоянной сети, каждое соединение живёт само по себе.

Отсюда и границы применимости. tailcat хорош для разового доступа: подключиться к ноутбуку коллеги, забрать большой файл с домашней машины из офиса, дать подрядчику временный вход на стенд. Для постоянной сети между десятками серверов с правами доступа он не замена Tailscale или WireGuard-конфигу, и авторы этого не обещают: README прямо предупреждает, что стабильность API и CLI не гарантируется.

Как попробовать

  • Установка одной командой при наличии Go: go install github.com/tailscale/tailcat/cmd/tailcat@latest ; готовые бинарники смотрите в релизах репозитория.
  • На принимающей стороне запустите tailcat в режиме прослушивания и скопируйте выданный адрес; на второй машине передайте этот адрес как аргумент.
  • Поверх канала поднимайте SSH или пробрасывайте порт; для передачи файлов подойдёт обычное перенаправление stdin и stdout, как с netcat.
  • Для закрытого контура поднимите собственный DERP-сервер: код релея открыт в репозитории Tailscale.
  • Браузерная демонстрация на WebAssembly лежит на GitHub Pages проекта и показывает, что канал можно открыть даже из вкладки.
Для читателей из России. Исходники и бинарники лежат на GitHub, регистрации нет, а значит, нет и вопросов с оплатой и регионом аккаунта. Доступность публичных DERP-релеев из России авторы не гарантируют и предупреждают об ограниченном числе регионов и лимитах, так что проверьте соединение, а для закрытого контура поднимите свой релей.

Контекст

Первый прототип под именем derpcat Фицпатрик написал в сентябре 2023 года, публично проект показали после конференции TailscaleUp в августе 2026-го. Tailscale делает это не из альтруизма: чем больше людей знакомы с её сетевым стеком, тем проще им потом прийти за полноценным продуктом. Но для разработчика это честная сделка: рабочий инструмент под BSD-лицензией без обязательств.

Источники: tailcat: Tailscale without Tailscale (блог Tailscale) , Репозиторий tailscale/tailcat

Изображение на обложке: иллюстрация сгенерирована ИИ для Tproger