Ngrok больше не тот: практическое руководство по восстановлению работы!

Ngrok больше не тот: практическое руководство по восстановлению работы!

Сегодня ngrok отказался запускаться в связи со сменой мажорной версии на 3.*. На официальном сайте пишут, что С 15 января 2024 года старые версии агента больше не поддерживаются, но реально они работали до последнего времени. По сообщению разработчиков обновление призвано улучшить безопасность и производительность, но обновления, видимо нужны и для того, чтобы перевести больше пользователей на платные тарифы.
С обновлением старые команды запуска перестали работать. Бесплатный тариф теперь предлагает еще более ограниченные возможности, в частности, использование только localhost как локального домена. Это существенно сузило привычные границы использования ngrok, особенно для тех, кто привык к более гибким настройкам в версии 2.х.
Для запуска в новых условиях на бесплатном тарифе, команда `ngrok http 80` теперь кажется основным способом для быстрого старта. Ключ `--host-header=rewrite` дает возможность пробросить имя локального хоста и получить его, а не временный домен в переменных сервера. Для тех, кто работает с OpenServer и имеет свои локальные домены, потребуется добавить два алиаса (в Настройки-> Алиасы):
- `*.ngrok-free.app => <Ваш домен>`
- `localhost => <Ваш домен>`

Для других систем, нужно сделать аналогичные по смыслу алиасы.
Таким образом, при обращении к временному домену, например, `https://a292-195-74-87-204.ngrok-free.app/`, будет открываться ваш локальный домен через `http://localhost`, что дает возможность продолжить работу с минимальными изменениями.
Хотя стало чуть менее удобно, всё ещё работает. Тем, кто ещё не установил ngrok, может быть интересен российский аналог (не реклама) xTunnel, предлагающий альтернативу ngrok. Но я, пока, продолжаю оставаться с ngrok, т.к. по адресу http://localhost:4040/api/tunnels можно получить XML с описанием и текущим временным HTTPS адресом в ['tunnels'][0]['public_url'] или ['tunnels'][1]['public_url'] и сразу, к примеру, передернуть хуки для ботов, в xTunnel такого пока нет, как и мониторинга входящих запросов http://127.0.0.1:4040/inspect/http позволяющего на лету видеть многие проблемы при разработке.
Пользуясь случаем хочу всех, кто интересуется разработкой чат-ботов, пригласить на свой пустой, давно созданный канал, который я таки решил начать вести. В канале будут неочевидные, но интересные решения и их обсуждение. Добро пожаловать https://t.me/botiCheLife )

1414
21 комментарий

При виде сложных кусков кода мой dnssec завис

3

Если задача еще актуальна - можно воспользоваться https://devhook.ru
Это альтернатива ngrok, только не требует установки отдельного клиента. Но если нужна структура входящего webhook запроса - можно просто отлавливать без запуска тунеля.

1

Спасибо! Отличное решение! Особенно, если не системно нужно, а именно поймать, посмотреть — вообще мастхэв! JSON не форматированный, не очень удобно, если поставите (это же ваша разработка?) форматер, будет удобнее, в том же ngrok сразу форматируется json

1

"передернуть хуки для ботов" - что это значит?)

1

При разработке чат-ботов, есть разные методы их общения с серверами Телеграм. Я, обычно, использую метод веб-хуков, если у меня есть сообщение я отправляю его серверу, если у сервера есть сообщение для бота он присылает мне веб-хук. Чтобы он знал куда мне присылать хук, ему нужно объявить этот адрес. Передернуть — имелось ввиду обновить, установить новый адрес для хука. Тк Ngrok дает временный адрес, то после каждой перезагрузки нужно проводить эту операцию, в статье описано как это автоматизировать )