Внутренние сайты · за 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 (на английском)