LRO как альтернатива ngrok
К этому сравнению приходят с двух разных сторон. Одним нужен туннель подешевле или поудобнее для той задачи, которую ngrok и так решает хорошо. Другим нужно ровно обратное тому, что делает ngrok: дотянуться до машины, которую в интернет публиковать нельзя. LRO сделан для второй группы, и эта страница написана так, чтобы вы за минуту поняли, к какой относитесь.
Главное отличие: публичный эндпоинт против связанной пары
ngrok запускает агента на машине с сервисом и создаёт эндпоинт в своём облаке. Этот эндпоинт живёт в публичном интернете, а принимающей стороне не нужно вообще ничего: браузер, вебхук-провайдер или любой клиент просто открывает адрес. В этом весь смысл инструмента.
LRO ожидает агента на обеих сторонах. Одна машина запускает агента в роли client — там, где живёт сервис. Машина, за которой сидите вы, запускает его в роли support и открывает локальный слушатель. Дальше вы подключаетесь к 127.0.0.1 на своей же машине, а трафик идёт между двумя агентами. Ничего не публикуется, и утекать нечему — адреса просто нет.
Сравнение
| ngrok | LRO | |
|---|---|---|
| Что становится доступно | Публичный эндпоинт в сети ngrok — URL либо хост и порт. | Ничего. Оба агента подключаются наружу сами, а туннель виден только как локальный порт на вашей машине. |
| Кто может подключиться | Любой, у кого есть адрес, — если перед эндпоинтом не настроена аутентификация. | Связанный агент и те пользователи, которым вы явно выдали права на этот эндпоинт. |
| Софт на принимающей стороне | Не нужен. | Агент LRO, который и открывает локальный слушатель. |
| Шифрование | HTTP-эндпоинты по умолчанию терминируют TLS на стороне ngrok — именно на этом работает их инспектор запросов. TCP- и TLS-эндпоинты передают байты, не расшифровывая. | Всегда сквозное между двумя агентами, ключи свои на каждый туннель. Отключить нельзя, и релей не может прочитать то, что переносит. |
| Чем подключаетесь | Любым клиентом нужного протокола — на публичный адрес. | Своим обычным клиентом на локальный порт: ssh, RDP- или VNC-клиент, клиент базы данных, браузер. |
| Разграничение доступа | Политики перед эндпоинтом — например OAuth или basic-аутентификация, в зависимости от тарифа. | Организации, права на пользователя и на эндпоинт, отзыв конкретного устройства и аудит-лог. |
| Под какую задачу сделан | Разработка вебхуков, демо, показать наружу то, что ещё в работе. | Администрирование своих машин по их настоящим протоколам — столько, сколько эти машины живут. |
Когда ngrok подходит лучше
Если другая сторона должна подключиться, ничего не устанавливая, — платёжный провайдер шлёт вебхук, заказчик открывает ссылку на демо, коллега смотрит с телефона, — ngrok делает именно это, а LRO так не умеет. Требование агента на обеих сторонах здесь осознанное, и случай «анонимный посетитель по ссылке» оно исключает полностью.
То же касается разбора и повторной отправки HTTP-запросов при разработке. Этот сценарий держится на том, что TLS терминируется на стороне провайдера, — а это ровно то свойство, от которого LRO отказывается в обмен на то, что релей не может прочитать ничего.
Когда лучше LRO
- Машина не должна быть публично доступна в принципе — сервер клиента, продакшен-база, устройство в промышленной сети.
- Обе стороны ваши, так что поставить агента на каждую — не препятствие.
- Доступ постоянный, а не разовое демо: те же серверы каждую неделю, по SSH, RDP, VNC, протоколу базы или через веб-панель устройства.
- Доступ нужен не одному человеку, права у всех разные, и рано или поздно кто-нибудь спросит, кто и куда подключался.
Агенты работают на Linux, Windows, macOS и Android, и ни одной стороне не нужно открывать входящий порт или трогать роутер.
Как это выглядит на практике
- Поставить агента на удалённую машину и зарегистрировать в роли client.
- Поставить агента на свою машину в роли support.
- Создать эндпоинт, описывающий сервис, — например порт
22на удалённом хосте. - Открыть туннель. Ваша машина начинает слушать локальный порт.
- Подключиться привычным клиентом на этот локальный порт.
Гайд про первый туннель проходит весь путь целиком, со скриншотами.
Сколько стоит
LRO берёт небольшую подписку за агента плюс оплату трафика по факту, поэтому простаивающие агенты стоят почти ничего. Новым аккаунтам начисляется стартовый баланс — его хватает, чтобы поставить обоих агентов и поднять первый туннель, ещё ничего не заплатив. Подробности — в FAQ про биллинг.
Дотянитесь до своих машин по их настоящим протоколам, ничего не публикуя в интернет.
Создать аккаунт →