LRO как альтернатива ngrok

К этому сравнению приходят с двух разных сторон. Одним нужен туннель подешевле или поудобнее для той задачи, которую ngrok и так решает хорошо. Другим нужно ровно обратное тому, что делает ngrok: дотянуться до машины, которую в интернет публиковать нельзя. LRO сделан для второй группы, и эта страница написана так, чтобы вы за минуту поняли, к какой относитесь.

Коротко: ngrok создаёт публичный эндпоинт, поэтому до вашего сервиса дотянется любой, у кого есть адрес, — если только вы не поставите перед ним политику аутентификации. LRO связывает два агента и открывает приватный туннель между ними: публично доступным не становится ничего, а релей передаёт шифротекст, который не может прочитать.

Главное отличие: публичный эндпоинт против связанной пары

ngrok запускает агента на машине с сервисом и создаёт эндпоинт в своём облаке. Этот эндпоинт живёт в публичном интернете, а принимающей стороне не нужно вообще ничего: браузер, вебхук-провайдер или любой клиент просто открывает адрес. В этом весь смысл инструмента.

LRO ожидает агента на обеих сторонах. Одна машина запускает агента в роли client — там, где живёт сервис. Машина, за которой сидите вы, запускает его в роли support и открывает локальный слушатель. Дальше вы подключаетесь к 127.0.0.1 на своей же машине, а трафик идёт между двумя агентами. Ничего не публикуется, и утекать нечему — адреса просто нет.

Сравнение

 ngrokLRO
Что становится доступно Публичный эндпоинт в сети ngrok — URL либо хост и порт. Ничего. Оба агента подключаются наружу сами, а туннель виден только как локальный порт на вашей машине.
Кто может подключиться Любой, у кого есть адрес, — если перед эндпоинтом не настроена аутентификация. Связанный агент и те пользователи, которым вы явно выдали права на этот эндпоинт.
Софт на принимающей стороне Не нужен. Агент LRO, который и открывает локальный слушатель.
Шифрование HTTP-эндпоинты по умолчанию терминируют TLS на стороне ngrok — именно на этом работает их инспектор запросов. TCP- и TLS-эндпоинты передают байты, не расшифровывая. Всегда сквозное между двумя агентами, ключи свои на каждый туннель. Отключить нельзя, и релей не может прочитать то, что переносит.
Чем подключаетесь Любым клиентом нужного протокола — на публичный адрес. Своим обычным клиентом на локальный порт: ssh, RDP- или VNC-клиент, клиент базы данных, браузер.
Разграничение доступа Политики перед эндпоинтом — например OAuth или basic-аутентификация, в зависимости от тарифа. Организации, права на пользователя и на эндпоинт, отзыв конкретного устройства и аудит-лог.
Под какую задачу сделан Разработка вебхуков, демо, показать наружу то, что ещё в работе. Администрирование своих машин по их настоящим протоколам — столько, сколько эти машины живут.

Когда ngrok подходит лучше

Если другая сторона должна подключиться, ничего не устанавливая, — платёжный провайдер шлёт вебхук, заказчик открывает ссылку на демо, коллега смотрит с телефона, — ngrok делает именно это, а LRO так не умеет. Требование агента на обеих сторонах здесь осознанное, и случай «анонимный посетитель по ссылке» оно исключает полностью.

То же касается разбора и повторной отправки HTTP-запросов при разработке. Этот сценарий держится на том, что TLS терминируется на стороне провайдера, — а это ровно то свойство, от которого LRO отказывается в обмен на то, что релей не может прочитать ничего.

Когда лучше LRO

Агенты работают на Linux, Windows, macOS и Android, и ни одной стороне не нужно открывать входящий порт или трогать роутер.

Как это выглядит на практике

  1. Поставить агента на удалённую машину и зарегистрировать в роли client.
  2. Поставить агента на свою машину в роли support.
  3. Создать эндпоинт, описывающий сервис, — например порт 22 на удалённом хосте.
  4. Открыть туннель. Ваша машина начинает слушать локальный порт.
  5. Подключиться привычным клиентом на этот локальный порт.

Гайд про первый туннель проходит весь путь целиком, со скриншотами.

Сколько стоит

LRO берёт небольшую подписку за агента плюс оплату трафика по факту, поэтому простаивающие агенты стоят почти ничего. Новым аккаунтам начисляется стартовый баланс — его хватает, чтобы поставить обоих агентов и поднять первый туннель, ещё ничего не заплатив. Подробности — в FAQ про биллинг.

Дотянитесь до своих машин по их настоящим протоколам, ничего не публикуя в интернет.

Создать аккаунт →