Перейти к основному содержимому

Tailscale

Tailscale demo cover

Tailscale это решение для создания VPN сетей без какой-либо обязательной конфигурации по принципу "установил и забыл".

Советы, фишки, способы применения

🔥 SSH без пароля и возни с приватным ключом

Обожаемая фишка Tailscale. Написал отдельный пост в блоге на этот счет. Почитать можно тут: клик.

Красивые хостнеймы

После добавления устройства ему назначается автоимя. Оно обычно неудобное. На главной странице смените имя на удобное, например dev, prod, nas, services, databases. ssh me@db ведь удобнее, чем ssh me@hetzner-ubuntu-16-04, huh?

disable-auto-name

к сведению

Если вы расшарите кому-то хост, то для такого же удобного ssh user@db человеку нужно будет прописать на странице DNS адрес вашего Tailscale Network. Все можно найти тут: клик (tailnet name, search domains)

VPN, как все привыкли

Так сложилось в мире, что под словом VPN все представляют штуку, которая просто "меняет IP". Tailscale это тоже умеет и называется это exit node. Это режим, при котором устройство выступает в качестве "выходной ноды", т.е. весь трафик будет "выходить в интернет" через нее, т.е. "менять ваш ип".

По умолчанию сервер не будет настроен для использования в качестве exit node. Нужно к tailscale up --ssh добавить --advertise-exit-node, а еще прописать пару строк в /etc/sysctl.conf, либо в папке /etc/sysctl.d. Про "пару строк" поищите на этой странице: тыц (оно под спойлер спрятано).

exit node macos

Сгорает заряд телефона!1!11 👿

На телефе у меня 24/7 включен Tailscale, но к exit node я подключаюсь только по необходимости, так как этот режим неизбежно подсаживает батарею, как и любой другой VPN. Я к тому, что сам Tailscale можете не вырубать для сохранения аккума. Достаточно вырубить подключение к exit node.

ip:port? А может dev:port?

Актуально для разработчиков веб сервисов и тех, кто любит щупать docker. Просто вместо ip:port в строке браузера для открытия сервиса можете писать devicename:port, где devicename это имя девайса в Tailscale, на котором вы запустили веб сервис.

tailname instead of ip

P.S.

Мне еще это не пригодилось, но вроде еще как замену ngrok, вернее CloudFlare Tunnel используют Tailscale Funnel

Локальная дистанционная игра

Люблю поиграть в нарды, покер и деберц с друзьями через приложение CardGames на телефон. При создании сетевой игры приложение показывает баннер в стиле "Скажите друзьям нажать 'Игра по WiFi' и ввести 192.168.1.15". Но я попал в больничку: Wifi нет, друзья сидят дома. Сказал всем скачать Tailscale, дал доступ к Tailnet, дал всем Tailscale IP своего телефона и игра даже не заметила подвоха, что мы в одном WiFi сидим. Мне кажется, даже автор игры такого не ожидал.

Получаем доступ к камерам/принтерам, словно они в локальной сети

На пальцах: у меня есть дом. В доме есть IP камера и комп. Они в одной Wi-Fi сети.

Камера в локальной сети доступна по адресу 192.168.1.10:554, но из интернета недоступна, потому что провайдер выдает "серый IP". Проброс портов в роутере не помогает, покупка белого IP – помогла (но я не хочу за него платить)

Также есть Linux сервер в другой стране, на котором установлен iSpy для просмотра этой камеры

Вот как это выглядит на пальцах:

Задача – сделать камеру доступной с Франции без покупки "белого IP"

Потребуется всегда включенный комп в одной WiFi сети с камерой (подойдет Raspberry Pi) и установленный на нем TailScale. Можно извратиться и попробовать установить Tailscale на роутер, но так получится сделать с очень немногими роутерами

Итак, камера на 192.168.1.10:554. Подсеть 192.168.1.0/24

  1. Если комп на Linux (raspberry pi например), то нужно включить IP Forwarding
  2. Делаем подсеть частью сети Tailscale: sudo tailscale up --advertise-routes=192.168.1.0/24 (без sudo, если windows)
  3. В панели TailScale аппрувим подключенную подсеть в Machines
  4. На нужном хосте, с которого нужен доступ к камерам делаем sudo tailscale up --accept-routes

Вуаля, камера доступна с далекого к камерам хоста по 192.168.1.10:554