1

Когда я хочу получить доступ к устройству, находящемуся за NAT от внешнего мира, я перехожу к маршрутизатору и настраиваю переадресацию портов.

Теперь мой вопрос, почему он работает без настройки маршрутизатора? Например, можно выполнить переадресацию портов без настройки / доступа к маршрутизатору, перейдя в Control Panel -> View Network Connections

Оказавшись там, я вижу свой роутер:

Если right click -> properties -> settings -> select services tab -> Add я могу настроить переадресацию портов следующим образом:

(Мой компьютер, на котором размещен веб-сайт внутри моей сети, имеет IP 192.168.0.5)

Я знаю основы того, как работает маршрутизатор, но я не понимаю, как это можно сделать без вспомогательного сервера (tcp/udp punch holing) или vpn. Что делает мой компьютер, когда я настраиваю эту опцию, чтобы включить переадресацию портов?

Это также можно сделать в Linux, как показано в этом видео (https://youtu.be/bjsu5sFbMos).

2 ответа2

3

Ключом является UPNP https://en.wikipedia.org/wiki/Universal_Plug_and_Play

  • Маршрутизатор должен поддерживать UPNP, а служба UPNP должна быть включена. Если отключено, процесс в вопросе не будет работать.

  • Конфигурация выполняется с помощью команд UPNP вместо веб-интерфейса маршрутизатора. Но в обоих случаях маршрутизатор настраивается, просто метод отличается.

Теперь мой вопрос, почему он работает без настройки маршрутизатора?

В этом случае ОС настраивает ваш роутер.

Что делает мой компьютер, когда я настраиваю эту опцию, чтобы включить переадресацию портов?

ОС отправляет сообщения UPNP на маршрутизатор. Это сетевые пакеты, если вы глубоко заинтересованы, вы можете найти официальные описания протокола UPNP.

Вы можете представить это как базу данных с 2 портами. Один управляется веб-интерфейсом маршрутизатора (portforward, виртуальные серверы, разные имена), другой управляется клиентами маршрутизаторов. Но оба хранятся на маршрутизаторе и применяются к правилам маршрутизатора.

1

Я думаю, что я должен прочитать больше о UPnP. Выполнение следующих шагов изменяет следующую конфигурацию на маршрутизаторе:

Я сделал это по-Linux (https://youtu.be/bjsu5sFbMos) и как только я запустил команду:

$ upnpc -d 192.168.0.150 80: 80 TCP

На моем Linux-компьютере эта запись не работает на моем роутере.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .