Доступ к своему Home Assistant из сети интернет можно сделать разными способами, тут описывается один из них c помощью TailScale. Не зависимо как у Вас установлен Home Assistant эта инструкция для Вас.
Регистрируемся на сайте Tailscale
Заходим на сайт по адресу: https://taiscale.com

Нажимаем Get Started
Выберите один из способов регистрации, например через гугл, после успешной регистрации предложит выбрать цели использования, выбираем Personal use и нажимаем Next

Регистрация прошла успешно, предложит добавить устройства в сеть

мы будем добавлять устройства ниже
Установка на Homeassistant Core
В России сайт tailscale.com заблокирован и такой способ установки невозможен или Вы просто хотите установить в Docker то перейдите к разделу ниже Установка на Homeassistant Core в Docker
заходим в консоль по ssh и делаем установку:
curl -fsSL https://tailscale.com/install.sh | shПосле установки запускаем Tailscale
tailscale upвыйдет ссылка для авторизации и добавлении машины, копируем ссылку

открываем браузер и вставляем ссылку в браузер, у Вас попросит авторизоваться

входим например через гугл, предложит добавить устройство

нажимаем Connect и выйдет сообщение что устройство добавлено
Теперь заходим в администрирование tailscale и видим наше устройство
имя устройство взято из имени хоста нашего Home Assistnt, его можно изменить при желании нажав на три точки рядом с Share справа и в меню выбрать Edit machine name.
Tailscale при добавлении машины выдает авторизацию на определенный срок (вроде 3 месяца), через этот срок необходимо авторизовать устройство заново, мы отключим эти ограничения нажав на три точки и выбрав Disable key expry
перейдем в консоль и увидим что авторизация завершена
Если Вам достаточно доступа к своему HomeAssistant из сети Tailscale, то есть установив на смартфон приложение Tailscale и авторизовавшись через приложение Вы можете попасть на свой HomeAssistant, то дальнейшую инструкцию можно не читать так как этих шагов достаточно для доступа к Вашему Home Assistant из сети Tailscale, если Вам надо доступ из интернет (например для домочадцев сложно запускать ещё одно приложение), то дальнейшая инструкция Вам поможет открыть доступ через интернет.
Теперь нам надо сделать доступ из глобальной сети интернет, чтобы входить на Homeassistant без подключения к Tailscale со смартфона или другого устройства
Заходим в настройки DNS и делаем как показано на скриншотах
Теперь заходим в Access controls
и вставляем следующий код заменив e-mail на свой
"Groups": {
"group:can-funnel": [
"myemail@gmail.com",
],
},
"nodeAttrs": [
{
"target": ["group:can-funnel"],
"attr": ["funnel"],
},
],Переходим в наши машины и нажимаем на IP адресе нашего устройства
копируем адрес во второй строке и переходим в консоль по ssh и выполняем команду:
tailscale cert СКОПИРОВАННЫЙ АДРЕСпосле выполнения будет такое сообщение:
теперь нам надо включить Funnel, для этого в консоли выполняем команду:
tailscale funnel --bg 8123в ответ должны получить:
Теперь нам надо разрешить доступ к HomeAssistant из прокси, иначе при попытке зайти по https адресу выдаст ошибку 400: Bad Request, заходим в папку HomeAssistant и в файл configuration.yaml добавляем
http:
use_x_forwarded_for: true
trusted_proxies:
- 127.0.0.1Если у Вас HomeAssistant установлен в Docker не в режиме host, то необходимо указать ещё и ip адрес докер сети в которой работает HomeAssistant, у меня он работает в сети 172.100.0.0/24, можно прописать как сеть так и айпи адрес 172.100.0.1
http:
use_x_forwarded_for: true
trusted_proxies:
- 127.0.0.1
- 172.100.0.1Перезагружаем HomeAssistant и может зайти по адресу указанному тут:
то есть в браузере адрес будет выглядеть так: https://ha.my-nna.ts.het без указания порта 8123 так как происходит перенаправление портов
У Вас он будет отличаться там где на рисунке закрыто красным
Установка HAOS или Supervised
Заходим в меню Настройки — Дополнения и нажимаем кнопку в нижнем правом углу Магазин дополнений находим там дополнение Tailscale

и нажимаем УСТАНОВИТЬ, после того как оно установилось нажимаем ЗАПУСТИТЬ

после этого нажимаем ВЭБ-ИНТЕРФЕЙС

Нажимаем кнопку Reauthenticate, попросит авторизоваться

Предложить присоединить устройство к Tailscale

Нажимаем кнопку Connect
Теперь заходим в администрирование tailscale и видим наше устройство
имя устройство взято из имени хоста нашего Home Assistnt, его можно изменить при желании нажав на три точки рядом с Share справа и в меню выбрать Edit machine name.
Tailscale при добавлении машины выдает авторизацию на определенный срок (вроде 3 месяца), через этот срок необходимо авторизовать устройство заново, мы отключим эти ограничения нажав на три точки и выбрав Disable key expry
Если Вам достаточно доступа к своему HomeAssistant из сети Tailscale, то есть установив на смартфон приложение Tailscale и авторизовавшись через приложение Вы можете попасть на свой HomeAssistant, то дальнейшую инструкцию можно не читать так как этих шагов достаточно для доступа к Вашему Home Assistant из сети Tailscale, если Вам надо доступ из интернет (например для домочадцев сложно запускать ещё одно приложение), то дальнейшая инструкция Вам поможет открыть доступ через интернет.
Теперь нам надо сделать доступ из глобальной сети интернет, чтобы входить на Homeassistant без подключения к Tailscale со смартфона или другого устройства
Заходим в настройки DNS и делаем как показано на скриншотах
Теперь заходим в Access controls
и вставляем следующий код заменив e-mail на свой
"Groups": {
"group:can-funnel": [
"myemail@gmail.com",
],
},
"nodeAttrs": [
{
"target": ["group:can-funnel"],
"attr": ["funnel"],
},
],Переходим в HomeAssistant, открываем дополнение Tailscale и нажимаем вкладку Конфигурация и нажимаем в той последовательности как показано на рисунке

Далее ставим галочки и значения как на скриншоте
и нажимаем СОХРАНИТЬ, предложит перезапустить дополнение
Соглашаемся и нажимаем ПЕРЕЗАПУСТИТЬ
Теперь нам надо разрешить доступ к HomeAssistant из прокси, иначе при попытке зайти по https адресу выдаст ошибку 400: Bad Request, заходим в папку HomeAssistant и в файл configuration.yaml добавляем
http:
use_x_forwarded_for: true
trusted_proxies:
- 127.0.0.1Теперь можем зайти по адресу указанному тут:
то есть в браузере адрес будет выглядеть так: https://ha.my-nna.ts.het без указания порта 8123 так как происходит перенаправление портов
У Вас он будет отличаться там где на рисунке закрыто красным
Установка на Homeassistant Core в Docker
Есть несколько способов организации контейнера tailscale, в данном примере мы рассмотрим несколько вариантов. Мы рассмотрим разные настройки сети Docker, подробно про сети и организацию Docker контейнеров можно почитать тут
Сначала нам надо сделать доступ из глобальной сети интернет, чтобы входить на Homeassistant без подключения к Tailscale со смартфона или другого устройства
Заходим в настройки DNS и делаем как показано на скриншотах
Теперь заходим в Access controls
и вставляем следующий код заменив e-mail на свой
"Groups": {
"group:can-funnel": [
"myemail@gmail.com",
],
},
"nodeAttrs": [
{
"target": ["group:can-funnel"],
"attr": ["funnel"],
},
],Мы организуем только доступ к Homeassistant из интернет по протоколу https, через сеть tailscale другие службы (Node-red, zigbee2mqtt, ssh и т.д.) доступны не будут и доступ к Homeassistant и к другим службам из сети Tailscale
Для настройки доступа только в HomeAssitant из интернет без доступа к другим службам надо выяснить в какой сети находится HomeAssistant и какой у него ip адрес, у меня установлен HomeAssistant по инструкции Быстрая установка системы умного дома HomeAssistant, и в файле docker-compose.yaml есть название сети (mylan) и ip адрес (172.100.0.3)
добавим ключ авторизации, для этого заходим в админку и делаем как показано на скриншоте
пишем имя ключа, если ключ будет использован на нескольких устройствах то ставим галочку Reusable и нажимаем Generate key
сгенерированный ключ надо скопировать поскольку больше доступа к просмотру ключа не будет
Создаем папку tailscale
mkdir tailscaleсоздаем файл docker-compose.yaml
nano docker-compose.yamlвставляем туда следующее содержимое для доступа только к Homeassistant из интернет без доступа к службам из сети Tailscale:
services:
tailscale-nginx:
container_name: tailscale
image: tailscale/tailscale:latest
hostname: tailscale-nginx
environment:
- TS_AUTHKEY=tskey-auth-key
- TS_STATE_DIR=/var/lib/tailscale
- TS_USERSPACE=false
- TS_SERVE_CONFIG=/ts-config.json
- TS_HOSTNAME=mydocker
volumes:
- ./tailscale/state:/var/lib/tailscale
- ./ts-config.json:/ts-config.json
- /dev/net/tun:/dev/net/tun
devices:
- /dev/net/tun:/dev/net/tun
cap_add:
- net_admin
- sys_module
restart: unless-stopped
networks:
netlemp:
ipv4_address: 172.100.0.30
nginx:
container_name: ts_nginx
image: nginx
depends_on:
- tailscale-nginx
network_mode: service:tailscale-nginx
networks:
netlemp:
external:
name: mylanвместо tskey-auth-key вставьте сгенерированный ключ
где mylan — имя сети в которой запущен контейнер HomeAssistant
ipv4_address: 172.100.0.30 — IP адрес контейнера Tailscale
— TS_HOSTNAME=mydocker — имя машины в Tailscale, можно заменить на другое удобное для Вас
для доступа только к Homeassistant из интернет без доступа к службам из сети Tailscale:
services:
tailscale-nginx:
container_name: tailscale
image: tailscale/tailscale:latest
hostname: tailscale-nginx
environment:
- TS_AUTHKEY=tskey-auth-key
- TS_EXTRA_ARGS=--advertise-tags=tag:container
- TS_STATE_DIR=/var/lib/tailscale
- TS_USERSPACE=false
- TS_SERVE_CONFIG=/ts-config.json
- TS_HOSTNAME=mydocker
volumes:
- ./tailscale/state:/var/lib/tailscale
- ./ts-config.json:/ts-config.json
- /dev/net/tun:/dev/net/tun
devices:
- /dev/net/tun:/dev/net/tun
cap_add:
- net_admin
- sys_module
restart: unless-stopped
network_mode: host
nginx:
container_name: ts_nginx
image: nginx
depends_on:
- tailscale-nginx
network_mode: service:tailscale-nginxдалее создаем файл: ts-config.json
nano ts-config.jsonсо следующим содержимым:
{
"TCP": {
"443": {
"HTTPS": true
}
},
"Web": {
"${TS_CERT_DOMAIN}:443": {
"Handlers": {
"/": {
"Proxy": "http://172.100.0.3:8123"
}
}
}
},
"AllowFunnel": {
"${TS_CERT_DOMAIN}:443": true
}
}Где «http://172.100.0.3:8123″ — адрес контейнера HomeAssistant если доступ только к Homeassistant, если доступ к HomeAssistant и другим службам то надо адрес указать 127.0.0.1
запускаем контейнер:
docker compose up -dТеперь нам надо разрешить доступ к HomeAssistant из прокси, иначе при попытке зайти по https адресу выдаст ошибку 400: Bad Request, заходим в папку HomeAssistant и в файл configuration.yaml добавляем
http:
use_x_forwarded_for: true
trusted_proxies:
- 127.0.0.1
- 172.100.0.1если Вы сделали доступ не только к HomeAssistant но и к другим службам, то можно не писать 172.100.0.1
Теперь можем зайти по адресу указанному тут:
то есть в браузере адрес будет выглядеть так: https://ha.my-nna.ts.het без указания порта 8123 так как происходит перенаправление портов
У Вас он будет отличаться там где на рисунке закрыто красным. Доступ к другим службам по IP адресу сети Tailscale и порту
Метки: Tailscale















