Способы настройки удаленного доступа к Home Assistant

Итак, я поставил сервер Home Assistant. Находясь в одной WiFi сети я этим сервером я могу на него заходить, включать-выключать свет, смотреть температуру, и делать все то зачем и нужен HA.

Но, если я ушел, то все, — доступа к серверу нет. А хочется иметь возможность удаленно управлять домашним HA. Чтобы можно было из любого места где есть интернет делать все то же самое что можно делать находясь рядом с сервером. Например, задача, удаленно включать обогрев. Чтобы приезжаешь, а уже тепло.

Перед тем как строить удаленный доступ для Home Assistant, я решил выяснить какие вообще есть способы удаленно заходить на сервер HA. Чтобы понять какой способ лучше всего подходит в моей ситуации.

Я знаю про такие варианты. Вполне возможно что есть еще какие-то способы как можно удаленно заходить на сервер HA (если вы о них знаете, напишите, пожалуйста на ivan@bessarabov.ru, я дополню этот список).

Есть совершенно отличная телеграмм группа про Home Assistant. В этой группе я создал опрос о том кто какой способ использует, вот результаты:

(Когда я создавал этот опрос я еще не знал про сервис nabucasa.com, поэтому такого пункта в опросе нет)

Реальный статический ip адрес

Это самый простой и надежный способ сделать возможность удаленно заходить на свой сервер Home Assistant. Ваш провайдер интернета выделяет вам настоящий ip адрес к которому можно обращаться из интернета. Например, "74.125.232.228". И этот ip адрес не меняется, все время у вас именно такой адрес. Дальше вы на роутере настраиваете проброску портов. Например, в вашей сетей сервер HA живет на адресе http://192.168.1.30:8123 и вы настраиваете на роутере что если человек приходит на ваш реальный http://74.125.232.228:8123, то это все прокидывается на сервер HA http://192.168.1.30:8123 После такой настройки появляется возможность заходить на сервер HA снаружи.

Но лучше всего настройку на этом не закончить, а сделать чтобы доступ к серверу был по протоколу https, а не http. (При использовании http гораздо больше вероятности что у вас украдут логин-пароль для доступа к HA и злоумышленник получит доступ к вашему HA)

У разных провайдеров разные условия для получения реального статического ip адреса:

Итого. Если у вас уже есть реальный статический ip адрес, то вполне возможно что лучше всего вам настроить удаленный доступ к HA с помощью этого ip адреса.

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

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

Реальный динамический ip адрес

Некоторые провайдеры предоставляют своим клиентам реальный ip адрес, но этот адрес иногда меняется. Сегодня у вас реальный ip адрес "74.125.232.228", а завтра уже "74.125.232.4".

Точно так же как и в случае с реальным ip адресом вы пробрасываете порт на роутере. Плюс нужно настроить специальный софт, чтобы заходить снаружи не на айпишник (который меняется), а на специальное имя типа my-domain.duckdns.org. (благодаря софту это имя всегда указывает на тот реальный ip адрес, который у вас сейчас).

Провайдер либо дает реальный динамический ip адрес, либо предоставляет доступ в интернет как-то иначе. Я ни разу не слышал, чтобы можно было дополнительно купить услугу "Динамический реальный ip адрес".

Итого. Если провайдер вам выдает реальный динамический ip адрес, то, скорее всего, вам стоить настроить доступ к HA через duckdns.org.

Серый ip адрес — vpn/ssh туннель

В том случае если у вас нет реального ip адреса, то проброска порта на роутере не предоставит вам удаленный доступ в HA.

Но если у вас есть виртуалка на digitalocean.com или у другого облачного провайдера, то вы можете сделать следующее.

С сервера на котором у вам работает HA можно прокинуть туннель до виртулаки. Дальше вы будете заходить браузером на порт на виртуалке и при этом будете общаться с вашим сервером HA.

Итого. Если у вас нет реального ip адреса, но у вас есть сервер с реальным ip адресом, то этот вариант может вам подойти.

Именно этот способ я использовал для своих серверов HA

Серый ip адрес — использование сервиса роутера Keenetic

Если у вас есть роутер Keenetic, то вы можете использовать сервис, который идет вместе с этим роутером. Вы можете получить адрес в домене *.keenetic.pro или *.keenetic.link и настроить чтобы по этому адресу отвечал сервер Home Assistan, который живет у вас дома. Сервис бесплатный и это будет работать даже если у вас нет реального ip адреса (этот способ можно использовать и в том случае если у вас есть реальный ip адрес, но, на мой взгляд, если у вас реальный ip, то лучше использовать другой способ).

Документация на сайте keenetic.

Серый ip адрес — использование TOR

Еще один вариант как можно получить доступ к серверу HA это использовать TOR. На сервере с HA нужно поднять и настроить специальный софт.

Как результат вы получите адрес вида "abcdef1234567890.onion" плюс специальный токен. Потом вам нужно установить на мобильный специальный ТОР браузер и после этого вы сможете заходить на ваш сервер удаленно.

Серый ip адрес — использование ZeroTier

Это внешний сервис. Существует специальный плагин который позволяет использовать этот сервис — https://community.home-assistant.io/t/home-assistant-community-add-on-zerotier-one/109091.

Серый ip адрес — nabucasa.com

Существует сервис nabucasa.com Можно использовать его для того чтобы удаленно заходить на свой сервер HA.

Сервис платный, стоит $5 в месяц. Но, насколько я понимаю, какая-то часть этих денег (а может быть и все) идет создателям Home Assistant, так что это хорошая идея поддержать разработчиков HA деньгами, чтобы они и дальше улучшали HA.

Иван Бессарабов
ivan@bessarabov.ru

24 декабря 2019

Кстати, у меня есть телеграм канал про Home Assistant: https://t.me/bessarabov_ha