Перейти к основному содержимому

HTTP туннель

Обзор

HTTP туннель позволяет предоставить доступ к сайту, API, GraphQL и Websocket-серверам.

Примеры

Базовый пример

tuna http 8080

С передачей IP-адреса

tuna http 10.0.0.1:8080

С зарезервированным адресом

На платном тарифе можно резервировать адреса и после перезапуска туннеля адрес останется прежним:

tuna http 8080 --subdomain=billing

В unix системах также можно использовать переменную окружения TUNA_SUBDOMAIN:

TUNA_SUBDOMAIN="billing" tuna http 8080
warning

Если вы видите ошибку Domain already reserved, значит домен в этой локации уже занят другим пользователем, попробуйте другое имя.

tuna http 8080 --subdomain=any-you-name

Резервирование происходит автоматически при добавлении аргумента. Все зарезервированные вами домены можно посмотреть в личном кабинете.

Файловый сервер

tuna http --file-server ./

С поддержкой одностраничных приложений:

tuna http --file-server-spa ./

Изменение заголовков запроса

Добавление заголовка перед тем, как запрос попадет в локальный сервис:

tuna http 8080 --request-header="host:tuna.am"

Изменение заголовков ответа

Дабавление заголовка для передачи клиенту (пользователю):

tuna http 8080 --response-header="env:test"

Защита базовой аутентификацией

tuna http 8080 --basic-auth="login:password"

Защита API токеном

tuna http 8080 --key-auth="my-secret-key"

Доступ к ресурсу будет предоставлен только в том случае, если будет передано корректное значение заголовка X-Token.

Rate limiter

Ограничение по числу запросов в секунду, попадаемых в ваш сервис:

tuna http 8080 --rate-limit=2

При достижении лимита будет возвращена ошибка 429 Too Many Requests.

Ограничение доступа по подсетям IP

Вы можете определить белый список подсетей в CIDR-формате:

tuna http 8080 --cidr-allow="10.0.0.1/32"

Либо запретить доступ из определенных подсетей:

tuna http 8080 --cidr-deny="10.0.0.1/32"

Поведение

Hop-by-hop

tuna не поддерживает hop-by-hop заголовки за исключением заголовка Connection: upgrade, необходимого для работы Websocket соединений.

HTTP и HTTPS

При старте туннеля отображается ссылка на HTTPS, но обращаться можно и по HTTP.