Tailscale
Tailscale
Tailscale — сервис меш-VPN (mesh VPN, сетчатый VPN), который создаёт защищённую частную сеть между устройствами через интернет, используя протокол WireGuard. В отличие от классического VPN с центральным сервером, здесь трафик идёт напрямую между устройствами — как если бы они стояли в одной локальной сети.
История
В 2019 году Эйвери Пеннаран (Avery Pennarun), Брэд Фицпатрик (Brad Fitzpatrick, автор LiveJournal и memcached) и Дэвид Кроушоу (David Crawshaw) основали компанию Tailscale Inc. в Торонто. Все трое — выходцы из Google: там они работали над сетевой инфраструктурой и видели, насколько болезненно устроены корпоративные VPN.
Проблема, которую они решали, старая: инженер хочет подключиться к рабочему серверу из дома или к домашнему компьютеру из офиса. Классический способ — либо ставить OpenVPN/WireGuard и самостоятельно разбираться с конфигурацией, ключами и firewall, либо покупать статический белый IP у провайдера. Оба варианта требуют уйму ручных действий.
Ключевую роль сыграло другое изобретение: WireGuard — протокол VPN, разработанный Джейсоном Доненфельдом (Jason A. Donenfeld) и впервые опубликованный в 2015 году. WireGuard принципиально проще OpenVPN (около 4000 строк кода против сотен тысяч), быстрее и безопаснее по дизайну. В марте 2020 года WireGuard вошёл в ядро Linux (версия 5.6). Tailscale взял WireGuard как транспортный уровень и добавил сверху всё, чего WireGuard намеренно не делает: управление ключами, аутентификацию пользователей, автоматический обход NAT.
Несколько вех:
- 2019 — основание компании, закрытая бета.
- 2020 — публичный запуск; в том же году Tailscale получил первый раунд инвестиций.
- 2021 — появление бесплатного тарифа: до 3 пользователей и 100 устройств.
- 2022 — добавлена функция Exit Node (вывод всего трафика через конкретное устройство), Subnet Router, Funnel (публикация локального сервера в интернет).
- 2023–2024 — интеграции с корпоративными системами аутентификации, расширение до крупных enterprise-клиентов.
Продукт остаётся независимым. Инвестиции привлекались от Accel, Insight Partners и других фондов, но компания по состоянию на 2025 год не продавалась и не выходила на IPO.
Что это такое
Tailscale создаёт так называемый tailnet — вашу личную виртуальную сеть (privite overlay network). Каждому устройству в tailnet присваивается постоянный IP-адрес из диапазона 100.64.0.0/10 (это «CGNAT-пространство», зарезервированное RFC 6598 специально для таких случаев — оно не маршрутизируется в публичном интернете).
Чем это отличается от классических VPN:
Классический VPN (OpenVPN, корпоративные решения) — звёздная топология. Все устройства подключаются к одному центральному серверу, и весь трафик идёт через него. Сервер — узкое место и точка отказа. Как только сервер перегружен или упал — все отключились.
Tailscale (меш-топология) — устройства стараются соединяться друг с другом напрямую (peer-to-peer), минуя посредника. Tailscale Inc. владеет только coordination server — сервером координации, который раздаёт ключи и помогает устройствам найти друг друга. Но сам трафик через него не проходит. Если p2p-соединение невозможно (жёсткий firewall, двойной NAT), Tailscale использует DERP-сервера (Designated Encrypted Relay Packets) как ретрансляторы, но и там трафик зашифрован — Tailscale его не видит.
Сравнение с конкурентами:
| Tailscale | ZeroTier | Nebula | WireGuard «вручную» | |
|---|---|---|---|---|
| Настройка | 5 минут | ~20 минут | ~1 час | несколько часов |
| NAT traversal | автоматически | автоматически | частично | вручную |
| Управление ключами | в облаке Tailscale | в облаке ZeroTier | самостоятельно | вручную |
| Открытый исходный код | клиент открыт, сервер нет | частично | полностью | полностью |
Headscale — self-hosted альтернатива
Существует открытый аналог серверной части Tailscale — Headscale. Он позволяет поднять свой coordination server и не зависеть от облака Tailscale Inc. Популярен у тех, кому важна полная самостоятельность, но требует своей инфраструктуры.
Аналогии из жизни
Аналогия 1: Переговорная комната в офисе
Представь, что у тебя несколько сотрудников в разных городах. Обычно им нужно звонить друг другу через оператора (центральный VPN-сервер). Tailscale — как организовать прямые звонки с шифрованием: сначала через «диспетчера» узнаёшь номер нужного человека, а потом разговариваете напрямую.
Где ломается: если у двух сотрудников очень строгие корпоративные файрволы (например, разрешены только исходящие HTTPS) — «прямой звонок» не пройдёт, придётся через ретранслятор (DERP). Скорость упадёт.
Аналогия 2: Почта до востребования
WireGuard — это как конверт с замком: письмо зашифровано, только получатель с ключом его откроет. Tailscale — это «главпочтамт», который знает адреса всех получателей, автоматически создаёт им ключи и разносит письма: сначала помогает найти адрес, а потом письма уже идут прямо, без почтамта-посредника.
Где ломается: «главпочтамт» (серверы Tailscale) может упасть. В этом случае уже установленные соединения продолжат работать, но новые устройства добавить или переподключить будет невозможно до восстановления.
Аналогия 3: Домофон с дистанционным кодом
Классический проброс портов — это как написать свой домашний адрес и номер квартиры на публичной доске объявлений, чтобы курьер смог найти тебя. Tailscale — как выдать курьеру приватный код, по которому он войдёт в подъезд через специальный вход, не светя твой настоящий адрес наружу.
Где ломается: если здание (провайдер) полностью закрыто для любого нестандартного трафика, код не поможет — нужно всё равно пробрасывать конкретный порт.
Как это работает
Разберём по шагам, что происходит, когда ты устанавливаешь Tailscale на два компьютера.
1. Регистрация и аутентификация
При первом запуске Tailscale на устройстве генерирует пару ключей WireGuard (приватный и публичный). Публичный ключ отправляется на coordination server Tailscale. Пользователь аутентифицируется через внешний провайдер (Google, GitHub, Microsoft, SAML/OIDC для корпораций).
2. Раздача адресов и ключей
Coordination server назначает устройству постоянный IP в диапазоне 100.64.x.x. Он также раздаёт всем устройствам в tailnet публичные ключи друг друга. Именно поэтому управление ключами автоматическое: тебе не нужно вручную копировать WireGuard-ключи.
3. NAT traversal — обход файрволов
Это самая сложная часть. Большинство домашних и корпоративных устройств сидят за NAT (Network Address Translation) — роутер скрывает реальные IP устройств. Два устройства за разными NAT не могут просто «позвонить» друг другу напрямую.
Tailscale использует технику STUN (Session Traversal Utilities for NAT): специальный сервер сообщает каждому устройству, каким IP и портом оно выглядит снаружи. Затем оба устройства «дырявят» NAT одновременно — посылают пакеты навстречу друг другу в момент, когда оба ещё «открыты». Это называется UDP hole punching.
Если UDP hole punching не получается (симметричный NAT, жёсткие корпоративные политики), подключаются DERP-серверы как ретранслятор. DERP-серверы расставлены по всему миру.
4. Туннель WireGuard
Когда маршрут найден, устанавливается WireGuard-туннель. WireGuard работает в ядре ОС (или через userspace-реализацию на macOS/Windows), обеспечивает шифрование каждого пакета алгоритмами: Curve25519 для обмена ключами, ChaCha20 для шифрования, Poly1305 для аутентификации.
5. MagicDNS
Tailscale умеет присваивать устройствам читаемые имена вида macbook.tail12345.ts.net. Это работает через встроенный DNS-резолвер — MagicDNS. Тебе не нужно запоминать 100.109.28.75 — достаточно написать mac-mini.
6. Access Control Lists (ACL)
В admin-консоли можно настраивать, какие устройства к каким могут подключаться. Это JSON-конфиг с правилами: например, разработчики могут обращаться к dev-серверам, но не к production-базе.
// Упрощённый пример ACL
{
"acls": [
{"action": "accept", "src": ["group:dev"], "dst": ["tag:dev-server:*"]},
{"action": "accept", "src": ["group:admin"], "dst": ["*:*"]}
]
}
Где встречается в обычной жизни
-
Удалённый рабочий стол через интернет — именно это мы делали вчера: Mac mini в офисе, коллеги с Windows хотят к нему подключиться по VNC для тестирования iOS-приложения. Tailscale даёт им postоянный адрес машины (
100.104.139.120) без проброски портов. -
Доступ к домашнему серверу — ты поднял у себя дома Plex, Home Assistant или сервер для хранения файлов. С Tailscale ты обращаешься к нему как к локальному устройству, даже находясь за рубежом, без статического IP у провайдера.
-
Разработчик работает из кафе — нужно зайти на внутренний staging-сервер компании. Без VPN — нельзя, тот за firewall. С Tailscale — заходишь на
staging.tail.company.ts.netкак из офиса. -
Raspberry Pi в гараже — умный дом или камера за двойным NAT провайдера. Ни белого IP, ни возможности пробросить порт. Tailscale ставится одной командой, после чего Raspberry Pi становится доступен по имени с телефона.
-
Связь офисов — небольшая компания с двумя офисами хочет, чтобы принтер в Москве был виден в Питере. Вместо Site-to-Site VPN — Tailscale Subnet Router.
Где встречается в IT и бизнесе
DevOps и инфраструктура:
Tailscale заменяет бастион-хосты (jump servers). Вместо того чтобы разрешать входящий SSH на публичный IP, инженер подключается к серверу только через tailnet — наружу не торчит ничего.
Работа с удалёнными командами:
Стартапы дают разработчикам доступ к dev-серверам через Tailscale вместо корпоративного VPN. Настройка — 5 минут вместо часов с сисадмином.
IoT (интернет вещей):
Устройства без публичного IP (камеры, датчики, промышленные контроллеры) становятся адресуемыми через tailnet.
Exit Node — анонимизация трафика:
Если один из твоих серверов в другой стране объявить Exit Node, весь интернет-трафик с устройства пойдёт через него. Это функция VPN в привычном понимании — для обхода гео-ограничений или защиты в публичных сетях.
Subnet Router — интеграция с корпоративной сетью:
Если в офисе есть локальная сеть 192.168.1.0/24 с принтерами, NAS и другими устройствами, один компьютер с Tailscale может стать маршрутизатором всей этой подсети. Остальные устройства в tailnet получают доступ ко всему диапазону, не устанавливая Tailscale на каждый девайс.
Кто пользуется
- GitHub использует Tailscale для внутренней инфраструктуры.
- Vercel интегрирован с Tailscale: можно открыть доступ к деплойменту только для tailnet.
- По официальным данным на 2024 год, у Tailscale более 1 миллиона пользователей и тысячи enterprise-клиентов.
- Широко используется в indie-разработчиках, homelab-сообществе (самодельные серверы дома) и небольших командах.
- Бесплатный тариф: до 3 пользователей, 100 устройств — достаточно для личного использования и небольшой команды.
- Платные тарифы стартуют от $6/пользователь/месяц (Personal Pro) и от $18/пользователь/месяц (Business).
Альтернативы и конкуренты
ZeroTier
+ Полностью открытый исходный код, включая серверную часть.
+ Более гибкая топология сети.
- Сложнее в настройке, менее отполированный UI.
- NAT traversal работает не так надёжно в edge-кейсах.
Nebula (Slack/Defined Networking)
+ Полностью self-hosted, никакого облака.
+ Отличная производительность при правильной настройке.
- Требует ручного управления сертификатами и lighthouse-нодами.
- Нет GUI, только конфиги.
WireGuard «вручную»
+ Полный контроль, ничего лишнего.
+ Работает без внешних сервисов.
- Управление ключами вручную — нетривиальная задача при большом числе устройств.
- NAT traversal нужно реализовывать самостоятельно.
Cloudflare Tunnel (Argo Tunnel)
+ Не требует открытых портов, трафик идёт через Cloudflare.
+ Хорошо для публикации web-сервисов.
- Весь трафик через серверы Cloudflare (не p2p).
- Не создаёт «общей сети» между устройствами — только публикует сервисы наружу.
Headscale (self-hosted Tailscale coordination server)
+ Полная самостоятельность, Tailscale-клиент работает без изменений.
+ Открытый исходный код.
- Нужна своя инфраструктура для coordination server.
- Часть функций Tailscale может не поддерживаться.
Когда НЕ стоит использовать
Когда нужна высокая пропускная способность между узлами в одной сети. Tailscale добавляет накладные расходы на шифрование WireGuard. Для передачи больших объёмов данных между серверами в одном датацентре — это лишний оверхед. Там лучше прямое подключение или внутренняя сеть датацентра.
Когда политика безопасности запрещает любые внешние coordination servers. Финансовые и государственные организации иногда требуют, чтобы весь сетевой трафик оставался в периметре — даже метаданные о соединениях. В этом случае придётся поднимать Headscale или использовать другой self-hosted решения.
Когда нужна стандартная site-to-site VPN с существующим оборудованием. Если в компании уже стоят аппаратные VPN-концентраторы Cisco или Fortinet, Tailscale туда не впишется — это другая парадигма. Он для устройств, а не для железных шлюзов.
Бесплатный тариф — не навсегда
Tailscale периодически меняет условия бесплатного тарифа (в 2023 году лимит устройств снижался с неограниченного до 100). Не строй критичную инфраструктуру на бесплатном плане без резервного варианта.
Связанные понятия
- WireGuard — VPN-протокол, на котором работает Tailscale; в отличие от OpenVPN, имеет ~4000 строк кода и использует современную криптографию (Curve25519, ChaCha20).
- NAT (Network Address Translation) — механизм, при котором роутер скрывает внутренние IP-адреса, заменяя их одним внешним; именно его обходит Tailscale.
- STUN — протокол (RFC 5389), позволяющий устройству узнать свой публичный IP и порт через посредника; основа UDP hole punching.
- Overlay network — виртуальная сеть поверх физической; tailnet — пример overlay network, где узлы кажутся в одной подсети, хотя физически разбросаны по миру.
- SSH-туннель — более старая техника для того же сценария «нужен доступ к закрытому порту»; Tailscale не заменяет SSH, но делает его ненужным для простых случаев.
- Zero Trust Network Access (ZTNA) — концепция безопасности, при которой устройства не доверяют сети по умолчанию и аутентифицируются явно; Tailscale реализует элементы ZTNA через identity-based ACL.
Литература и источники
- Официальная документация — tailscale.com/kb (очень хорошо написана, есть русскоязычные туториалы от комьюнити).
- How Tailscale Works — статья Эйвери Пеннарана на официальном сайте tailscale.com/blog/how-tailscale-works — объясняет NAT traversal и координационный сервер на удивление доступно.
- WireGuard: Next Generation Kernel Network Tunnel — белая книга Джейсона Доненфельда, 2017 год. Искать: «WireGuard whitepaper Donenfeld».
- RFC 6598 — IANA-zарезервированный диапазон
100.64.0.0/10для shared address space. Ietf.org/rfc/rfc6598. - Headscale — github.com/juanfont/headscale — open-source реализация coordination server.
- Книга «Computer Networks» (Таненбаум, 5-е издание, en) — главы по NAT и VPN для фундаментального понимания того, что Tailscale решает.
Где встретилось у меня
Вчера стояла задача: дать коллегам на Windows удалённый доступ к Mac mini для тестирования iOS-приложения. Mac mini сидит за домашним роутером без белого IP, коллеги — из других мест. Мы прошли весь путь: установка Tailscale на Mac mini через brew, настройка Screen Sharing (VNC, порт 5900), получение Tailscale IP (100.104.139.120). По дороге выяснилось, что Screen Sharing и pmset уже были настроены раньше, и единственное недостающее звено — именно Tailscale как мост между устройствами.
Краткое резюме
- Tailscale — меш-VPN сервис на базе WireGuard, создающий частную overlay network (tailnet) между устройствами.
- Не требует белого IP, проброски портов или ручного управления ключами — автоматически обходит NAT через UDP hole punching.
- Coordination server Tailscale только раздаёт ключи и помогает устройствам найти друг друга; сам трафик идёт p2p и зашифрован.
- Бесплатный тариф закрывает большинство личных и командных сценариев (до 3 пользователей, 100 устройств).
- Для полного контроля существует self-hosted альтернатива — Headscale.