Tuna — от аналога ngrok, к собственной платформе

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Привет Habr!

В первой статье блога я хочу рассказать о нашей платформе для разработчиков - Tuna. Как мы начали делать свой сервис реверс-прокси туннелей а-ля ngrok, затем добавили менеджер паролей и теперь не можем остановиться .

HTTP туннель к приложению на 127.0.0.1:8080
HTTP туннель к приложению на 127.0.0.1:8080

❯ Туннели

Собственно как и у всех аналогов у нас есть HTTP (реверс-прокси) и TCP туннели. А ещё есть SSHd и Trigger туннели. В настоящий момент у нас есть 2 региона где размещаются туннельные ноды:

  • RU - Москва

  • NL - Амстердам

Наличие туннельной ноды в России делает работу более комфортной ввиду отсутствия большой задержки. Также в ближайшее время мы планируем расширять точки присутствия на восток, вероятнее всего появятся ноды на Урале, Сибири и Дальнем востоке.

Я не буду здесь рассказывать про все функции или пересказывать документацию, но остановлюсь на основном и приведу популярные примеры использования.

HTTP туннели

Обратные-прокси туннели, чаще всего их используют для превью разработки web-сайтов и telegram webapp, тестирования платежей, тестирования телеграм ботов, peer-to-peer передачи больших файлов и прочее.

Открываем доступ к локальному сайту на 127.0.0.1:3000:

# на случайном поддомене
tuna http 3000

# на статичном поддомене
tuna http 3000 -s habr

# на собственном домене
tuna http 3000 -d demo.habr.team

Файловый сервер, если надо передать большой файл, например дамп базы данных:

# сервим текущий каталог закрыв авторизацией
tuna http --basic-auth='user:pass' -f . 

# сервим SPA приложение
tuna http -F ./dist

Ещё есть флаги для включения CORS, генерация QR кода с ссылкой в консоль, что-бы проще было тестировать мобилку, инспектор запросов, управление заголовками, авторизация, WebDAV сервер и прочие ништяки.

Подключение своих доменов
Подключение своих доменов

Также возможно подключить свой домен. После настройки DNS, проверки и выпуска Let's Encrypt сертификата - можно использовать, а в тарифе для команд есть поддержка и доменных зон (wildcard), где и TLS сертификат свой можно загрузить, вдруг у вас интеграция с кем-то кто доверяет только сертификатам от Минцифры.

TCP туннели

Если же вам надо открыть доступ к какому то не HTTP приложению, например база данных, сервер очередей, minecraft, RTSP поток от IP камеры, RDP в общем что угодно, что работает по TCP - то нужны TCP туннели.

Пример TCP туннеля к postgres
Пример TCP туннеля к postgres

По умолчанию порт выделяется динамически но можно зарезервировать статичный порт, задать ему алиас и тогда вы всегда будете знать куда подключаться.

# динамический порт к локальному postgres
tuna tcp 5432

# статический порт к IP камере в локальной сети
tuna tcp --port=rtsp 192.168.0.55:554

SSHd туннели

Нет, это не SSH туннели про которые написано много всего.

Tuna содержит встроенный SSH-сервер, это позволяет создать туннель и предоставить удаленный доступ по SSH без необходимости запускать SSH сервер и какой-либо конфигурации со стороны пользователя. Помимо функционала обычного SSH-сервера, tuna позволяет записывать сессии пользователей и просматривать их.

Возвращаясь к преимуществам, хочу отметить, что такой фичи нет в ngrok или аналогах, ну или пока нет

Источник: https://habr.com/ru/companies/tuna/articles/881774/


Интересные статьи

Интересные статьи

Представьте, что к вам приходит владелец с видео-концептом новой фичи для клиента, функционал которой отдаленно напоминает космический корабль, а у вас всего два месяца на разработку, и один — на тест...
Как ускорить 1С БИТРИКС и снизить кол-во запросов к БД используя ядро D7.Пример выборки элементов IBlock с пользовательскими свойствами в один запрос.
Первое, что себе представляют люди, когда речь заходит о Швейцарии это умопомрачительные виды гор с прагматично-гармонично вписанной архитектурой, вероятно так оно и есть, но мне этого увидеть не дове...
На Хабре и других ресурсах неоднократно публиковалась информация о том, что производители устройств и проприетарного ПО много лет нарушают лицензию GPL. Свободное ПО открыто для все...
Существует традиция, долго и дорого разрабатывать интернет-магазин. :-) Лакировать все детали, придумывать, внедрять и полировать «фишечки» и делать это все до открытия магазина.