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
Сразу после запуска, можно увидеть, что сервис создал временный поддомен вида abcde123.ngrok.io для организации доступа на ПК, а локально по адресу 127.0.0.1:4040, была запущена панель, в которой отображаются данные по удалённым подключениям к туннелю. Пробуем открыть домен abcde123.ngrok.io из любого места, и получаем доступ к настроенной на веб-сервере директории.
При необходимости, мы можем указать регион, в котором будет запущен прокси:
$ ./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 порт, даёте координаты друзьям и приступаете к игре.
Заглядываем в документацию. Описанное в заметке — далеко не все возможности, так что всем заинтересовавшимся я настоятельно рекомендую заглянуть в документацию, где в очень доступной форме, с примерами команд, приведено описание всех возможностей данного сервиса и утилиты.
крутая статья, мне очень помогла ;)=)
Как скачать?
Спасибо большое!
спасибо за информацию)