Tailscale — удалённый доступ к контроллеру Wiren Board без своего VPN-сервера
Описание
Tailscale — VPN-сервис, который работает поверх WireGuard и позволяет получить доступ к контроллеру даже, если у вас нет своего VPN-сервера и вам не подходит Wiren Board Cloud.
Важно понимать, что при использовании Tailscale, между вами и контроллером будет посредник в виде облака Tailscale, поэтому для критически важных систем, возможно, стоит использовать OpenVPN в связке со своим личным VPN-сервером или наш Wiren Board Cloud в варианте On-premise.
Установка
Учётная запись
Вам потребуется учётная запись, которую можно создать на сайте https://tailscale.com/, справа вверху кнопка Use Tailscale.
Контроллер
Установка клиента на контроллер для релиза wb-2307 и новее:
- Обновите список пакетов и установите tailscale:
apt update && apt install tailscale
- Перезагрузите контроллер, чтобы подгрузились модуля ядра:
reboot
- Снова зайдите в консоль и подключите контроллер к облаку Tailscale командой:
# tailscale up To authenticate, visit: https://login.tailscale.com/a/5d51dbc87007
- в ответ на команду будет показана разовая ссылка: перейдите по ней, авторизуйтесь на сайте Tailscale и контроллер появится в списке ваших устройств.
- Чтобы узнать IP-адрес контроллера в сети Tailscale, введите команду:
# tailscale ip -4 100.83.15.81
Сразу после подключения контроллера к облаку, он будет доступен в личном кабинете, где вы сможете:
- узнать текущий статус устройства;
- посмотреть его IP-адрес
- или создать ссылку совместного доступа к устройству (Share Link).
По умолчанию ссылка совместного доступа активна 30 дней, но её можно отозвать в любое время.
- Личный кабинет Tailscale
Компьютер
Теперь, чтобы получить доступ к вашему контроллеру, нужно установить на компьютер клиентское приложение Tailscale, которое объединит контроллер и компьютер в единую сеть.
Способы установки и настройки немного отличаются в зависимости от используемой вами операционной системы, полную инструкцию для вашей ОС смотрите по ссылке Download Tailscale.
Здесь мы приведём основной алгоритм:
- Скачиваете и устанавливаете клиент Tailscale.
- Запускаете его и переходите по ссылке, которую выведет приложение.
- Авторизуетесь в браузере на сайте Tailscale и ваш компьютер автоматически добавится в список устройств.
С этого момента вы получаете доступ к своей собственной VPN-сети на базе серверов Tailscale и можете работать со всеми устройствами так, как если бы они были в одной локальной сети.
Использование
После установки клиентов на компьютер и контроллер, оба устройства находятся в одной локальной сети, поэтому вы можете подключаться к контроллеру любым удобным способом:
- К консоли контроллера по SSH.
- Через веб-браузер к веб-интерфейсу контроллера или другого установленного программного обеспечения.
- К MQTT-брокеру через MQTT Explorer.
- С помощью десятков других способов, которые вам понадобятся. Например, с настольного клиента одной из SCADA-систем.
Доступ к локальной сети через контроллер (Subnet Router)
По умолчанию Tailscale обеспечивает доступ только к самому контроллеру. Чтобы получить доступ к другим устройствам локальной сети, контроллер Wiren Board необходимо настроить как Subnet Router с включённым NAT.
Разрешение пересылки трафика
Включите IP-forwarding в ядре Linux:
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
Объявление маршрутов локальной сети
Определите адрес локальной сети (например, 192.168.0.0/24) и объявите маршрут:
tailscale up --advertise-routes=192.168.0.0/24
Настройка в панели управления Tailscale
- Перейдите в Admin Console.
- Найдите контроллер в списке устройств.
- Выберите More → Edit route settings.
- В разделе Subnet routes включите объявленный маршрут и сохраните изменения.
Настройка NAT (Masquerading)
Определите интерфейс локальной сети (обычно eth0 или wlan1):
ip addr
Включите маскарадинг через nftables:
nft add table ip nat
nft add chain ip nat postrouting { type nat hook postrouting priority 100 ; }
nft add rule ip nat postrouting oifname "wlan1" masquerade
Замените wlan1 на фактический интерфейс.
Для сохранения правил после перезагрузки установите пакет:
apt update && apt install iptables-persistent
Настройка на стороне компьютера
- Windows / macOS: включите опцию Use Tailscale Subnets в настройках клиента.
Приостановка доступа или удаление сервиса
Если удалённый доступ к контроллеру больше не нужен, вы можете его приостановить, или удалить сервис полностью.
Приостановить доступ:
tailscale down- контроллер останется в списке устройств на сайте Tailscale, но у него будет статус «отключен» и попасть на него будет невозможно.
Восстановить доступ:
tailscale up
Удалить клиент Tailscale полностью:
apt purge tailscale
После удаления клиента Tailscale, удалите контроллер в личном кабинете.
Решение проблем
Проблемы с обновлением пакетов
Если вы устанавливали Tailscale вручную через сторонний репозиторий, автоматические обновления могут перестать работать. В этом случае необходимо переключиться на официальный репозиторий Wiren Board.
- Удалите старый список источников:
rm /etc/apt/sources.list.d/tailscale.list
- Обновите список пакетов и установите Tailscale из репозитория Wiren Board:
apt update && apt install tailscale
Проблемы при настройке Subnet Router
Если после настройки маршрутизации устройства в локальной сети по-прежнему недоступны, проверьте следующие пункты.
Конфликт IP-адресов
Самая частая причина — совпадение подсетей:
- домашняя сеть (где находится компьютер);
- сеть на объекте (где установлен Wiren Board).
Например, обе используют диапазон 192.168.1.0/24.
В этом случае компьютер будет искать устройство в своей физической сети, не отправляя трафик в Tailscale-туннель.
Решение: Измените подсеть на одном из объектов на нетипичную, например:
192.168.188.0/2410.14.20.0/24
Проверка прохождения пакетов (tcpdump)
Для диагностики используйте утилиту tcpdump на контроллере.
- Установите утилиту:
apt update && apt install tcpdump
- Проверьте входящий трафик из Tailscale-туннеля:
tcpdump -i tailscale0 icmp
- Запустите
pingс компьютера. - * Если пакеты с вашего Tailscale-IP не появляются — проблема на стороне клиента ПК или в ACL (правилах доступа) в панели Tailscale.
- * Если пакеты видны — трафик до контроллера доходит.
- Проверьте исходящий трафик в локальную сеть:
# Замените wlan1 на ваш локальный интерфейс (eth0 / eth1) tcpdump -i wlan1 icmp
- Если ICMP-запросы (request) видны, а ответов (reply) нет — значит, не настроен или не работает NAT (Masquerade).
- Локальные устройства не знают, куда отправлять ответ.
Ошибка «Chain 'MASQUERADE' does not exist»
На актуальных релизах Wiren Board используется система nftables.
При попытке использовать классический синтаксис iptables может появляться ошибка:
Chain 'MASQUERADE' does not exist
Решение:
Используйте настройку NAT через команду nft, как описано в разделе выше.
Статус сетевого интерфейса
Убедитесь, что интерфейс, через который транслируется локальная сеть, активен.
Проверка:
ip link show wlan1
(или eth0, eth1 — в зависимости от конфигурации)
Если интерфейс находится в состоянии DOWN, трафик через него проходить не будет.
Изоляция клиентов в Wi-Fi сети
Если контроллер подключён к стороннему Wi-Fi роутеру в режиме клиента, проверьте настройки роутера.
На многих устройствах есть функция AP Isolation (изоляция клиентов), которая запрещает прямой обмен трафиком между устройствами в одной сети.
Если эта опция включена, Subnet Router работать не будет.