Гид по технологиям

Как настроить Tailscale на Ubuntu и создать VPN между двумя машинами

8 min read Сеть Обновлено 04 Dec 2025
Настройка Tailscale на Ubuntu: VPN между машинами
Настройка Tailscale на Ubuntu: VPN между машинами

Фотография открытого ноутбука, лежащего поверх закрытого ноутбука.

Tailscale — лёгкий, децентрализованный VPN, который позволяет объединить несколько устройств в одну логическую сеть без проброса портов. В этой статье показано, как установить Tailscale на Ubuntu, подключить две машины, открыть доступ другим пользователям, настроить выходный узел (exit node) и подключить к нему клиентов. В конце — чек-листы, обходные случаи, безопасность и отладка.

Содержание

  • Почему выбирать Tailscale
  • Получение и установка Tailscale на Ubuntu
  • Создание первой сети Tailscale и привязка машины
  • Добавление второй машины в сеть
  • Предоставление доступа к машине другим пользователям
  • Создание VPN через выходной узел (Exit Node)
  • Подключение клиента к выходному узлу
  • Рекомендации по безопасности и конфиденциальности
  • Когда Tailscale не подойдёт
  • Альтернативные подходы и сравнение
  • Полезные проверки, чек-листы и примеры команд
  • Часто задаваемые вопросы
  • Краткое резюме

Почему выбирать Tailscale

Tailscale использует протокол WireGuard для шифрования и устанавливает одноранговые соединения между устройствами. Он не требует центрального маршрутизатора для прокидывания трафика: клиенты часто соединяются напрямую через NAT traversal (STUN/ICE-like механизмы), что даёт меньшую задержку по сравнению с классическими VPN с централизацией трафика.

Кратко о плюсах:

  • Простота: минимум действий для подключения устройства к сети.
  • Без проброса портов: не нужен публичный IP или сложная настройка роутера.
  • Шифрование на уровне WireGuard.
  • Бесплатен для личного использования (до 100 устройств на личную сеть).

Определение: NAT traversal — набор техник, позволяющих установить прямое соединение между двумя узлами, находящимися за NAT.

График задержек и пример ping между клиентами Tailscale.

Важно: Tailscale облегчает создание защищённых каналов, но вы всё равно должны контролировать доступ к сервисам на машинах.

Получение и установка Tailscale на Ubuntu

Ниже приведён пошаговый список команд, проверенных для Ubuntu (в примерах используется релиз “jammy”). Выполняйте команды от имени пользователя с правами sudo.

  1. Установите curl, если он отсутствует:
sudo apt update
sudo apt install -y curl
  1. Получите GPG-ключ и запишите его в keyrings (корректная команда):
sudo curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/jammy.noarmor.gpg | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null
  1. Добавьте репозиторий Tailscale в списки apt:
sudo curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/jammy.tailscale-keyring.list | sudo tee /etc/apt/sources.list.d/tailscale.list

Терминал с добавленным репозиторием Tailscale.

  1. Обновите пакеты и установите Tailscale:
sudo apt update && sudo apt -y upgrade
sudo apt install -y tailscale

Совет: всегда проверяйте URL репозитория на официальном сайте tailscale.com, если у вас другое имя релиза (например, focal, bionic и т.д.).

Создание первой Tailscale-сети и привязка машины

  1. Включите сервис демона tailscaled и запустите его сразу:
sudo systemctl enable --now tailscaled.service
  1. Подключите машину к вашей Tailscale-сети:
sudo tailscale up
  1. В терминале появится ссылка. Откройте её в браузере и выполните вход в систему (SSO: Google, GitHub, Microsoft и т.п.). Затем подтвердите привязку устройства (нажатие Connect/Подключить).

Подсказка открытия ссылки в терминале.

  1. Рекомендуется использовать systemd-resolved для корректной работы DNS через Tailscale. Включите и запустите systemd-resolved:
sudo systemctl enable --now systemd-resolved.service
  1. Создайте символическую ссылку /etc/resolv.conf на stub-resolv.conf, чтобы systemd-resolved управлял резолвом:
sudo rm -f /etc/resolv.conf
sudo ln -s /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
  1. Перезапустите сетевые службы, чтобы применить изменения:
sudo systemctl restart systemd-resolved.service
sudo systemctl restart NetworkManager.service
sudo systemctl restart tailscaled.service

Совет: если у вас сервер без NetworkManager, достаточно перезапустить systemd-resolved и tailscaled.

Добавление второй машины в сеть

На второй машине повторите шаги установки. После установки выполните:

sudo tailscale up

В браузере подтвердите привязку. Убедитесь, что на второй машине также включён systemd-resolved и что /etc/resolv.conf указывает на stub-resolv.conf.

Добавление клиента в сеть Tailscale.

После успешного подключения введите на одной из машин:

sudo tailscale status

Вы увидите список устройств с их Tailscale IP (обычно диапазон 100.x.x.x).

Предоставление доступа к машине другим пользователям (Sharing)

По умолчанию одна личная сеть привязана к аккаунту. Если нужно поделиться доступом к конкретному устройству с участниками вне вашей организации, используйте механизм invite links в админ-консоли.

  1. Перейдите в веб-интерфейс Tailscale и откройте Admin console (Консоль администратора).

Местоположение ссылки на

  1. Найдите устройство, которое хотите экспортировать, и нажмите Share (Поделиться) или кнопку с тремя точками рядом с ним, затем выберите Generate & copy invite link (Создать и скопировать ссылку-приглашение).

Кнопка для генерации приглашения к устройству.

Примечание: ссылка по умолчанию одноразовая и истечёт после использования. Включите переключатель “Multi-use invite link” (Многократное использование), если хотите, чтобы ссылка работала для нескольких пользователей.

  1. Отправьте приглашение внешнему пользователю. При переходе по ссылке ему нужно будет войти и принять приглашение.

Страница входа и принятия приглашения для внешнего пользователя.

  1. После принятия у вас в сети появится новый узел. Проверьте связь командой ping по Tailscale IP:
ping 100.117.185.109

Пинг между устройствами через Tailscale.

Совет: при проблемах с доступом проверьте UFW/iptables на обеих сторонах и откройте необходимые порты для внутреннего трафика или временно отключите firewall для диагностики.

Создание VPN через выходной узел (Exit Node)

Exit Node — это машина, которая принимает трафик от других узлов Tailscale и отправляет его в интернет от своего имени. Это удобно, если нужно выйти в интернет через конкретный IP (например, чтобы получить доступ к ресурсам, ограниченным по геолокации) или централизовать фильтрацию трафика.

Шаги для настройки Exit Node на Ubuntu:

  1. Разрешите пересылку пакетов IPv4 и IPv6 и запишите настройки в sysctl:
echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
sudo sysctl -p /etc/sysctl.d/99-tailscale.conf
  1. Перезапустите tailscale и объявите узел как рекламирующий exit-node:
sudo tailscale up --advertise-exit-node
  1. В веб-консоли Admin Console выберите устройство, нажмите кнопку с тремя точками и откройте Edit route settings (Правка маршрутов). Включите Use as exit node (Использовать как выходной узел).

Параметры маршрутов в админ-консоли.

Переключатель для включения узла как Exit Node.

После включения вы получите подтверждение, что узел доступен как exit node.

Подключение клиента к выходному узлу

На клиенте выполните следующие действия:

  1. Найдите адрес exit node:
sudo tailscale status

Вывод команды tailscale status с адресом exit node.

  1. Подключитесь к exit node, использовав флаг –use-exit-node и указав его IP:
sudo tailscale up --use-exit-node=100.86.19.20
  1. Проверьте внешний IP:
curl ifconfig.me/ip

Вы должны увидеть IP, соответствующий интернет-выходу exit node.

Изменение внешнего IP у клиента после подключения через exit node.

Важно: exit node пропускает весь исходящий трафик клиента через себя. Убедитесь, что пропускная способность и политика безопасности exit node подходят для такой роли.

Рекомендации по безопасности и конфиденциальности

  • Минимизируйте список сервисов, доступных по Tailscale. Откройте только те порты, которые необходимы.
  • Используйте ACL (Access Controls) в админ-консоли Tailscale для разграничения прав доступа между устройствами и пользователями.
  • Регулярно обновляйте пакеты и Tailscale-клиент.
  • Для серверов, которые выступают как exit node, включите логирование и мониторинг (например, fail2ban, auditd).
  • Проверяйте, какие DNS-серверы настроены через /etc/resolv.conf, чтобы избежать утечек DNS.

Конфиденциальность: при использовании exit node весь исходящий трафик будет проходить через машину-хостера. Не используйте чужие exit nodes для конфиденциальных операций без доверия к владельцу.

Когда Tailscale не подойдёт — примеры и ограничения

  • Не подходит, если вам нужен полностью автономный корпоративный VPN с централизованным пропусканием всего трафика через собственные ЦОДы (хотя Tailscale можно интегрировать с такими сценариями при правильной архитектуре).
  • Ограничение числа устройств: бесплатный план — до 100 устройств для личных сетей.
  • Если требуется поддержка устаревших платформ или очень специфичных сетевых конфигураций, Tailscale может потребовать дополнительных настроек или не поддерживать их.
  • Некоторые корпоративные политики запрещают использование внешних SSO или сторонних облачных сервисов для управления доступом.

Альтернативные подходы

  • OpenVPN: классический self-hosted VPN с полной централизованной маршрутизацией.
  • WireGuard вручную: быстрый и лёгкий, но требует ручной настройки ключей и маршрутов для каждого узла.
  • ZeroTier: похожая P2P-сеть, с разными моделью управления и особенностями маршрутизации.

Когда выбирать альтернативу:

  • Нужна тонкая настройка маршрутизации и контроль трафика в ЦОД — OpenVPN или собственный WireGuard.
  • Требуется гибкая виртуальная сеть с GUI для mesh-сетей — можно рассмотреть ZeroTier.

Методика проверки и чек-листы

Минимальная проверка работоспособности после установки:

  • На каждом узле выполните sudo tailscale status и убедитесь, что узлы видят друг друга.
  • Проверьте ping на Tailscale IP с обеих сторон.
  • Проверка DNS: выполните nslookup/example.com и убедитесь, что разрешение происходит корректно.
  • Для exit node: curl ifconfig.me/ip до и после подключения клиента.

Чек-лист администратора (быстрый):

  • tailscaled запущен и автозапуск включён
  • /etc/resolv.conf указывает на /run/systemd/resolve/stub-resolv.conf
  • ACL в админ-консоли настроены
  • Exit node только для доверенных машин
  • Логи и мониторинг включены

Чек-лист пользователя:

  • Установлен tailscale
  • Вход в SSO выполнен
  • Устройство отображается в admin console
  • Тестовый ping проходит

Критерии приёмки:

  • Устройства видят друг друга через tailscale status
  • Доступ к целевым сервисам (SSH, HTTP) подтверждён
  • Exit node корректно меняет внешний IP клиента

Отладка — частые проблемы и решения

Проблема: устройство не появляется в списке в админ-консоли

  • Решение: перезапустите tailscaled, проверьте лог sudo journalctl -u tailscaled -f, повторно выполните tailscale up.

Проблема: пакеты не проходят через exit node

  • Решение: проверьте net.ipv4.ip_forward и net.ipv6.conf.all.forwarding, проверьте iptables/ufw на exit node, перезапустите tailscaled.

Проблема: DNS не разрешается

  • Решение: проверьте /etc/resolv.conf и systemd-resolved, возможно нужно включить MagicDNS или указать корректный DNS в настройках Tailscale.

Безопасность, соответствие и конфиденциальность (GDPR)

  • Tailscale использует внешние OAuth/SSO-поставщики для аутентификации. Убедитесь, что выбранный способ соответствует политике безопасности вашей организации.
  • Для обработки персональных данных оцените, кто имеет доступ к админ-консоли и журналам.
  • Если требуется локальная политика хранения логов — настраивайте и агрегируйте логи на собственные серверы.

Рольные чек-листы (быстрая ориентация)

Роль: системный администратор

  • Настроить ACL
  • Включить мониторинг
  • Настроить exit node и NAT правилa

Роль: разработчик

  • Убедиться, что Dev-машина подключена
  • Настроить проброс портов локально через tailscale по потребности

Роль: внешний подрядчик

  • Получить invite link
  • Подтвердить доступ и проверить соединение

Полезные шаблоны и команды (cheat sheet)

Установить и запустить tailscale:

sudo apt update && sudo apt install -y curl
# добавить репозиторий (пример для jammy)
sudo curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/jammy.noarmor.gpg | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null
sudo curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/jammy.tailscale-keyring.list | sudo tee /etc/apt/sources.list.d/tailscale.list
sudo apt update && sudo apt install -y tailscale
sudo systemctl enable --now tailscaled.service
sudo tailscale up

Сделать узел exit-node:

echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf
sudo sysctl -p /etc/sysctl.d/99-tailscale.conf
sudo tailscale up --advertise-exit-node

Подключиться к exit-node на клиенте:

sudo tailscale up --use-exit-node=100.x.x.x
curl ifconfig.me/ip

Часто задаваемые вопросы

Есть ли ограничение по количеству машин и пропускной способности?

Да. Бесплатный личный план поддерживает до 100 устройств в сети. Это ограничение на количество устройств, а не на полосу пропускания между ними.

Можно ли изменить email в аккаунте Tailscale?

Нет. Если вы используете внешний SSO (Google/GitHub), смена email в рамках этого аккаунта невозможна. Решение — создать новый аккаунт через другой SSO и пригласить устройства заново.

Другой пользователь не может подключиться после приглашения — что делать?

Частая причина — межсетевой экран (firewall) или политики корпоративной сети. Попробуйте временно открыть необходимые порты (или autorize службу tailscaled) и проверьте логи на обеих сторонах.

Краткое резюме

Tailscale — удобный инструмент для быстрого создания защищённой mesh-сети между устройствами. Он избавляет от необходимости пробрасывать порты или иметь публичный IP. Для большинства личных и многих корпоративных сценариев Tailscale ускоряет настройку и упрощает управление доступом. Используйте exit nodes для централизованного выхода в интернет и ACL для контроля доступа.

Image credit: Aris Munandar via Unsplash (Фоновая фотография) and Wikimedia Commons (Логотип). Скриншоты и изменения — Ramces Red.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Как исправить «This PC can’t run Windows 11» в VMware
Виртуализация

Как исправить «This PC can’t run Windows 11» в VMware

Как удалить аккаунт Gmail и восстановить его
Инструкции

Как удалить аккаунт Gmail и восстановить его

Исправление ошибки VMware VMCIDev VMX
Виртуализация

Исправление ошибки VMware VMCIDev VMX

Hysolate — безопасная песочница для Windows 11
Безопасность

Hysolate — безопасная песочница для Windows 11

Удалить отдельные точки восстановления Windows
Windows

Удалить отдельные точки восстановления Windows

Ограничение CPU процесса в Linux
Linux

Ограничение CPU процесса в Linux