termal.in

← Блог

Доступ к Home Assistant или Grafana удалённо без проброса портов

· Termalin Team homelabconnectorremote-accessself-hostedcomparison

Ваш Home Assistant живёт на http://homeassistant.local:8123, Grafana — на :3000, и оба застряли в домашней сети. Вы хотите открыть их в браузере с работы, с телефона или дать кому-то доступ — не превращая роутер в поверхность для атаки. Вот пять способов это сделать, во что каждый реально обходится и пошаговая инструкция для варианта «только по приглашению».

Почему бы просто не пробросить 8123 или 3000

Проброс порта на роутере выставляет страницу входа — а иногда и открытую панель — перед каждым ботом в интернете. Home Assistant и Grafana, как только их находят, непрерывно прощупывают, и достаточно переиспользованного пароля или незакрытой CVE. А carrier-grade NAT (частый на домашнем оптоволокне и 4G/5G) нередко и вовсе не даёт пробросить порт. Каждый вариант ниже существует ради того, чтобы обойтись без этого единственного открытого порта.

Пять вариантов

ВариантПубличный URL?На устройстве того, кто смотритРаботает не только с HA?Стоимость
Nabu Casa (HA Cloud)Да, ваш собственный поддоменНичегоНет — только Home AssistantПодписка
Cloudflare TunnelПублично или с проверкой AccessНичего или вход через AccessДаЕсть бесплатный тариф; нужен домен
Tailscale / WireGuardНет — приватная mesh-сетьVPN-клиент, вездеДаЕсть бесплатный тариф
Обратный прокси + проброс портаДа — в интернетеНичегоДаВаше время + выставление наружу
Внутренний сайт TermalinНет — приглашение по emailТолько браузерДаТариф Pro

Nabu Casa — официальное облако Home Assistant. Это самый гладкий путь для Home Assistant: удалённый интерфейс, стабильный URL, и он финансирует проект, — но он покрывает только Home Assistant, а не вашу Grafana или Portainer.

Cloudflare Tunnel (cloudflared) идёт наружу из демона в вашей локальной сети, поэтому порт не открывается. Это мощно и есть бесплатный тариф, но чтобы панель осталась частной, нужно владеть доменом и поставить перед ним политику Cloudflare Access; без неё имя хоста — публичный URL, по которому может зайти любой.

Tailscale или WireGuard строит приватную mesh-сеть — наружу ничего не выставлено, и это отлично для ваших собственных устройств. Подвох: каждый, кто подключается, ставит и входит в VPN-клиент, а это трудно продать члену семьи или разовому гостю.

Обратный прокси с проброшенным портом (nginx, Caddy, Traefik) даёт чистый HTTPS, но вы всё равно публикуете сервис в интернет и сами отвечаете за каждый патч и за аутентификацию.

Внутренний сайт Termalin стоит особняком: публичного URL нет вообще, и на стороне того, кто смотрит, никакого клиента. Connector в вашей локальной сети идёт наружу, и панель открывается по частному адресу вида https://<10 символов>.termal.ink — для вас и для тех, кого вы пригласите по email. Это самый быстрый способ дать одну панель конкретному человеку. Компромиссы честные: нужен тариф Pro, есть мягкий лимит 5 ГБ в день на ссылку и нет постоянной публичной ссылки — плюс, если вам нужна приватность, и ограничение, если вам нужна публичная страница статуса.

Пошагово с Connector

Это работает для Home Assistant, Grafana, Portainer, Proxmox — для чего угодно с веб-интерфейсом в вашей сети, потому что WebSocket проходят насквозь, так что живые обновления HA и живые панели Grafana ведут себя так же, как в локальной сети.

  1. Установите Connector на машину с Home Assistant или на любую постоянно включённую машину в той же сети — Raspberry Pi, NAS, небольшой VPS в локальной сети. Одна строка из «Получить команду установки» в кабинете; он идёт наружу и никогда не слушает.
  2. Добавьте сайт. В веб-кабинете откройте карточку «Внутренние сайты» (рядом с «Резервными копиями») → «Добавить сайт». Выберите Connector и введите адрес таким, каким его видит эта машина: http://localhost:8123, если Connector на хосте с HA, или http://10.0.0.5:8123 с другой машины. Отметьте «Внутренний сайт использует https», если ваша панель отдаёт TLS (самоподписанный сертификат — не проблема).
  3. Добавьте и откройте. Панель откроется в новой вкладке по своему адресу на termal.ink. Вход на неё действует 12 часов; сам по себе адрес никого больше не впускает.

Разрешены только частные адреса — localhost, 10.x, 172.16–31.x, 192.168.x, link-local, 100.64/10 у Tailscale, IPv6 ULA — а публичный адрес отклоняется по умолчанию.

Поделиться с членом семьи на 7 дней

В кабинете поделитесь сайтом с одним email на 24 часа или 7 дней (до 25 человек на ссылку одновременно; повторный доступ продлевает срок). Человек получает письмо-приглашение и входит по 6-значному коду — аккаунт Termalin создавать не нужно. Он видит только эту одну панель, и когда доступ истекает, его сессия завершается. Вы можете «Убрать» одного человека или «Выключить» ссылку целиком, и каждое открытие попадает в журнал активности сайта. Для общего доступа нужен платный тариф; на пробном периоде сайты можно открывать, но не делиться ими.

Когда выбрать что-то другое

  • Только Home Assistant и без лишних хлопот → Nabu Casa, заодно поддержите проект.
  • У вас есть домен и нужен долговечный, возможно публичный URL → Cloudflare Tunnel с политикой Access.
  • Подключаетесь только вы, со своих устройств → Tailscale или WireGuard.
  • Одна-две панели для поимённо названных людей, ничего не выставлено наружу → внутренний сайт Termalin.

Про SSH-сторону домашней лаборатории за NAT см. SSH за NAT без проброса портов и SSH на домашний NAS или сервер.

Попробуйте на одном хосте.

Termalin — быстрый SSH-клиент для вас и ваших агентов.

Бесплатный тариф · 14 дней Pro бесплатно · цены

Добавьте Termalin в предпочитаемые источники в Google