ngrok
Описание ngrok
Программа ngrok делает доступными в Глобальной сети локальные сервисы, даже если компьютер не имеет белого IP адреса и находится за NAT и файерволами. С помощью ngrok из Интернета будет доступен любой порт на вашем локальном компьютере будет доступен через безопасный туннель. Например, вы можете сделать так, чтобы ваш локальный веб-сервер стал доступным из Интернета по прямой ссылке без дополнительной настройке.
Как работает программа
Вы загружаете и запускаете программу на вашей машине и указываете порт сетевой службы, обычно это веб-сервер.
Программа подключается к облачной службе ngrok, которая выдаёт вам сгенерированный адрес (домен третьего уровня). Если открыть этот адрес в веб-браузере, то трафик будет перенаправлен на вашу локальную сетевую службу или на любой адрес, который вы указали.
Для чего подходит ngrok
- Демонстрация веб-сайтов без развёртывания на реальном хостинге
- Создание веб хуков на вашем компьютере для разработки ПО
- Тестирование мобильных приложений, подключённых к локально работающему бэкэнду
- Стабильные адреса для подключённых устройств, развёрнутых в полевых условиях
- Запуск персональных облачных сервисов из вашего дома
Домашняя страница: https://ngrok.com/
Автор: Keith Rarick
Лицензия: Apache License
Справка по ngrok
Использование:
ngrok КОМАНДА опции
КОМАНДЫ:
authtoken сохранить токен аутентификации в конфигурационный файл credits печатает информацию об авторе и лицензии http запустить HTTP туннель start запустить туннели по имени из конфигурационного файла tcp запустить TCP туннель tls запустить TLS туннель update обновить ngrok до последней версии version напечатать строку с версией help Вывести список команд или справку по указанной команде
Справка по команде authtoken
Имя:
authtoken сохраняет токен аутентификации в конфигурационный файл.
Использование:
ngrok ТОКЕН [ОПЦИИ КОМАНДЫ] [АРГУМЕНТЫ...]
Описание:
Команда authtoken изменяет ваш файл конфигурации, чтобы записать в него указанный authtoken. По умолчанию этот файл конфигурации находится в $HOME/.ngrok2/ngrok.yml.
Для использования многих расширенных функций службы, служба ngrok.com требует, чтобы вы зарегистрировали учётную запись. Чтобы связать вашего клиента с учётной записью, он должен передать секретный токен службе ngrok.com при запуске. Вместо того, чтобы передавать этот authtoken при каждом вызове, вы можете использовать эту команду, чтобы сохранить его в файле конфигурации, чтобы ваш клиент всегда аутентифицировал вас должным образом.
Пример:
ngrok authtoken BDZIXnhJt2HNWLXyQ5PM_qCaBq0W2sNFcCa0rfTZd
Опции:
--config сохранить в этом конфигурационном файле, по умолчанию: ~/.ngrok2/ngrok.yml --log "false" путь до файла журнала, 'stdout', 'stderr' или 'false' --log-format "term" формат записи журнала: 'term', 'logfmt', 'json' --log-level "info" уровень подробности журнала
Справка по команде credits
Имя:
credits печатает информацию об авторе и лицензировании.
Использование:
ngrok credits [АРГУМЕНТЫ...]
Описание:
Отображает автора, благодарности и информацию о лицензии.
Справка по команде http
Имя:
http запускает HTTP туннель.
Использование:
ngrok http [ОПЦИИ КОМАНДЫ] [АРГУМЕНТЫ...]
Описание:
Запускает туннель, прослушивающий HTTP/HTTPS трафик с указанным именем хоста. Заголовок HTTP Host на входящих публичных запросах проверяется, чтобы определить, какой туннель ему подходит.
Конечные точки HTTPS завершают трафик TLS на сервере ngrok с помощью сертификатов ngrok.io. Затем расшифрованный HTTP-трафик направляется через безопасный туннель, а затем на ваш локальный сервер. Если вы не хотите, чтобы ваш трафик TLS заканчивался на сервере ngrok, используйте туннель TLS или TCP.
Примеры:
Перенаправляет субдомен ngrok.io на локальный порт 80:
ngrok http 8080
Перенаправляет трафик на example.com:9000:
ngrok http example.com:9000
Запрашивает имя субдомена: 'bar.ngrok.io':
ngrok http -subdomain=bar 80
Запрашивает туннель 'ex.com' (DNS CNAME):
ngrok http -hostname=ex.com 1234
Запрашивает basic аутентификацию на конечной точке тоннеля:
ngrok http -auth='falken:joshua' 80
Переписывает заголовок Host на 'ex.com':
ngrok http -host-header=ex.com 80
Открывает доступ из интернета к локальным файлам в /var/log:
ngrok http file:///var/log
Перенаправляет на локальный https сервер:
ngrok http https://localhost:8443
Опции:
--auth включает basic аутентификацию на конечной точке туннеля, 'ПОЛЬЗОВАТЕЛЬ:ПАРОЛЬ' --authtoken токен ngrok.com для аутентификации пользователя --bind-tls "both" прослушивать http, https или both: true/false/both --config путь до конфигурационных файлов; если указано несколько, то они используются все --host-header установить заголовок Host; если 'rewrite' использовать локальный адрес в качестве имени хоста --hostname туннель хоста на произвольном имени (требует DNS CNAME) --inspect включить/отключить интроспекцию (самоанализ) http --log "false" путь до файла журнала, 'stdout', 'stderr' или 'false' --log-format "term" формат записи журнала: 'term', 'logfmt', 'json' --log-level "info" уровень журнала --region регион сервера ngrok [us, eu, au, ap, sa, jp, in] (по умолчанию: us) --subdomain разместить туннель на указанном субдомене
Справка по команде start
Имя:
start запускает туннель по имени из конфигурационного файла.
Использование:
ngrok start [ОПЦИИ КОМАНДЫ] [АРГУМЕНТЫ...]
Описание:
Запускает туннели по имени из файла конфигурации. Вы можете указать любое количество имён туннелей. Вы можете запустить все туннели из файла конфигурации, для этого укажите ключ --all.
Примеры:
Запустить туннель с именем в конфигурационном файле 'dev':
ngrok start dev
Запустить туннели 'web' и 'blog':
ngrok start web blog
Запустить все туннели, определённые в конфигурационном файле:
ngrok start --all
Опции:
--all запустить все туннели из конфигурационного файла --authtoken токен ngrok.com для аутентификации пользователя --config путь до конфигурационных файлов; если указано несколько, то используются все --log "false" путь до файла журнала, 'stdout', 'stderr' или 'false' --log-format "term" формат записей журнала: 'term', 'logfmt', 'json' --log-level "info" уровень подробности журнала --none запустить без туннелей --region регион сервера ngrok [us, eu, au, ap, sa, jp, in] (по умолчанию: us)
Справка по команде tcp
Имя:
tcp запускает туннель TCP.
Использование:
ngrok tcp [ОПЦИИ КОМАНДЫ] [АРГУМЕНТЫ...]
Описание:
Запускает туннель, который перенаправляет весь TCP-трафик с публичного порта на локальный адрес. Это чрезвычайно полезно для предоставления сервисов, которые работают на не HTTP-трафике (ssh, sip, rdp, игровые серверы и т. д.).
Туннель TCP связывает публичный адрес на удалённом сервере ngrok. Любые службы, которым требуется стабильный публичный адрес, должны использовать параметр --remote-addr. ngrok.com требует, чтобы вы зарезервировали адрес туннеля TCP для своей учётной записи, прежде чем сможете его использовать.
Примеры:
Перенаправить порт на ваш локальный сервер ssh
ngrok tcp 22
Предоставить RDP-сервер по определённому общедоступному адресу, который вы зарезервировали
ngrok tcp --remote-addr=1.tcp.ngrok.io:27210 3389
Опции:
--authtoken токен ngrok.com для аутентификации пользователя --config путь до конфигурационных файлов; если указано несколько, то используются все --log "false" путь до файла журнала, 'stdout', 'stderr' или 'false' --log-format "term" формат записей журнала: 'term', 'logfmt', 'json' --log-level "info" уровень подробности журнала --region регион сервера ngrok [us, eu, au, ap, sa, jp, in] (по умолчанию: us) --remote-addr привязать удалённый адрес (требуется зарезервировать адрес)
Справка по команде tls
Имя:
tls запускает туннель TLS.
Использование:
ngrok tls [ОПЦИИ КОМАНДЫ] [АРГУМЕНТЫ...]
Описание:
Запускает туннель для прослушивания трафика TLS через порт 443 с указанным именем хоста. Поле расширения TLS SNI (Server Name Indication) в соединении TLS проверяется, чтобы определить, к какому туннелю оно подходит.
Сервер ngrok не прерывает соединения TLS, пересылаемые с помощью этой команды. Может быть использован любой базовый протокол. При желании вы можете указать пару ключ/сертификат TLS, которая будет использоваться для завершения трафика на стороне клиента до его переадресации. Если не указано, трафик будет пересылаться в зашифрованном виде.
Использование этой команды рекомендуется только с опцией -hostname. Другое использование будет работать, но всегда приведёт к предупреждениям о несоответствии сертификатов.
Примеры:
Пересылать трафик TLS для example.com на порт 443 (требуется CNAME)
ngrok tls -hostname=example.com 443
Пересылать трафик TLS на поддомен (предупреждение о несовпадении сертификата)
ngrok tls 1234
Прервать трафик TLS для t.co перед пересылкой
ngrok tls -hostname=t.co -crt=/path/to/t.co.crt -key=/path/to/t.co.key 443
Опции:
--authtoken токен ngrok.com для аутентификации пользователя --client-cas путь к центру сертификации TLS для проверки клиентских сертификатов --config путь до конфигурационных файлов; если указано несколько, то используются все --crt путь к сертификату TLS для завершения TLS --hostname туннель на произвольном имени хоста (требуется CNAME вашего DNS) --key путь к ключу TLS для завершения TLS --log "false" путь до файла журнала, 'stdout', 'stderr' или 'false' --log-format "term" формат записей журнала: 'term', 'logfmt', 'json' --log-level "info" уровень подробности журнала --region регион сервера ngrok [us, eu, au, ap, sa, jp, in] (по умолчанию: us) --subdomain хост-туннель на пользовательском поддомене
Справка по команде update
Имя:
update обновляет ngrok до последней версии.
Использование:
ngrok update [ОПЦИИ КОМАНДЫ] [АРГУМЕНТЫ...]
Описание:
Обновляет ngrok до последней версии. Эта команда проверяет веб-сервис ngrok на наличие более новых версий клиента ngrok. Если доступна более новая версия, то она будет загружена, будет проверена подлинность скаченного файла и текущий исполнимый файл будет заменён новым.
Для успешного обновления двоичный файл ngrok должен находиться в каталоге, доступном для записи текущему пользователю. Если вы поместили ngrok в системный PATH, вам может потребоваться запустить его с правами root или администратора.
Примеры:
Обновить ngrok до последней стабильной версии:
ngrok update
Обновить ngrok до последней бета версии:
ngrok update -channel=beta
Опции:
--channel "stable" канал обновлений (stable, beta) --log "false" путь до файла журнала, 'stdout', 'stderr' или 'false' --log-format "term" формат записей журнала: 'term', 'logfmt', 'json' --log-level "info" уровень подробности журнала
Справка по команде version
Имя:
version - print the version string
Использование:
ngrok version [arguments...]
Руководство по ngrok
Страница man отсутствует.
Примеры запуска ngrok
Создать тоннель от сгенерированного поддомена, доступного по публичной ссылке, до локального порта 80 (веб-сервер):
ngrok http 80
Туннель на указанные ХОСТ:ПОРТ (foo.dev:80) вместо localhost:
ngrok http foo.dev:80
Сделать доступным из Глобальной сети локальный HTTPS сервер:
ngrok http https://localhost
Туннелирование произвольного TCP трафика на порт 22:
ngrok tcp 22
Создание туннеля (http) до сайта hackware.ru по протоколу https (https://hackware.ru) с заменой HTTP заголовка Host на hackware.ru (-host-header=hackware.ru):
ngrok http https://hackware.ru -host-header=hackware.ru
Установка ngrok
Установка в Kali Linux
wget `curl -s https://ngrok.com/download | grep -o -E 'https://bin.equinox.io/c/[A-Za-z0-9]{4,}/ngrok-stable-linux-amd64.zip'` unzip ngrok-stable-linux-amd64.zip chmod +x ./ngrok ./ngrok -h
Установка в BlackArch
Программа предустановлена в BlackArch
sudo pacman -S ngrok
Установка в любой дистрибутив Linux
wget `curl -s https://ngrok.com/download | grep -o -E 'https://bin.equinox.io/c/[A-Za-z0-9]{4,}/ngrok-stable-linux-amd64.zip'` unzip ngrok-stable-linux-amd64.zip chmod +x ./ngrok ./ngrok -h
Установка в Windows
Перейдите на страницу официального сайта и скачайте ngrok для Windows: https://ngrok.com/download
Распакуйте скаченный архив, отройте командную строку и перейдите в папку с исполнимым файлом с помощью cd, например, у меня программа помещена в папку C:\Users\MiAl\Downloads\:
cd C:\Users\MiAl\Downloads\
Для проверки выведите справку командой:
.\ngrok -h
Информация об установке в другие операционные системы будет добавлена позже.
Скриншоты ngrok
Инструкции по ngrok
- Как без белого IP локальный веб-сервер сделать доступным из Интернета
- Как узнать точное расположение пользователя
Comments are Closed