Поиск по сайту:

Отлаживайте свои локальные приложения через Интернет с помощью Ngrok Tunnels


Что такое Нгрок?

Допустим, вы разрабатываете веб-приложение и хотите поделиться им со своими коллегами, чтобы они его протестировали. Без ngrok вы могли бы либо загрузить его куда-нибудь на небольшой сервер, что требует времени и не копирует такие вещи, как локальные базы данных, либо перенаправить ваш маршрутизатор так, чтобы он указывал на ваш компьютер, что неуклюже и работает не везде.

Ngrok решает эту проблему, предоставляя вам один URL-адрес, который туннелирует на ваше устройство. Он действует как своего рода VPN и может туннелировать через брандмауэры прямо на ваше устройство. У вас может быть несколько туннелей, работающих одновременно, и вы можете выбрать порты и протокол для каждого из них. Например, вы можете перенаправить свой веб-сервер, работающий через HTTP, на порт 3000, а базу данных — через необработанное TCP-соединение через порт 8080.

Клиент ngrok автоматически назначит вам URL-адрес, например yourapp.ngrok.io:1234. По сути, это туннель SSH, но конечная точка управляется для вас службой ngrok. У Ngrok есть платные планы, которые позволяют запускать больше туннелей с зарезервированными URL-адресами, но бесплатного уровня достаточно для большинства базовых туннелей и отладки.

Поскольку URL-адреса генерируются автоматически на уровне бесплатного пользования, ngrok не подходит для выполнения чего-либо, где важно время безотказной работы. Но вы все равно не должны держать туннель к своему персональному компьютеру все время открытым, просто из соображений безопасности. То же самое верно и для переадресации портов, но ngrok можно включать и выключать, так что в этом отношении он лучше.

Установка Нгрока

Для начала перейдите на онлайн-панель ngrok и создайте учетную запись. После того, как вы прошли аутентификацию, настройка относительно проста; ngrok не нужно устанавливать через диспетчер пакетов, просто скачайте двоичный файл для своей системы и разархивируйте файл либо через проводник, либо с помощью команды unzip .

Оттуда вы можете начать запускать ngrok, но вы, вероятно, захотите переместить его из папки «Загрузки» в место, где вы можете получить к нему доступ из любого места. В Linux и macOS это место хранится в переменной PATH, которую можно найти, выполнив:

echo $PATH

Обычно это /usr/local/bin/, поэтому мы можем переместить туда ngrok, выполнив эту команду из папки Загрузки:

sudo mv ngrok /usr/local/bin/

Тогда ngrok будет работать как обычная утилита. В Windows вам нужно добавить новую папку в PATH вашей системы.

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

ngrok authtoken xxxxxxxxxx

Это связывает вашу учетную запись и позволяет создавать туннели.

Как настроить туннели Ngrok

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

ngrok http 80

Что откроет графический интерфейс, показывающий текущие открытые соединения и информацию о вашем сеансе. URL-адрес туннеля отображается в разделе «Переадресация», который вы хотите скопировать.

Вы также можете запустить несколько туннелей одновременно из файла конфигурации. Этот файл конфигурации находится в вашем домашнем каталоге, в ~/.ngrok2/ngrok.yml. По умолчанию этот файл будет пустым, за исключением вашего токена авторизации. Вы можете добавить туннели вручную:

tunnels:
 http:
  proto: http
  addr: 80
 tcp:
  proto: tcp
  addr: 9090

Который вы можете запустить сразу, используя:

ngrok start --all

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

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

const url = await ngrok.connect({proto: 'http', addr: 80});

…который будет хранить URL-адрес переадресации в переменной, которую вы можете использовать.

Нгрок Инспектор

Еще одна функция, которая делает ngrok особенно полезным для отладки веб-приложений, — это инспектор туннелей. Всякий раз, когда вы запускаете туннель, вам также предоставляется URL-адрес веб-интерфейса, обычно localhost:4040. Если вы откроете его в своем браузере, вы увидите список всех запросов, проходящих через туннель, вместе с содержимым и ответами.

Он не превосходит среду разработки API, такую как Postman, но все же очень полезен для проверки трафика, идущего между клиентом и сервером. Он фиксирует все, включая запросы, которые ваше приложение делает автоматически.

Здесь есть еще одна вкладка с надписью «Статус», которая отображает состояние вашего туннеля, включая статистику, такую как продолжительность подключения и количество подключений в секунду для каждого туннеля.