Tailscale на VPS: свой exit node

Сети и VPN
Tailscale на VPS: свой exit node

Tailscale — это mesh-VPN поверх протокола WireGuard, который соединяет ваши устройства в одну частную сеть без ручной настройки ключей и проброса портов. Развернув tailscale vps, вы получаете постоянный узел с публичным адресом: он работает как exit node для выхода в интернет через доверенный IP и как точка доступа к домашней сети из любой точки мира. В этой статье пошагово настроим tailscale exit node на VPS, разберём подсети и типичные проблемы. Всё с реальными командами.

Что такое exit node и зачем он на VPS

В обычном режиме Tailscale соединяет устройства напрямую: ноутбук видит домашний сервер, телефон видит рабочую машину. Но весь остальной трафик (сайты, сервисы) идёт как обычно — через локального провайдера.

Exit node меняет это. Вы назначаете один узел сети «выходным», и другие устройства могут направлять через него весь свой интернет-трафик. Фактически это личный VPN-шлюз:

  • Стабильный IP-адрес для сервисов, которые привязаны к адресу.
  • Единая точка выхода из недоверенных сетей (кафе, отели, публичный Wi-Fi).
  • Обход региональных ограничений на уровне вашего же сервера.

VPS для роли exit node подходит идеально: он всегда онлайн, имеет предсказуемый адрес и достаточную полосу. NAT VPS в Германии от Cheap-Host здесь особенно уместен — трафик выходит через немецкий адрес, а mesh-соединения Tailscale работают через NAT без проблем, потому что не требуют входящего проброса всех портов.

Как Tailscale работает через NAT

Ключевой вопрос для NAT VPS: не помешает ли общий IPv4 и ограниченный набор портов? Ответ — нет, и вот почему.

Tailscale построен так, чтобы соединять узлы за любыми NAT. Он использует технику NAT traversal (пробивание NAT) и координационный сервер, который помогает узлам найти друг друга. Если прямое соединение невозможно, трафик идёт через DERP-реле Tailscale — зашифрованные ретрансляторы. Для узла не требуется входящий открытый порт: соединение всегда инициируется изнутри, наружу.

Это значит, что NAT VPS с общим IPv4 полностью пригоден для Tailscale. Для сравнения — «ручной» WireGuard обычно требует открытого UDP-порта на прослушивание; про его настройку есть отдельная статья про WireGuard на VPS. Tailscale снимает эту заботу автоматически.

Шаг 1: устанавливаем Tailscale на VPS

Официальный установочный скрипт поддерживает основные дистрибутивы. На Debian/Ubuntu:

# Официальный установщик Tailscale
curl -fsSL https://tailscale.com/install.sh | sh

# Проверяем, что демон запущен
sudo systemctl status tailscaled

Если вы предпочитаете не запускать скрипты из сети напрямую, установите из официального репозитория пакетов вручную — инструкции для каждого дистрибутива есть в документации Tailscale. После установки демон tailscaled запускается автоматически.

Шаг 2: включаем IP-форвардинг

Чтобы узел мог маршрутизировать чужой трафик (это и есть роль exit node), в ядре нужно разрешить форвардинг пакетов:

# Разрешаем форвардинг IPv4 (IPv6 на серверах без него можно опустить)
echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.d/99-tailscale.conf

# Применяем без перезагрузки
sudo sysctl -p /etc/sysctl.d/99-tailscale.conf

Без этой настройки узел подключится к сети, но не сможет пропускать через себя интернет-трафик других устройств.

Шаг 3: поднимаем узел как exit node

Теперь авторизуем машину в вашей сети Tailscale и сразу объявляем её выходным узлом:

# Поднимаем интерфейс и анонсируем узел как exit node
sudo tailscale up --advertise-exit-node

Команда выведет ссылку для авторизации — откройте её в браузере и войдите в свою учётную запись Tailscale. После входа узел появится в вашей сети.

Проверяем состояние:

# Статус узла и список пиров
tailscale status

# IP-адрес узла внутри сети Tailscale (100.x.y.z)
tailscale ip -4

Шаг 4: одобряем exit node в админке

По умолчанию новый exit node помечен, но ещё не разрешён к использованию. Зайдите в админ-консоль Tailscale, найдите ваш узел и в его меню включите пункт «Use as exit node» (одобрение маршрутов). Это разовое действие для безопасности — чтобы случайный узел не стал шлюзом без вашего ведома.

Шаг 5: подключаем клиентов через exit node

На клиентском устройстве (ноутбук, телефон) выбираете этот VPS как выходной узел. На Linux-клиенте:

# Направляем весь трафик клиента через exit node
# 100.x.y.z — Tailscale-IP вашего VPS
sudo tailscale up --exit-node=100.x.y.z

# Разрешаем клиенту всё же напрямую ходить в свою локалку
sudo tailscale up --exit-node=100.x.y.z --exit-node-allow-lan-access

Флаг --exit-node-allow-lan-access важен: без него, пока активен exit node, клиент теряет доступ к своим локальным устройствам (принтеру, NAS). На мобильных клиентах и в десктопном приложении exit node выбирается в меню в пару касаний.

Проверить, что трафик действительно идёт через VPS, просто — посмотрите свой внешний IP:

# Внешний IP должен совпасть с адресом VPS
curl -s https://api.ipify.org && echo

Доступ к домашней сети: subnet router

Вторая суперспособность — доступ ко всей домашней сети через один узел. Для этого дома (на любом всегда включённом устройстве: мини-ПК, роутере с поддержкой, Raspberry Pi) поднимается subnet router, который анонсирует свою локальную подсеть в Tailscale.

На домашнем узле:

# Анонсируем домашнюю подсеть 192.168.1.0/24
sudo tailscale up --advertise-routes=192.168.1.0/24

Затем в админ-консоли одобряете анонсированный маршрут (аналогично exit node). После этого любое устройство в сети Tailscale — включая ваш VPS — видит домашние адреса 192.168.1.x напрямую, будто находится в той же локалке. Комбинируя VPS-exit-node и домашний subnet router, вы получаете полноценную частную сеть.

Сравнение сценариев

СценарийЧто настроитьФлаг
Выход в интернет через VPSexit node на VPS--advertise-exit-node
Доступ к домашней сетиsubnet router дома--advertise-routes=...
Использовать exit nodeна клиенте--exit-node=100.x.y.z
Сохранить доступ к локалкена клиенте--exit-node-allow-lan-access

Безопасность узла

Exit node пропускает через себя трафик — отнеситесь к его защите серьёзно. Базовые меры (только защита, ничего атакующего):

  • Держите систему в актуальном состоянии: sudo apt update && sudo apt upgrade.
  • Настройте SSH по ключам и отключите вход по паролю.
  • Ограничьте, кто в вашей Tailscale-сети может использовать exit node, через ACL в админ-консоли.
  • Периодически проверяйте tailscale status — в сети не должно быть незнакомых узлов.

Если помимо Tailscale вы используете и классические SSH-туннели для точечного проброса сервисов, полезен разбор в статье про SSH-туннели на практике.

Автозапуск и стабильность

Демон tailscaled уже настроен на автозапуск через systemd, а состояние авторизации сохраняется между перезагрузками. Дополнительно можно отключить срок действия ключа узла (key expiry) в админ-консоли, чтобы VPS-exit-node не «отваливался» раз в несколько месяцев с требованием повторной авторизации. Для серверного узла это удобно.

Частые вопросы

Работает ли Tailscale на NAT VPS с общим IPv4?

Да. Tailscale специально спроектирован для работы за NAT: узлы соединяются через NAT traversal, а при невозможности прямого соединения используют DERP-реле. Входящий проброс портов не нужен — соединение всегда идёт изнутри наружу. Общий IPv4 на NAT VPS этому не мешает.

Чем Tailscale отличается от обычного WireGuard?

Tailscale построен поверх WireGuard, но добавляет автоматическое управление ключами, обнаружение узлов, обход NAT и удобную админ-консоль. Ручной WireGuard даёт больше контроля, но требует самостоятельной раздачи ключей и открытого порта. Tailscale проще для mesh-сети из многих устройств.

Можно ли использовать VPS одновременно как exit node и subnet router?

Да, роли независимы и совмещаются. Один узел может анонсировать и себя как exit node (--advertise-exit-node), и маршруты к подсетям (--advertise-routes). Флаги указываются в одной команде tailscale up. Оба режима нужно отдельно одобрить в админ-консоли.

Почему клиент теряет доступ к локальной сети при включении exit node?

Потому что весь трафик, включая обращения к локальным адресам, направляется через exit node. Чтобы сохранить доступ к домашним устройствам, добавьте клиенту флаг --exit-node-allow-lan-access. Тогда локальная сеть остаётся доступной напрямую, а интернет идёт через VPS.

Сколько ресурсов нужно VPS для роли exit node?

Для личного использования и небольшой команды хватает минимальной конфигурации. Tailscale нетребователен к процессору и памяти, а нагрузка определяется в основном шириной канала. NAT VPS начального уровня справляется с задачей exit node без запаса ресурсов.

Итог

Свой exit node на Tailscale — это личный VPN-шлюз и доступ к домашней сети за десять минут настройки, без возни с ключами и пробросом портов. Для этой задачи с запасом подойдёт тариф NAT Base за 99₽/мес — трафик Tailscale работает через NAT без нареканий, сервер выдаётся за 45–60 секунд. Возьмите NAT VPS в Cheap-Host и соберите свою частную сеть.

Читайте также