termal.in

Внутренние сайты · за NAT · Connector

Откройте Grafana или Home Assistant откуда угодно — без проброса портов

У вас в локальной сети работает панель — Grafana, Home Assistant, Portainer, админка роутера, — и вы хотите открыть её в браузере где-то ещё, не выставляя наружу. Установите Termalin Connector на этой машине или на любой машине в её сети, добавьте сайт в кабинете и обращайтесь к нему по частному адресу вида https://<10 символов>.termal.ink. Connector идёт наружу, поэтому ничто не слушает и ни один порт не пробрасывается. Публичной ссылки нет: только вы и те, кого вы пригласите по email.

Только частные адреса · без публичной ссылки · Pro и Team (14 дней бесплатно)

01  /  проблема

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

Проброс порта панели в интернет выставляет экран входа — или, хуже того, открытый интерфейс — перед каждым сканером в интернете. Привычные альтернативы сами по себе целый проект: VPN означает клиент на каждом устройстве, с которого вы подключаетесь, и учётную запись для каждого, кому нужен доступ; обратный прокси с доменом и политиками доступа — слишком много деталей ради одной внутренней страницы. Внутренний сайт обходит всё это: Connector только идёт наружу, а страница доступна вам и поимённо названным людям — и больше никому.

02  /  как это работает

Машина идёт наружу. Вы открываете ссылку

  • ▸Только исходящее. Connector держит соединение к termal.in и никогда не слушает — нечего пробрасывать и нечего сканировать, именно это и позволяет ему работать за NAT, CGNAT и строгим файрволом.
  • ▸Собственный частный адрес. Каждому сайту достаётся адрес из 10 символов вида https://k7m4p9qrst.termal.ink/. termal.ink — отдельный от termal.in сайт; его страницы несут noindex и держатся вне поиска.
  • ▸Настоящая вкладка браузера. Панель загружается как любой сайт — на машину, за которой вы сидите, ничего ставить не нужно.

03  /  настройка

Сайт примерно за минуту

В веб-кабинете откройте карточку «Внутренние сайты» (рядом с «Резервными копиями») и нажмите «Добавить сайт»:

  • ▸Connector, который достаёт до сайта.
  • ▸Адрес, каким его видит машина Connector — например, http://10.0.0.5:8080 или http://localhost:3000.
  • ▸Необязательное имя (до 80 символов), использует ли внутренний сайт https и отправлять ли собственный адрес ссылки как имя хоста (для приложений, придирчивых к заголовку Host).

Нажмите «Добавить и открыть» — и панель откроется в новой вкладке. В контекстном меню Connector также есть пункт «Открыть внутренний сайт…». Десктоп-приложение показывает список ваших сайтов (Настройки → «Внутренние сайты») и открывает их уже с выполненным входом; добавление и общий доступ делаются в веб-кабинете, а на мобильном виден список.

04  /  что работает

Живые панели, в том числе WebSocket

Трафик идёт потоком без буферизации, а WebSocket проходят насквозь — так что то, что ломается на наивном прокси, здесь просто работает:

  • ▸Живые панели Grafana, Home Assistant, Portainer и Proxmox ведут себя так же, как в локальной сети.
  • ▸http или https, любой порт. Самоподписанный или внутренний сертификат на панели — не проблема: отметьте «Внутренний сайт использует https»; сертификат на этом участке не проверяется, потому что он остаётся внутри сети Connector.
  • ▸Только частные адреса. localhost, 10/8, 172.16/12, 192.168/16, link-local, 100.64/10 у Tailscale, IPv6 ULA — а также имена хостов, если они разрешаются в частный адрес. Публичный адрес отклоняется.

05  /  общий доступ

Впустите коллегу или члена семьи — на день или на неделю

Делитесь сайтом по одному email за раз, на 24 часа или 7 дней (повторный доступ продлевает срок), до 25 человек на одну ссылку одновременно. Сначала нужно подтвердить собственный email.

  • ▸Человек получает письмо-приглашение с персональной ссылкой и входит по 6-значному коду, который приходит на этот адрес (действует 10 минут, пять попыток). Любой другой, кто откроет адрес сайта, увидит только «Эта ссылка не работает» — ничто не выдаёт, что там есть сайт.
  • ▸Аккаунт Termalin не нужен — им достаточно кода.
  • ▸Они видят только эту одну панель и только пока действует доступ; когда он истекает, их сессия завершается.

06  /  модель безопасности

Кто может войти и как отозвать доступ

  • ▸Нет публичного режима. Свой сайт вы открываете по одноразовой ссылке (действует 120 секунд), которая выполняет вход на него на 12 часов; все остальные приглашаются по email.
  • ▸Запертая cookie. Cookie сессии привязана только к этому адресу (host-only), с префиксом __Host-, флагами HttpOnly, Secure и SameSite=Lax, и удаляется до того, как что-либо дойдёт до вашей панели.
  • ▸Мгновенный отзыв. «Убрать» снимает доступ у одного человека и сразу останавливает его открытые страницы; «Выключить» сбрасывает ссылку для всех. Если тариф откатывается на Free, те, с кем вы делились, видят «доступ прекращён».
  • ▸Журнал активности это фиксирует: когда сайт был создан, открыт, расшарен, открыт тем, с кем вы поделились, когда у кого-то сняли доступ или сайт выключили.

07  /  сравнение

По сравнению с туннель-сервисом, Tailscale или VPN

ПодходПубличная ссылка?У того, кто открываетКогда подходит
ngrok / туннель-сервисДа — любой, у кого есть URLНичегоБыстрое публичное демо
Cloudflare TunnelПублично или по политике AccessНичего или вход через AccessУ вас есть домен и нужен публичный или ограниченный политикой доступ
Tailscale / WireGuardНет — приватная mesh-сетьVPN-клиент на каждом устройствеВсе, кто подключается, могут поставить клиент
Обратный прокси + проброс портаДа — в интернетеНичегоВы согласны выставить его наружу
Внутренний сайт TermalinНет — приглашение по emailТолько браузерОдна или несколько панелей, доступных поимённо названным людям

Компромисс честный: постоянной публичной ссылки нет, и есть мягкий лимит 5 ГБ в день на ссылку — для частной панели это плюс, для публичной — ограничение. Пошаговый разбор для домашней лаборатории — в статье доступ к Home Assistant или Grafana удалённо (на английском).

08  /  тарифы и лимиты

Часть тарифов Pro и Team

Внутренним сайтам нужен Connector, поэтому они входят в платные тарифы.

  • ▸Free: не входит. Пробный период: сайты можно открывать, но не делиться ими.
  • ▸Pro и Team: без ограничения на число сайтов.
  • ▸5 ГБ трафика на ссылку и 20 ГБ на аккаунт в сутки по UTC — мягкий тормоз, а не жёсткий стоп: текущая передача завершается, а дальше показывается короткая страница «зайдите завтра». Один запрос ограничен 1 ГБ.
  • ▸TLS при передаче, не сквозное шифрование. Трафик идёт по TLS и расшифровывается на прокси, чтобы быть переданным дальше.

Посмотреть цены →

Вопросы и ответы

Ссылка публичная — зайдёт любой, у кого она есть?

Нет. Режима «публично» или «доступ по ссылке для всех» не существует. Вы открываете сайт, войдя в свой аккаунт; все остальные должны быть приглашены по email и войти по одноразовому коду. Утёкшая ссылка сама по себе бесполезна.

Нужно ли открывать порт или настраивать VPN?

Ни то ни другое. Connector устанавливает исходящее соединение с termal.in и никогда не слушает порт, поэтому на роутере нечего пробрасывать, а сканерам нечего найти. Никто из тех, с кем вы делитесь, не ставит VPN-клиент — они просто открывают ссылку в браузере.

На какие адреса можно направить сайт?

На любой частный адрес, до которого достаёт машина Connector, по http или https, на любом порту: localhost, 10.x, 172.16–31.x, 192.168.x, link-local, диапазон Tailscale 100.64/10 и IPv6 ULA. Имена хостов разрешены, если они разрешаются в частный адрес. Публичные интернет-адреса отклоняются.

Работает ли это с самоподписанным сертификатом?

Да. Если ваша панель отдаёт https с самоподписанным или внутренним сертификатом, отметьте «Внутренний сайт использует https». Сертификат на этом участке не проверяется — эта часть пути остаётся внутри собственной сети Connector.

Можно ли добавить сайт или поделиться им с телефона?

Добавление и общий доступ делаются в веб-кабинете. Десктоп-приложение показывает список ваших сайтов и открывает их уже с выполненным входом; на мобильном виден список. Так что добавляйте и делитесь из браузера или с десктопа, а открывайте откуда угодно.

Это сквозное шифрование?

Нет, и мы так это не называем. Трафик идёт по TLS от вашего браузера через Cloudflare до прокси, где расшифровывается, чтобы быть переданным дальше на сайт, — поэтому мы говорим TLS при передаче, а не сквозное шифрование.

Разместите свою панель в одной ссылке

Одна строка устанавливает Connector, одна карточка добавляет сайт, и он открывается в браузере откуда угодно — без проброса портов, без VPN, без публичной ссылки.

Pro или Team · 14 дней бесплатно · Connector · SSH за NAT · на домашний NAS (на английском)