{"id":14276,"url":"\/distributions\/14276\/click?bit=1&hash=721b78297d313f451e61a17537482715c74771bae8c8ce438ed30c5ac3bb4196","title":"\u0418\u043d\u0432\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u043b\u044e\u0431\u043e\u0439 \u0442\u043e\u0432\u0430\u0440 \u0438\u043b\u0438 \u0443\u0441\u043b\u0443\u0433\u0443 \u0431\u0435\u0437 \u0431\u0438\u0440\u0436\u0438","buttonText":"","imageUuid":""}

Tuna - доступная замена ngrok и аналогов

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

Tuna - что это вообще такое? Если коротко - это консольная утилита в основном для разработчиков, но не только. Помогает получить прямой доступ из интернета к запущенным локально на ПК сайтам или приложениям. Вы запускаете в консоли короткую команду, получаете в ответ ссылку, а ваш друг из любой точки мира перейдя по ней попадёт на сайт запущенный на вашем ПК в локальной сети, и всё это без VPN, требований в "белом" IP, без проброса портов, так далее.

Но давайте я лучше покажу и опишу кейсы применения.

Публикация локального сайта

Например, вы – Frontend разработчик и хотите дать доступ к локальному стенду вашему коллеге. Как обычно запускаете в консоли yarn server видите, что приложение запустилось на http://localhost:3000, в соседней консоли запускаете tuna http 3000 , видите ссылку вида https://foo-bar.ru.tuna.am, всё с этого момента ваш локальный сайт доступен в интернете.

В этом видео показан пример описанный выше, только я использовал статический сайт внутри контейнера с nginx.

Публикация сайта

Из опций можно добавить базовую авторизацию, заголовки, ограничить доступ по IP подсетям , можно задать статичный поддомен и другое. Также есть встроенный инспектор. Это легковесный интерфейс встроенный в утилиту, из которого удобно отслеживать запросы, заголовки и прочую отладочную информацию.

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

Если надо передать достаточно объёмный файл, к примеру в 10Gb это превращается в квест. Нужно загрузить файл на какой-нибудь облачный диск (яндекс или гугл), опубликовать этот файл и дать ссылку другу и только после этого он сможет его скачать. Согласитесь было бы удобно передать файл сразу напрямую другу. Для этого запустите tuna http --file-server=. с указанием каталога который хотите опубликовать, и передайте ссылку другу, а он сможет скачать файл практически напрямую с вашего ПК без загрузки его на сторонние сервисы и потери времени.

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

Техническая поддержка

В Windows если вы хотите предоставить доступ к рабочему столу, то наверное сразу думаете о teamviewer или аналогах, но если нужна помощь на сервере с Linux, нужно создать пользователя, дать ему доступ по SSH, а для этого опять нужен белый IP, а потом ещё не забыть удалить пользователя и отозвать все доступы в общем рутина. По этому в tuna есть встроенный SSH сервер и можно 1 командой открыть доступ к примеру для тех. поддержки какого-нибудь ПО которое вы покупаете. А завершив команду доступ прервётся и всё. не надо ни о чём переживать.

SSH сервер

Проброс TCP порта

Приведу живой пример из практики. В локальной сети есть IP камера и нужно предоставить к ней прямой доступ по RTSP потоку. Запускаем tuna tcp <camera-ip>:554 , получаем ссылку и подключаемся.

TCP port

Триггеры

Ещё полезный функционал во всяческих автоматизациях, это выполнение действий по наступлению событий. В tuna доступны триггеры по наступлению HTTP (webhook) или SMTP (mail) уведомления. Запускаете команду tuna trigger webhook /root/trigger.sh получаете ссылку, отправляете запрос по ссылке, а tuna выполнит указанный скрипт.

Триггеры

Сравнение с конкурентами

В сравнении с ngrok, inlets, tunnelin, localxpose (это первое что гуглится, список не полный), нам ещё есть куда расти. К примеру у нас до сих пор не реализованный статичные TCP порты и при каждом перезапуске будет биндиться новый порт, это неудобно. В тоже время триггеры или встроенный SSH-сервер есть не у всех, а у нас есть.

Цена
Базовый функционал с ограничениями - бесплатен. Расширенный - 299 рублей в месяц, таких низких цен нет ни у кого. А в компании с возможностью в принципе оплатить в рублях, в России мы кажется 1-й вариант. Ну или напишите в комментариях, но я не находил аналогов.

Серверы для построения туннелей в России и Нидерландах. Близость туннельных серверов уменьшает задержку и увеличивает скорость.

В общем куда не плюнь, одни плюсы 🙂

Контакты

Подробнее можете посмотреть всё на сайте https://tuna.am/#pricing, надеюсь вам понравится работать с tuna.

Если возникли вопросы, можете задать их нам по почте [email protected]

0
28 комментариев
Написать комментарий...
Labeling
Цена - 299 рублей в месяц, таких низких цен нет ни у кого.

Я ngrok за бесплатно использую 🤷‍♂️

Ответить
Развернуть ветку
Evgeniy Medvedev
Автор

Ну у нас почти такие же ограничения между платной и бесплатной версией, как и в ngrok, кастомные поддомены, tcp, etc

Ответить
Развернуть ветку
Labeling

Да правда, я пропустил момент, что у вас тоже есть бесплатная версия.

Ответить
Развернуть ветку
Valdemar

Быстрее бы мир перешёл на IPv6 что-бы потребность в подобных костылях отпала.

Ответить
Развернуть ветку
Gene Semerenko

Успрехов в развитии проекта!
Но ngrok победить будет ой как не просто.
Например они выкатили внешний static domain не так давно и прочие фишки за даром. К use cases - эти штуки незаменимая вещь для разработчика telegram, fb и прочих ботов с веб хуком.

Ответить
Развернуть ветку
Лев Аминов

Будем развивать)

Ответить
Развернуть ветку
Evgeniy Medvedev
Автор

Спасибо.
Это естественно, просто решил не дублировать, это я описывал в 1 статье.

Ответить
Развернуть ветку
Zig Fisher

Спасибо за продолжение развития, желаю успехов !

Ответить
Развернуть ветку
Solodkin Denis

Удачи вам в вашем проекте )

Ответить
Развернуть ветку
Kirill Kazakov

А проект yucca.app/ru напоминает решение FLussonic, у них очень много сделано в эту сторону.
У вас есть описание про тех. детали, реализации и т.п. yucca.app/ru ?

Ответить
Развернуть ветку
Evgeniy Medvedev
Автор

Да, flussonic watcher наш конкурент.
Я не знаю какие вам нужны детали?)
Кажется многое понятно из сайта и документации + есть бесплатная версия, можете установить и протестировать.
Также можете запростить на сайте триальную лицензию для enterprise версии. )

Ответить
Развернуть ветку
Александр Соар

А почему Тунцом назвали?))

Ответить
Развернуть ветку
Evgeniy Medvedev
Автор

Прототип называться tunnel, начали играть с этим словом, посмотрели какие есть свободные домены. Так и вышло tunnel - tuna ))

Ответить
Развернуть ветку
Денис Пешехонов

Пользуюсь бесплатным vk-tunnel, работает отлично.

Ответить
Развернуть ветку
Kirill Kazakov

У вас закрытый проект (нет открытой репы на GH)?
Интересно было бы поучаствовать ....
Тоже думал делать проект в эту сторону, даже домен прикупил lclhost, но посмотрел на ngrok и подумал, что тут я не конкурент )

Ответить
Развернуть ветку
Labeling

На тот случай, если вас интересуют open-source альтернативы ngrok: https://github.com/anderspitman/awesome-tunneling

Ответить
Развернуть ветку
Evgeniy Medvedev
Автор

Нет, проект у нас закрытый)
Выкиньте эту фигню из головы про то, что тут я не конкурент ngrok, это свободный рынок место всем найдётся) Берите, делайте, продавайте.
Не стоит думать о конкуренции с старбакс, если хотите отрыть кофейню у дома, верно?)
Ну мы по крайней мере для себя делали + будет интегрировать с нашим основным продуктом yucca.app/ru

Ответить
Развернуть ветку
Лев Аминов

Попробовать всегда стоит)

Ответить
Развернуть ветку
CHI DA?

Уберите ограничение на жизнь сессии в 30 мин в бесплатной версии, иначе не вижу плюсов перед ngrok

Ответить
Развернуть ветку
Evgeniy Medvedev
Автор

не

Ответить
Развернуть ветку
Писец

т

Ответить
Развернуть ветку
Алексей Шашенков

Vscode добавил ports - теперь из ide можно шарить порты

Пока бесплатно

Ответить
Развернуть ветку
Алексей Горошко (ToshibaMastr)

Когда статический адрес для TCP?))))

Ответить
Развернуть ветку
Evgeniy Medvedev
Автор

Статичные TCP порты есть в планах, но это сильно сложнее в реализации, по этому пока только в планах)

Ответить
Развернуть ветку
Ильяс Галяутдинов

Поскорее бы :) Так как в России платный и доступный вариант пока у вас нашел

Ответить
Развернуть ветку
Ильяс Галяутдинов

Выглядит интересно

Ответить
Развернуть ветку
Джанго Питонов

при попытке распаковки зипа на винде - винда не дала открыть файл заблокировав его. че там у вас внутри вообще? без вирусов?

Ответить
Развернуть ветку
Evgeniy Medvedev
Автор

Инстрауция по установке есть в доке https://tuna.am/docs/guides/install-manual?os=windows
Можно и через winget установить.

Ответить
Развернуть ветку
25 комментариев
Раскрывать всегда