Ngrok как открыть порты
Перейти к содержимому

Ngrok как открыть порты

  • автор:

Как с помощью сервиса Ngrok сделать безопасный доступ к вашему локальному серверу с игрой Minecraft

В статье расскажу, как с помощью сервиса «Ngrok» можно осуществить безопасный доступ удаленных пользователей к локальному серверу на вашем компьютере, например, игроков, к игре Minecraft, запущенной на локальном севере вашего компьютера.

26 октября 2021, вторник 22:59
Megi [ ] для раздела Блоги

реклама

Что такое сервис «Ngrok»

реклама

Ngrok – это мультиплатформенное программное обеспечение, позволяющее, путем создания безопасных каналов связи «туннелей» устанавливать безопасные соединения между общедоступными конечными точками, коими является сеть интернет, и локальным сервером вашего компьютера. Оно создает туннель, который подключается к облачной службе Ngrok и резервирует публичный адрес, через который все обращения перебрасываются на порт локального сервера вашего ПК, другими словами, создает виртуальный сервер с открытым портом. Ngrok открывает локальные серверы за брандмауэрами (то есть, минуя их). А также при отсутствии у ПК статического IP-адреса, он не требует настройки пересылки.

Это известный, простой, удобный и безопасный localhost сервис туннелирования, у которого очень мало альтернатив. Ngrok может работать с операционными системами: Windows, macOS, а также Linux. Есть, как бесплатная версия сервиса, так и платные.

реклама

Цены на различные версии сервиса «Ngrok», и их возможности

У сервиса есть четыре версии, одна бесплатная и три платных, оплата производится ежемесячно.

1. Бесплатная. В ней реализовано использование до 4 туннелей и 40 соединений в минуту. Используются туннели HTTP/TCP на случайных URL/портах. Реализован один онлайн-процесс.

2. Базовая — 5 долларов, ~ 360 рублей. В ней реализовано использование до 8 туннелей и 60 соединений в минуту, реализован один онлайн-процесс. Имеется возможность резервации до 3 доменов. Включает в себя единый вход в Google Apps, и разрешается составлять пользовательские поддомены.

реклама

3. Профессиональная — 8.25 долларов ~ 594 рубля. В ней реализовано использование до 12 туннелей и 60 соединений в минуту, реализовано 2 онлайн-процесса. Имеется возможность резервации до 5 доменов с белыми метками. Включает в себя до 2 зарезервированных TCP-адреса, сквозные туннели TLS.

4. Бизнес — 10 долларов ~ 720 рублей. В ней реализовано использование до 20 туннелей и 120 соединений в минуту, реализовано 2 онлайн-процесса. Имеется возможность резервации до 5 доменов с белыми метками и доступ к белому списку IP – адресов. Включает в себя до 2 зарезервированных TCP-адреса, 1 домен с подстановочными знаками.

Использование сервиса «Ngrok» для доступа игроков к игре Minecraft

Я использую бесплатную версию сервиса «Ngrok» для доступа игроков к игре Minecraft. Чтобы воспользоваться сервисом необходимо выполнить следующие шаги:

реклама

1. Заходите на сайт «Ngrok»;

2. Регистрируетесь на сайте «Ngrok»;

3. Скачиваете архив с «exe» файлом программы. В «Linux» или «Mac OS X» вы можете распаковать «ngrok» с терминала с помощью следующей команды (unzip /path/to/ngrok.zip). В «Windows» просто дважды щелкните ngrok.zip, чтобы извлечь его.

4. Находите свой токен на сайте «Ngrok», во втором пункте. Копируете строку, начиная с ngrok…. вставляете ее в командную строку, и нажимаете «Enter».

5. Открываете игру Minecraft, создаете новый мир и открываете его для сети, копируете номер порта, который игра нам выдала, он понадобится при следующем шаге.

6. Дальше выбираете, что вы хотите открыть. Локальный мир/Сервер.

Локальный мир:
Пишете в командной строке: ngrok tcp -region=eu (указываете регион, где будет расположен сервер), и (порт, который выдала вам игра при открытии мира для сети) Пример: ngrok tcp -region=eu [Порт];

В данный момент доступны следующие регионы:

us – United States (Ohio);

eu – Europe (Frankfurt);

ap – Asia/Pacific (Singapore);

au – Australia (Sydney);

sa –South America (Sao Paulo);

ip – Japan (Tokyo);

in – India (Mumbai).
Сервер на компьютере:
Чтобы узнать порт, нам нужно заглянуть в файл server.properties и найти строку “server -port=[Порт]” скопировать порт и написать в командной строке: ngrok tcp -region=eu [Порт] после того как вы запустили сервер на компьютере.

7. Нажимаете «Enter», и происходит запуск «Ngrok». Окно с «Ngrok» не закрываете, так как «Ngrok» работает пока окно активно. (можно сбросить вниз)

8. Указанный адрес-порт в строке «Forwarding», будет нашим IP-адресом, который и нужен игрокам для входа в нашу игру. Даём его игрокам для входа в игру.

Безопасен ли сервис «Ngrok»

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

Альтернативные программы

1. pagekite.net: Создает HTTP- и TLS-туннели. Программа является бесплатной только 30 дней, по истечении того срока необходимо будет платить.
2. localhost.run: Создает HTTP туннели через SSH. Бесплатная служба, клиент или регистрация не требуются.

3. sish: клиент-контейнер с открытым исходным кодом. Регистрация не требуется.

4. LocalXpose: коммерческий сервис с бесплатными опциями. Регистрация обязательна, но доступны терминальные клиенты и клиенты с графическим пользовательским интерфейсом.

Использование выделенного сервера

Кроме того, я еще арендую выделенный сервер со следующими возможностями:

На нем у меня организован доступ игроков к игре Minecraft. Кому интересно, можете зайти посмотреть, или поиграть.

Пишите в комментариях, использовали ли вы сервис «Ngrok» для доступа пользователей к играм или другим ресурсам на своем компьютере? И пользовались ли когда-нибудь выделенным сервером?

ngrok — Когда нужно прокинуть ваш сервис в Интернет

В процессе разработки бывают ситуации, когда вам необходимо показать результат другому человеку. Самое первое, что приходит на ум — это купить дешевый хост и развернуть там, но это дополнительные затраты денег и времени. Другой пример — когда вы делаете свой локальный проект и вам нужно получать запросы от внешних сервисов при интеграции.

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

Как работать с ngrok

Для работы нам необходимо:

  • скачать бинарный файл для вашей системы — ngrok;
  • зарегистрировать аккаунт на ngrok для получения токена;
  • удостовериться, что ваш локальный сервис запущен и ожидает HTTP запросов;
  • запустить ngrok.

Эти 5 шагов позволят получить временный домен для проверки вашего сервиса. Но давайте попробуем разобрать на примере запуска локального сервиса. Я буду запускать Nginx сервер в docker контейнере.

  • У меня Mac OS, и я воспользуюсь пакетным менеджером brew.
brew cask install ngrok 
  • Затем вы должны либо войти в свой аккаунт, либо зарегистрироваться.

Imgur

  • Перейдите по вкладке Auth и скопируйте ваш токен.

Imgur

  • Запустите ваш сервис на удобном для вас порту. Я буду использовать Nginx.
docker run --name some-nginx -p 8080:80 nginx 

Таким образом, я ожидаю подключения на адрес 127.0.0.1:8080 и получу стандартное сообщение от Nginx.

  • Затем запускаем ngrok.
ngrok http 8080 

Где 8080 — ваш локальный порт, где запущен сервис.

В терминале будет примерно следующая картина:

ngrok by @inconshreveable (Ctrl+C to quit) Session Status online Account Rinat Muhamedgaliev (Plan: Free) Update update available (version 2.3.35, Ctrl-U to update) Version 2.2.8 Region United States (us) Web Interface http://127.0.0.1:4040 Forwarding http://870eb390.ngrok.io -> localhost:8080 Forwarding https://870eb390.ngrok.io -> localhost:8080 Connections ttl opn rt1 rt5 p50 p90 2 0 0.01 0.00 5.81 10.83 HTTP Requests ------------- GET /favicon.ico 404 Not Found GET / 200 OK 

Теперь, обратившись по адресу http://870eb390.ngrok.io или https://870eb390.ngrok.io, мы увидим стандартный ответ от Nginx как видели и раньше. А если открыть в браузере адрес http://localhost:4040, то можно получить доступ сервисной странице со статистикой и логом запросов.

Imgur

Таким образом, небольшой инструмент позволил получить временный домен и https адрес (иногда критично для платежных систем) для разработки. Полный набор ключей для параметризации можно почитать на странице https://ngrok.com/docs#http.

В бесплатной версии вы также можете строить TCP тоннели, если вам необходимо работать с TCP сервисами. С платными функциями вы можете познакомится на странице https://ngrok.com/pricing.

Открытые альтернативы

Если же вам ближе opensource решения, то советую взглянуть на localtunnel. Localtunnel написан на JS и очень прост в использовании.

Вам необходимо поставить npm пакет и запустить:

npm install -g localtunnel lt --port ваш порт> 

Из коробки данный сервис предлагает поддомены и https соединение. Более полную информацию можете почитать на главной странице проекта localtunnel.

А если хотите узнать о других интересных инструментах из мира разработки и желаете прокачаться в JVM стеке — приходите ко мне на обучение.

Нанять Рината своим индивидуальным наставником — это сюда: Записаться к Ринату

© Copyright 2014 — 2023 mkdev | Privacy Policy

BootDev

Ngrok, а точнее сервис https://ngrok.com/, позволяет организовать доступ к порту локальной машины через интернет, минуя брандмауэры и NAT.

Как это работает

Схема очень проста. Вы скачиваете приложение, консольную программу ngrok. Запускаете, указав в параметре локальный порт службы, например веб-сервера, к которому нужно получить доступ из интернета. Ngrok создает туннель до своих серверов, и выдает вам временный адрес, что то вроде этого 07d9ce94.ngrok.io. Обратившись по этому адресу, вы попадете на порт своей локальной машины.

Пример

Для примера, я запущу на своей локальной машине файловый веб-сервер GoWebFS на порту 8080.

Теперь, я хочу чтобы мой локальный ресурс localhost:8080 был доступен через интернет. Для этого я запускаю ngrok.

ngrok http 8080

Как можно видеть на скриншоте, ngrok выдал мне адрес 4ae30269.ngrok.io. Обращусь к нему через браузер.

Где скачать

Скачать ngrok можно по ссылке https://ngrok.com/download.

Примеры запуска

Открываем доступ к локальному порту http 8080.

ngrok http 8080

Открываем доступ к локальному порту http 8080 с авторизацией по логину и паролю.

ngrok http —auth «логин:пароль» 8080

Открываем доступ к локальному TCP порту 22 (для выполнения этой команды потребуется авторизовать клиент ngrok).

ngrok tcp 22

Авторизация клиента ngrok (выполняется одни раз), получить токен можно по адресу https://dashboard.ngrok.com/auth.

ngrok authtoken ваш_токен

Перенаправление порта http на другой (не локальный) адрес:порт.

ngrok http 192.168.0.1:80 # адрес и порт подставлены для примера

Перенаправление порта tcp на другой (не локальный) адрес:порт.

ngrok tcp 192.168.0.254:22 # адрес и порт подставлены для примера

Получение справки по указанной команде.

ngrok help команда

Как пробросить порт на ПК используя VPS?

Как можно пробросить (открыть) порт на нескольких ПК на винде без установки каких либо драйверов и прочего используя VPS на линуксе, что-то вроде ngrok.io, но своими руками.

Отслеживать
задан 22 авг 2018 в 13:46
51 1 1 серебряный знак 7 7 бронзовых знаков
вам нужен ssh port forwarding
22 авг 2018 в 13:49

если @etki понял вопрос верно (вероятно, он в курсе, что это за загадочный «вроде ngrok.io»), то вот ответ

22 авг 2018 в 15:49
@alexanderbarakin ngrok.com
22 авг 2018 в 16:48

0

Сортировка: Сброс на вариант по умолчанию

Знаете кого-то, кто может ответить? Поделитесь ссылкой на этот вопрос по почте, через Твиттер или Facebook.

  • linux
  • windows
  • сервер
    Важное на Мете
Связанные
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.10.27.43697

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *