Запуск и настройка ngrok

  • Автор темы Morwenns
  • Дата начала
M

Morwenns

Original poster
Ngrok — это платформа, которая с помощью установленной утилиты, позволяет, организовать удалённый доступ на веб-сервер или какой-то другой сервис, запущенный ПК. Доступ организуется через созданный при запуске ngrok безопасный туннель. ПК, при этом, может находиться за NAT’ом, и не иметь статического IP адреса.

Совсем не обязательно тащить тестовый проект куда-то ещё, можно показать его заказчику прямо с локальной машины, или, например, с помощью Ngrok можно очень легко расшарить файлы лежащие на ПК.

Для начала, нам потребуется веб-сервер, запущенный на компьютере (конечно же, его нужно настроить при необходимости):
Код:
# dnf install nginx
# systemctl start nginx

И непосредственно сам Ngrok. Его можно запускать от обычного пользователя, и со включенным selinux:
Код:
$ mkdir ngrok
$ cd ngrok/
$ wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip
$ unzip ngrok-stable-linux-amd64.zip
$ ./ngrok http 80

ngrok.png

ngrok


Сразу после запуска, можно увидеть, что сервис создал временный поддомен вида abcde123.ngrok.io для организации доступа на ПК, а локально по адресу 127.0.0.1:4040, была запущена панель, в которой отображаются данные по удалённым подключениям к туннелю. Пробуем открыть домен abcde123.ngrok.io из любого места, и получаем доступ к настроенной на веб-сервере директории.

ngrok2.png


При необходимости, мы можем указать регион, в котором будет запущен прокси:
Код:
$ ./ngrok http -region=eu 80
Или защитить запущенный туннель паролем для доступа:
Код:
$ ./ngrok http -auth="user:pa55w0rd" 80

В случае появления ошибки вида:
Код:
The connection to was successfully tunneled to your ngrok client, but the client failed to establish a connection to the local address localhost:80.

Стоит проверить, запущен ли веб-сервер локально, и работает ли он на 80 порте.

Полезно знать об Ngrok.
Авторизуемся. Если вы планируете использовать сервер часто, имеет смысл зарегистрироваться на ngrok.com, забрать со страницы настроек авторизации токен, и добавить его в локальный клиент с помощью команды:

Код:
$ ./ngrok authtoken 5vEpKbBvnjSrMqZIkYJLb_2sbNRQbxZm0PSo23X6QpQ
Токен будет записан в файл ~/.ngrok2/ngrok.yml и теперь, клиент при работе с сервисом будет авторизовываться на нём. Это позволит получить доступ к бесплатному тарифу, но с лимитами бОльшими, чем доступны не авторизованному пользователю. На платных тарифах имеются дополнительные возможности, делающие работу с сервисом удобной (резерв поддоменов, например), но в рамках данной заметки я рассматриваю только то, что пользователь может использовать без оплаты.

Проксируем на другие ПК в локальной сети. Совсем не обязательно держать веб-сервер на той же машине, где запускается Ngrok. Если сервис в локальной сети работает на отдельной машине, мы можем проксировать трафик туда:

Код:
$ ./ngrok http 192.168.1.25:8080

Работаем не только с веб-сервером. На самом деле мы можем настроить удалённый доступ к любому tcp сервису, запущенному на ПК. Например, если мы хотим получить доступ по SSH, то можем сделать вот так:
Код:
./ngrok tcp 22

При этом, от сервиса мы получим адрес вида tcp://0.tcp.ngrok.io:18211 -> localhost:22, и для доступа на ПК нам останется просто соединиться по SSH на хостнейм 0.tcp.ngrok.io и порт 18211. Любители поднимать игровые серверы могут поступать аналогично. Просто запускаете проксирование на нужный tcp порт, даёте координаты друзьям и приступаете к игре.

Заглядываем в документацию. Описанное в заметке — далеко не все возможности, так что всем заинтересовавшимся я настоятельно рекомендую заглянуть в документацию, где в очень доступной форме, с примерами команд, приведено описание всех возможностей данного сервиса и утилиты.
 
Название темы
Автор Заголовок Раздел Ответы Дата
DOMINUS Запуск полной ноды в сети Биткойн Новости в сети 0
U Запуск Private keeper под Proxifier | Сниф всех запросов Видео/Музыка 0
Admin Запуск Gram Wallet. Альфа версии для iOS Новости в сети 1
C Запуск платных прог без триала. Софт для работы с текстом/Другой софт 15
M Запуск crontab через php Вопросы и интересы 0
A Запуск кода с правами администратора C# С/C++ 0
A Запуск приложения из памяти C# С/C++ 0
Support81 Первичная настройка VPS Полезные статьи 0
B Услуги Linux администратора, настройка vps, серверов Ищу работу. Предлагаю свои услуги. 0
Y Интересно Более детальная настройка файервола Agnitum для достижения максимальной безопасности Полезные статьи 2
Y Установка и настройка OpenVPN сервера на windows Полезные статьи 2
E Полная настройка Termux Раздача email 0
B Установка и настройка Jabber клиента Анонимность и приватность 0
T [Копипаст] Mirai ботнет (установка-настройка) Раздача dedic/ssh/proxy 2
T Установка и настройка базовой безопасности TrueCrypt Софт для работы с текстом/Другой софт 0
1 Тонкая настройка Top (выходные ноды) Уязвимости и взлом 1
C Установка и настройка ОС Whonix. Анонимность и приватность 1
S Установка и настройка ОС Whonix Анонимность и приватность 2
M Cythosia v2 настройка и установка Полезные статьи 0

Название темы