Как настроить ngrok-туннелирование для локального проекта
Автор статьи
Что такое ngrok?
ngrok — это инструмент, который создаёт безопасный туннель от публичного URL к вашему локальному серверу. Это позволяет показать ваш проект коллегам, протестировать вебхуки или проверить работу на мобильном устройстве — без деплоя.
Установка ngrok
macOS
Через Homebrew:
brew install ngrokWindows
Через Chocolatey:
choco install ngrokИли скачайте .zip архив с официального сайта, распакуйте и добавьте в PATH.
Linux
Через snap:
sudo snap install ngrokИли через apt (Ubuntu/Debian):
curl -sSL https://ngrok-agent.s3.amazonaws.com/ngrok.asc | sudo tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null && echo "deb https://ngrok-agent.s3.amazonaws.com buster main" | sudo tee /etc/apt/sources.list.d/ngrok.list && sudo apt update && sudo apt install ngrokРегистрация и авторизация
1. Зарегистрируйтесь на dashboard.ngrok.com
2. Скопируйте ваш authtoken из дашборда
3. Добавьте токен:
ngrok config add-authtoken ВАШ_ТОКЕНЭта команда одинакова для всех ОС.
Запуск туннеля
Убедитесь, что ваш локальный сервер запущен (например, на порту 3000), затем выполните:
Базовая команда (все ОС)
ngrok http 3000После запуска вы увидите публичный URL вида:
Forwarding https://xxxx-xxx-xx-xx-xxx.ngrok-free.app -> http://localhost:3000С кастомным доменом (платный план)
ngrok http 3000 --domain=my-project.ngrok-free.appНастройка Next.js для работы через ngrok
Если в проекте используется авторизация (например, NextAuth), необходимо обновить переменную окружения AUTH_URL:
# В файле .env.local
AUTH_URL=https://xxxx-xxx-xx-xx-xxx.ngrok-free.appПосле изменения .env.local перезапустите dev-сервер:
npm run devПошаговый пример
Запустите dev-сервер:
npm run devВ отдельном терминале запустите ngrok:
ngrok http 3000Скопируйте публичный URL из вывода ngrok
Обновите
AUTH_URLв.env.localна этот URLПерезапустите dev-сервер
Полезные флаги
Флаг | Описание | Пример |
|---|---|---|
| Кастомный домен |
|
| Базовая авторизация |
|
| Веб-интерфейс инспектора | Открыть |
| Выбор региона |
|
Ограничения в России
ngrok периодически попадает в реестр блокировок Роскомнадзора. На практике ситуация неоднозначная:
У некоторых провайдеров домены
*.ngrok-free.appзаблокированы, у других — работают без проблемСам туннель (подключение к серверам ngrok) может работать даже при блокировке сайта
Результат зависит от провайдера, региона и используемого DNS
Если ngrok не работает, попробуйте:
Использовать VPN
Сменить DNS на
1.1.1.1(Cloudflare) или8.8.8.8(Google)Использовать альтернативы:
Cloudflare Tunnel:
cloudflared tunnel --url http://localhost:3000localhost.run:
ssh -R 80:localhost:3000 nokey@localhost.runServeo:
ssh -R 80:localhost:3000 serveo.net
Комментарии0
Пока нет комментариев. Будьте первым!