Я работаю на настольном компьютере и запускаю местный веб-сайт. Я могу открыть сайт, используя свой личный IP-адрес: http://192.168.0.50:8010/connect/webcontent/ (пример).

Проблема в том, что я не могу получить доступ к веб-сайту с помощью общедоступного IP-адреса: http://139.255.51.226:8010/connect/webcontent/ (пример).

Я хочу, чтобы мой частный IP (192.168.0.50) был доступен общедоступному IP (139.255.51.226) и другим ПК. Обратите внимание, что мой веб-сервер расположен на виртуальной машине.

Может кто-нибудь помочь мне решить это?

1 ответ1

3

Вы хотите проверить несколько вещей:

Если у вас несколько обычных общедоступных IP-адресов:

  • Назначьте обычный публичный IP-адрес вашему веб-серверу.
  • Убедитесь, что ваш маршрутизатор знает, как маршрутизировать к этому.
  • Привязать веб-сервер, чтобы ответить на этот кортеж IP:8010.

Это способ, которым был разработан Интернет. К сожалению, в основном у нас закончились адреса IP v4, что привело к появлению уродливого клуджа под названием NAT. Это почти наверняка то, что вы используете дома, так что продолжайте читать.

Если у вас есть только один общедоступный IP-адрес (например, 139.255.51.226) и вы используете адреса RFC1918 за ним (например, 192.168.xx) с помощью трансляции сетевых адресов (NAT), то:

  • Перейдите к своему маршрутизатору (возможно, к вашему модему SoHo) и настройте переадресацию портов. Скажите ему переадресовать порт 8010 на 192.168.0.50:8010.
  • Постарайтесь убедиться, что ваш веб-сервер остается на этом IP-адресе. Обычно это делается путем добавления записи в список зарезервированных IP-адресов на DHCP-сервере. В модемах SoHo DHCP-сервер обычно является частью «модема». Вы можете пропустить это, но если IP-адрес сервера изменится, вам нужно будет повторить правило переадресации портов, а также потенциально переадресовать на непреднамеренный хост, если тот случайно получит старый IP-адрес. Это не так много риска для дома, но это очень плохая практика.

Теперь из- за пределов вашей сети (например, с помощью браузера на телефоне, подключенном через интернет телефона, а не через Wi-Fi), попробуйте открыть http://139.255.51.226:8010/connect/webcontent/

Этот запрос будет перенаправлен на ваш «модем».
Модем увидит, что это для порта 8010, и перенаправит его на 192.168.0.50:8010.

Обратите внимание, что это не будет работать изнутри вашей локальной сети, если ваш модем не поддерживает то, что называется «шпилька NAT».

Обратите внимание, что мой веб-сервер расположен на виртуальной машине.

Пока виртуальная машина подключена к вашей сети (например, используя «мост», а не «сеть только на хосте»), это не должно иметь значения.


Как упомянул @doezer: Если ваш внешний IP-адрес меняется, вам, очевидно, нужно использовать новое значение, а не http://139.255.51.226:8010/connect/webcontent/. Самый простой способ обойти это - обратиться не к IP-адресу, а к имени. DNS используется для этого. Если у вас динамический IP, то посмотрите на DynDNS.

Кроме того, если вы можете использовать IPv6, то переадресация портов вообще не требуется. Просто дайте каждому компьютеру (реальному или виртуальному) свой IP-адрес.

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