2016-09-02 2 views
1

У меня есть простой веб-сервер, связанный на 0.0.0.0:3000 на моей машине, которая работает по назначению в локальных сетях. По локальной сети я хочу сказать, что если мое мобильное устройство или любое другое устройство находится в одной сети, он может получить доступ к локальному веб-серверу, перейдя на IP-адрес, назначенный моей машине, и добавив к нему порт 3000. Например, 192.168.1.4:3000.показывать локальный веб-сервер за динамическим IP

Теперь я должен выставить его в Интернете, но не через какое-то стороннее приложение, например ngrok, localtunnel или browserSync. Я знаю, что эти приложения работают отлично, но поскольку у меня есть собственный проект по управлению домашними устройствами, я не хочу полагаться на доступность сторонних сервисов. Итак, текущее состояние, я не могу контролировать его через Интернет. Помните, что у меня нет статического IP-адреса, иначе это было бы проще.

У меня уже есть vps и доменное имя, назначенное ему. Я могу отправить выделенный в настоящее время IP-адрес (поскольку он является динамическим), используя getifaddrs, на мой сервер и отслеживать его. Но как я могу открыть свой локальный сервер в Интернете через него? Эти сторонние приложения назначают какие-то поддомены каждому открытому серверу, и я тоже могу назначать поддомены, но я все равно не могу разоблачить локальный веб-сервер. Любая помощь будет оценена, спасибо!

ответ

2

Шаг первый, вам нужно выставить свой веб-сервер на своем маршрутизаторе доступа в Интернет. Как правило, это требует, чтобы настроить пересылку порт для (в вашем случае) порт 3000. С этого сделать, любой клиент может получить доступ к вашим услугам через (текущий внешний динамический IP): 3000

Шаг два, что вам нужно динамически отображать фиксированное имя DNS в ваш текущий динамический ip. Конечно, существуют сторонние сервисы (такие как DynDNS), которые помогут вам сопоставить yourfavoritename.dyndns.org с этим постоянно меняющимся IP-адресом.

Если вы хотите сделать последний без 3-й партии, вы должны иметь некоторый статический (веб) сервер где-то и может действовать следующим образом:

Клиенты посетить http://www.yourstaticserver.example/ и что сервер перенаправляет их (текущая динамика ф): 3000. Конечно, для этого ваш статический сервер должен знать динамический ip и не должен знать об изменениях в нем. С этой целью вы можете связать ваш внутренний сервер с статическим сервером на регулярном интервале (например, один раз в минуту), скажем, получить доступ к http://www.yourstaticserver.example/some-secret-special-page, а статический сервер всегда хранит REMOTE_ADDR такого запроса (желательно с некоторой авторизацией !) для будущих перераспределений.


На самом деле, есть шаг ноль перед шагом один: Имейте в виду, что подвергая сервер в Интернете означает, что вы подвергать свой сервер в Интернете. Поэтому я надеюсь, что вы вложили достаточно средств в безопасность.

+0

Я сам делаю шаг 2, отслеживая динамические IP-адреса и перенаправляя себя к назначенному в данный момент времени. Проблема, с которой я столкнулся, - это шаг 1, эти приложения не просят меня выполнить ручную настройку с помощью моего интернет-маршрутизатора. Они просто работают. Вот чего я пытаюсь достичь. –

Смежные вопросы