Tailscale позволяет подключаться к удалённому компьютеру через интернет без белого IP и ручного проброса портов на роутере. После установки клиента устройства объединяются в приватную сеть tailnet и получают собственные адреса. Через такую сеть можно подключаться по SSH, RDP, открывать веб-панель домашнего сервера или работать с NAS.
Передача данных защищается WireGuard. Tailscale автоматически занимается обменом открытыми ключами, поиском других узлов и построением маршрута между компьютерами. Приватные ключи создаются на устройствах и не передаются серверу координации.
Публичный IPv4 для каждого компьютера не нужен. Tailscale работает и за CGNAT, где обычный Port Forwarding на домашнем роутере не помогает, поскольку дополнительная трансляция адресов происходит уже в сети провайдера.
Tailscale предоставляет сетевое соединение, но не запускает удалённые сервисы. Для подключения по SSH на компьютере должен работать SSH-сервер, для RDP требуется включённый удалённый рабочий стол, а веб-приложение должно принимать соединения на нужном порту.
Как Tailscale соединяет компьютеры через NAT
После авторизации клиент получает сведения об остальных устройствах tailnet и пытается установить с нужным узлом прямое UDP-соединение. Механизмы NAT traversal во многих сетях позволяют пройти через маршрутизаторы без ручной переадресации портов.
При успешном соединении пользовательский трафик идёт напрямую между компьютерами. Центральный сервер Tailscale участвует в координации, но не становится обязательным VPN-шлюзом для каждого пакета.
Прямое соединение возможно не всегда. Корпоративный firewall, ограничения UDP или особенности NAT могут помешать установлению канала. В таком случае Tailscale способен использовать Peer Relay через другой узел tailnet или DERP Relay через собственную релейную инфраструктуру. Во всех режимах содержимое трафика остаётся защищённым WireGuard.
DERP-сервер получает зашифрованные пакеты и пересылает их между узлами. Ключей для расшифровки пользовательского трафика у реле нет. Tailscale продолжает искать возможность перейти на прямое соединение, поскольку прямой маршрут обычно даёт меньшую задержку и более высокую скорость.
Проверить используемый путь можно командой:
tailscale ping home-pc
Для более подробной диагностики подходят:
tailscale status
tailscale netcheck
tailscale status показывает состояние узлов и тип соединения, а tailscale netcheck проверяет доступность UDP, особенности NAT, IPv4, IPv6 и задержку до DERP-регионов.
Как настроить Tailscale между двумя компьютерами
Установите официальный клиент Tailscale на первый компьютер и выполните авторизацию. На Windows и macOS вход выполняется через приложение. На Linux после установки используется команда:
sudo tailscale up
После авторизации компьютер появится в административной консоли Tailscale. Вторую машину нужно подключить к тому же tailnet.
Каждый узел получает IPv4-адрес из диапазона 100.64.0.0/10 и IPv6-адрес Tailscale. Адрес сохраняется даже после перехода компьютера в другую локальную сеть или смены внешнего IP.
Запоминать адрес 100.x.y.z обычно не требуется. MagicDNS назначает устройствам DNS-имена. Компьютер с именем home-pc можно проверить так:
tailscale ping home-pc
Для обычного SSH подключение выглядит так:
ssh user@home-pc
В RDP-клиенте можно указать то же имя либо Tailscale IP. Веб-интерфейс сервера открывается по имени и порту, например:
http://home-server:8080
Если tailscale ping проходит, а нужный сервис не открывается, причина часто находится на самой целевой машине. Приложение может быть выключено, слушать только 127.0.0.1 или блокироваться Windows Defender Firewall, ufw, nftables либо другим локальным межсетевым экраном.
Нужно ли открывать UDP 41641
Для обычной установки Tailscale ручной проброс UDP 41641 не требуется. Клиент способен установить соединение через NAT самостоятельно, а при невозможности прямого пути использовать реле.
Разрешение входящего UDP иногда помогает двум узлам установить прямое соединение и повысить скорость. Рассматривать такую настройку как обязательное условие работы Tailscale неправильно.
Постоянный переход через DERP имеет смысл проверять, если по Tailscale передаются крупные файлы или используется приложение, чувствительное к задержкам. tailscale ping покажет текущий маршрут, а tailscale netcheck поможет разобраться с сетевыми ограничениями.
Отдельная проблема встречается при использовании диапазона 100.64.0.0/10 другими сетями. RFC 6598 выделяет пространство как Shared Address Space для операторского NAT. Некоторые провайдеры и VPN-системы используют тот же диапазон, поэтому совпадающие маршруты иногда приводят к конфликтам.
Как ограничить доступ внутри tailnet
Наличие зашифрованного канала не означает, что каждому устройству нужно разрешать доступ ко всем остальным. В небольшой личной сети свободное взаимодействие между двумя компьютерами удобно, но с ростом числа машин права лучше разделить.
Tailscale использует политики доступа. Для новых конфигураций разработчики рекомендуют Grants. Старые ACL продолжают поддерживаться, однако новые возможности управления доступом развиваются прежде всего вокруг Grants.
Политика может разрешить ноутбуку подключаться только к SSH-серверу на TCP-порту 22, оставив остальные устройства и сервисы недоступными. Такой подход уменьшает последствия компрометации одной машины.
Учётную запись, через которую выполняется вход в Tailscale, желательно защитить многофакторной аутентификацией. Ненужные устройства следует удалять из tailnet, а для серверов учитывать срок действия ключей устройств.
Как подключить NAS, принтер или другую локальную сеть
Tailscale необязательно устанавливать на каждое устройство. Если клиент нельзя поставить на NAS, принтер, телевизор, IP-камеру или другое оборудование, доступ можно организовать через Subnet Router.
Один компьютер с Tailscale объявляет маршрут к локальной подсети, например 192.168.1.0/24. Остальные участники tailnet получают доступ к разрешённым адресам через данный узел.
Exit Node направляет исходящий интернет-трафик выбранного устройства через другой узел tailnet. Функция применяется, например, для централизованной маршрутизации трафика между доверенными устройствами.
Для обычного подключения к одному ПК ни Subnet Router, ни Exit Node не нужны. Достаточно установить Tailscale на обе машины.
Чем Tailscale отличается от обычного WireGuard
WireGuard предоставляет криптографический протокол и VPN-туннель. Адресацию, распространение ключей, поиск узлов, маршрутизацию и работу через NAT администратор обычной WireGuard-сети организует самостоятельно.
Tailscale автоматизирует большую часть такой работы. Клиенты получают стабильные адреса, находят друг друга, обмениваются открытыми ключами через управляющую инфраструктуру и пытаются построить прямой маршрут. Для пользователя разница заметна прежде всего за CGNAT и при постоянной смене сетей.
Управляющая инфраструктура Tailscale остаётся частью схемы. Сервис участвует в авторизации устройств, распространении открытых ключей, политик и сетевой информации. При прямом соединении пользовательский трафик между двумя узлами через центральный сервер Tailscale не передаётся.
Для доступа к домашнему компьютеру настройка сводится к установке клиента на обе машины, подключению к одному tailnet и проверке соединения через tailscale ping. Белый IPv4 и ручной Port Forwarding для такой схемы не требуются.
Материал посвящён настройке защищённого удалённого доступа к собственным устройствам и сетям. При использовании сетевых средств необходимо соблюдать требования законодательства РФ, включая установленные ограничения доступа к информационным ресурсам.
Вопросы и ответы
Нужен ли белый IP для Tailscale?
Нет. Tailscale работает за NAT и CGNAT. При возможности клиенты устанавливают прямое соединение, а при сетевых ограничениях используют релейный маршрут.
Нужно ли пробрасывать порт 41641?
Нет. Для стандартной работы Tailscale ручной Port Forwarding не требуется. Открытый UDP-порт иногда помогает получить прямое соединение, но не является обязательным.
Можно ли подключаться по имени вместо IP?
Да. MagicDNS позволяет обращаться к устройствам внутри tailnet по DNS-именам, например home-pc.
Почему Tailscale работает медленно?
Одной из возможных причин служит использование DERP вместо прямого соединения. Проверить маршрут можно командами tailscale ping и tailscale status.
Tailscale открывает SSH или RDP в интернет?
Обычное подключение через tailnet не публикует SSH или RDP для всего интернета. Доступ определяется членством в tailnet, политиками Tailscale, настройками сервиса и локальным межсетевым экраном.
Чем Subnet Router отличается от Exit Node?
Subnet Router предоставляет доступ к выбранной локальной подсети. Exit Node направляет исходящий интернет-трафик выбранного устройства через другой узел tailnet.
