LINUX.ORG.RU

Как быстро организовать доступ к локальному веб приложению за NAT

 , , ,


1

1

Очень часто возникает ситуация когда необходимо организовать доступ к локально запущенному веб приложению другому человеку. Во время проведения коротких демо показов не всегда удобно арендовать временные виртуальные машины или строить мост до своего ПК через cloudflare или vpn.

Если вам не повезло также как и мне, и ваш интернет провайдер не предоставляет возможность аренды статического ip адреса, то предлагаю рассмотреть инструмент который сможет облегчить жизнь.

«Pnode — это аналог популярных сервисов для туннелирования tcp запросов, таких как ngrok и localtunnel. Если вы ранее пользовались одним из этих инструментов для того, чтобы расшарить свой localhost в интернет, то принцип работы Pnode будет сразу понятен: он создает безопасный публичный URL, который перенаправляет все запросы на ваш локальный сервер. Это избавляет от необходимости разбираться с настройкой firewall, пробросом портов на роутере или арендой виртуального сервера.»

1. Регистрация и настройка сайта

Нам потребуется создать аккаунт на сайте pnode.site и установить локально NodeJS

После подтверждения почты создаём новый сайт, я указал в качестве имени - pahatrop, адрес моего сайта pahatrop.pnode.site. На этом этапе нам необходимо сохранить PROJECT ID, AGENT ID, AGENT TOKEN, они нам пригодятся позже. Больше они нигде не отобразятся!

Если перейти на полученный адрес pahatrop.pnode.site сейчас, то увидим ошибку — это нормально, так как мы еще не подключили агент.

2. Подготовка локального сервера

Для примера создадим простое приложение на NestJS с http api:

  npx nest new myserver

Запускаем локальный веб сервер:

  cd myserver
  npm run start

Если всё прошло успешно, то запрос к http://127.0.0.1:3000 вернет «Hello World!»

3. Запуск агента pnode

Теперь нужно подключить наш локальный порт к удаленному домену. Установить переменные, используя сохраненные AGENT_ID и AGENT_TOKEN:

  export AGENT_ID=3a4a89c2-be3a-46ba-94af-xxxxxxxxxxxx
  export AGENT_TOKEN=yL5HUjyeBL4XiuakGmhMNlfvxxxxxxxxxxxx

Запустить агент, указав PROJECT ID и локальный порт:

  npx start-pnode --project 804441e8-bb10-4469-95ec-123456d83df6 --port 3000

4. Готово

Если агент подключился успешно, в консоли вы увидите соответствующее сообщение. Теперь все запросы на персональный поддомен (pahatrop.pnode.site) будут автоматически перенаправляться на локальный сервер на порту 3000.

Перемещено hobbit из development



Последнее исправление: pahatrop (всего исправлений: 3)

Очень часто возникает ситуация когда необходимо организовать доступ к локально запущенному веб приложению другому человеку.

Допустим.

Во время проведения коротких демо показов не всегда удобно арендовать временные виртуальные машины

Так вот, если «ситуация возникает очень часто», то виртуальная машина арендуется на постоянной основе. Или организуется какой-то другой вид туннеля без сабжевого мартышкиного пердолева с локальной нодой.

thesis ★★★★★
()

нтернет провайдер не предоставляет возможность аренды статического ip адреса

То надо уходить от такого провайдера. Ничего умнее получения глобально маршрутизируемого IP адреса не придумать. Это аксиома. Всё остальное - это костыли.

anonymous
()

Очень часто возникает ситуация когда необходимо организовать доступ к локально запущенному веб приложению другому человеку.

У кого такая ситуация часто, да ещё и в потребностях без белого ip?

One ★★★★★
()
Ответ на: комментарий от thesis

Это не всегда оправдано, многие фронтенд разработчики для демок использовали ngrok когда он ещё работал. Ради одного раза в неделю поднимать виртуальную машину или заниматься настройкой dyn dns выглядит избыточно. Особенно неприятным аренда становится когда нужно не react приложение запустить, а elasticsearch с keycloak которые для нормальной работы требуют тачку за пару тысяч.

pahatrop
() автор топика
Ответ на: комментарий от pahatrop

Нет, это с нодой пердолиться выглядит избыточным. А копеечная виртуалка с белым адресом может в демо-режиме проксировать что угодно, хоть весь гугль.

thesis ★★★★★
()
Ответ на: комментарий от KivApple

Да, это вполне рабочий вариант. Можно арендовать за 100-200р и настроить localtunnel.

Но есть полностью бесплатная уже настроенная альтернатива, если по сети планируется гонять меньше 10 гигов в сутки.

pahatrop
() автор топика
Ответ на: комментарий от pahatrop

А в чём проблема такому разработчику арендовать у провайдера белый IP? Ну либо пробрасывать туннель до арендованной VPS с белым IP. Применений то других куча, кроме показа приложений.

anonymous
()
Ответ на: комментарий от anonymous

Если есть возможность арендовать белый IP это отлично.

Мой пример, я живу в небольшом пгт где есть всего один провайдер, какие услуги он соизволит предоставлять, такие и будут.

У меня есть друзья у которых вообще нет постоянного места нахождения. Они каждые несколько месяцев меняют город в котором живут, раз в пол года меняют страну.

Для таких граничных случаев подходит только аренда дешевой впски как писали выше, либо готовые сервисы для тунелирования.

pahatrop
() автор топика