Приватные HTTP-туннели
Приватный режим закрывает HTTP- или HTTPS-туннель для анонимных посетителей. Доступ сохраняется у владельца и у ролей, которым он разрешён правилами сервиса.
Описание
Общее описание функционала
Приватные HTTP-туннели позволяют владельцу скрыть туннель от анонимного доступа по URL туннеля. Пока туннель помечен как приватный, входящие запросы без действующего токена доступа (ссылка-приглашение или cookie после перехода по такой ссылке) получают отказ. В публичном режиме (по умолчанию) любой, кто знает URL туннеля, может обратиться к нему с учётом общих ограничений сервиса (лимиты, списки IP и тариф). Владелец может вернуть туннель в публичный режим; при этом все ранее выданные ссылки доступа отзываются. Функция доступна только для протоколов HTTP/HTTPS и на тарифах с правом приватных туннелей.
Панель управления
В личном кабинете на странице Туннели режим меняется у активного HTTP- или HTTPS-туннеля. Откройте у туннеля Подробнее → Все параметры и действия и нажмите Сделать приватным или Сделать публичным. Приватный туннель в списке помечен надписью Приватный доступ.
| Режим | Кто может открыть URL туннеля |
|---|---|
| Публичный (по умолчанию) | Любой посетитель по известному URL (с учётом лимитов и политик доступа) |
| Приватный | Владелец, администратор и гости с действующей ссылкой доступа; анонимные запросы отклоняются |
Тариф: перевести туннель из публичного в приватный могут пользователи с правом «приватные туннели» на платном тарифе. На бесплатном тарифе кнопка Сделать приватным неактивна; при наведении показывается подсказка со ссылкой на смену тарифа. Вернуть приватный туннель в публичный режим можно на любом тарифе.
Подтверждение: при переходе приватный → публичный сервис запрашивает подтверждение, потому что все активные ссылки доступа будут отозваны. Переход публичный → приватный выполняется сразу, без дополнительного диалога.
В админ-консоли в списке всех туннелей тот же режим переключается флажком Приватный доступ прямо в карточке туннеля.
Как пользователь может использовать
- Разработчик на платном тарифе создаёт HTTP-туннель и в дашборде нажимает Сделать приватным, чтобы случайные посетители не видели локальный сервис.
- Владелец выдаёт коллеге ссылку доступа через API (см. справочник API) и отзывает её после демо.
- Пользователь возвращает туннель в публичный режим для открытого тестирования — после подтверждения в дашборде.
- Пользователь на бесплатном тарифе видит неактивную кнопку Сделать приватным и подсказку о смене тарифа; при создании туннель остаётся публичным.
Как это реализовано в сервисе
При создании или изменении туннеля сервер применяет эффективную видимость: без права на тарифе запрос на приватность принудительно переводит туннель в публичный режим. Команда смены видимости через API или кнопка в дашборде меняет флаг публичности; переход в приватный режим проверяет тариф. Прокси для приватного туннеля проверяет токен в параметре запроса, заголовке или cookie. Ссылки создаются и отзываются через API. При смене тарифа без права сервер синхронизирует приватные туннели в публичные и очищает токены.
Справочник API
API (приватные туннели)
Смена видимости
Через дашборд: кнопки Сделать приватным и Сделать публичным в разделе Подробнее → Все параметры и действия на странице Туннели; в админ-консоли — флажок Приватный доступ в карточке туннеля. Обе кнопки вызывают ту же операцию, что и API ниже.
PATCH /api/tunnels с телом:
{
"id": "<tunnel_id>",
"action": "set_visibility",
"is_public": false
}
is_public: false— сделать туннель приватным (только HTTP/HTTPS).is_public: true— вернуть публичный режим; все share-токены отзываются.
Требуется аутентификация владельца или администратора. На тарифе без private-tunnels — 403 с code: feature_disabled.
Ссылки доступа
GET /api/tunnels/{id}/share-links— список активных ссылок (только владелец).POST /api/tunnels/{id}/share-links— создать ссылку (тело:label, опциональноexpires_at).DELETE /api/tunnels/{id}/share-links/{token_id}— отозвать ссылку.
Создание ссылок разрешено только для приватных HTTP/HTTPS туннелей.
Доступ гостя
Гость открывает URL с параметром токена или проходит bootstrap; сервис выставляет cookie доступа до истечения срока ссылки.
Ошибки
Ошибки (приватные туннели)
| Ситуация | HTTP | Сообщение / код |
|---|---|---|
| Тариф без приватных туннелей (PATCH set_visibility → private) | 403 | feature_disabled, feature_id: private-tunnels |
| Приватность для TCP/UDP | 400 | private visibility requires http or https tunnel |
| Создание share-link для публичного туннеля | 400 | share links only for private tunnels |
| Анонимный доступ к приватному туннелю | 403 | forbidden (без валидного токена) |
| Просроченный или отозванный токен | 403 | forbidden |
При понижении тарифа приватные туннели автоматически переводятся в публичный режим без отдельного запроса пользователя.
Ограничения
Границы использования
- Приватный режим поддерживается только для HTTP и HTTPS; TCP-туннели всегда публичны по политике сервиса.
- Кнопки Сделать приватным и Сделать публичным в дашборде показываются только для активных HTTP/HTTPS-туннелей. Чтобы сменить режим туннеля на паузе, сначала возобновите его.
- На тарифе без права приватных туннелей новый туннель при создании остаётся публичным; кнопка Сделать приватным в дашборде неактивна.
- Переход в публичный режим безвозвратно отзывает все активные ссылки доступа для туннеля.
- Управление ссылками доступа (создание и отзыв) в дашборде не предусмотрено — только через API; в интерфейсе доступна смена режима публичный/приватный.
- Если администратор убирает приватные туннели из тарифа, существующие приватные HTTP/HTTPS-туннели его пользователей становятся публичными в фоне. Их ссылки доступа отзываются безвозвратно; возврат функции в тариф не восстанавливает старые ссылки.