11

Если я перенесу UDP-порт 80 на моем ПК, могу ли я получить доступ к порту 80 с другого моего ноутбука?

4 ответа4

12

Вы задаете два разных вопроса здесь.

Можете ли вы перенаправить один и тот же порт на 2 разных внутренних IP-адреса?

Подумай об этом. Если пакет поступает на ваш внешний адрес и порт 80 UDP (при условии, что у вас есть только один внешний IP-адрес), как ваш маршрутизатор узнает, на какой из двух внутренних IP-адресов он должен быть перенаправлен?

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

Если я перенесу UDP-порт 80 на моем ПК, могу ли я получить доступ к порту 80 с другого моего ноутбука?

Да. Переадресация портов, как правило, влияет только на пакеты с портом 80 на вашей стороне. Когда кто-то пытается подключиться к вам, ваш маршрутизатор увидит:

  • входящий пакет со случайного порта X другого компьютера на ваш порт 80
  • исходящий ответ с вашего порта 80 на другой порт X

Но исходящие соединения (когда вы посещаете веб-страницу в другом месте) будут перевернуты с точки зрения вашего маршрутизатора.

  • исходящий пакет с вашего случайного порта X на порт 80 другого компьютера (веб-сервера)
  • входящий ответ от другого порта 80 на ваш порт X

Таким образом, переадресация портов не повлияет на них вообще.

(Кстати, HTTP обычно работает на TCP. Только эксперименты Chrome с QUIC используют UDP.)

2

Можете ли вы перенаправить один и тот же порт на 2 разных внутренних IP-адреса?

Да, вы можете абсолютно сделать это с UDP и в некоторой степени с TCP.

Поскольку UDP является протоколом без установления состояния соединения, вы можете прослушивать определенный порт, а после получения пакета вы можете скопировать его и отправить двум различным внутренним получателям. Поскольку рукопожатия или отслеживание состояния отсутствуют, все получатели смогут успешно принимать эти пакеты. Samplicator - одна из программ, которая может сделать это для вас. Обратите внимание, что это не является чистой переадресацией портов согласно ее определению.

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

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

Если я перенесу UDP-порт 80 на моем ПК, могу ли я получить доступ к порту 80 с другого моего ноутбука?

Этот вопрос немного неясен. Если вы перенаправляете трафик со своего внешнего адреса на один из внутренних хостов, сам по себе этот факт не препятствует доступу к одному и тому же порту из внутренней сети.

Допустим, вы перенаправили порт 80 из A в B В то же время C сможет напрямую получить доступ к порту 80 на B

     A (external IP)
     |
 ---------
 |       |
 B       C
1

Вы не можете переадресовывать один и тот же порт на несколько IP одновременно, я даже не видел маршрутизатор / управляемый коммутатор, который даже позволит вам сделать это без отправки сообщения об ошибке конфигурации. Вы можете настроить его для нескольких IP-адресов, но одновременно можно включить только одно из правил пересылки. Таким образом, вы можете отключить одно включение другого и наоборот, но это пустая трата. Вам нужно беспокоиться только о переадресации портов, если вы хотите получить доступ к определенным портам / службам на компьютере локальной сети через его внешний IP-адрес. Скажем, если вы хотите запустить 2 веб-сервера на 2 из ваших ПК в локальной сети и иметь доступ к обоим из них все время, самый простой способ сделать это - изменить порты служб, один из которых прослушивает порт 80, а другой - на 8080 или порт вы хотите. 99% сервисов позволят вам разместить / прослушать любой порт, который вы хотите. Если вы не укажете порт, он будет использовать сервис по умолчанию. Существуют и другие более продвинутые способы ведения дел, но это самый простой способ, и продвинутые методы не рассматриваются и не называются "переадресацией портов" никому, кто говорит, что по-другому нужно вернуться в сетевую школу.

-2

Подумай об этом. Если пакет поступает на ваш внешний адрес и порт 80 UDP (при условии, что у вас есть только один внешний IP-адрес), как ваш маршрутизатор узнает, на какой из двух внутренних IP-адресов он должен быть перенаправлен?

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

Как ваш маршрутизатор узнает, что нужно перенаправлять адреса? Из-за NAT.

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

Например, 2 разных компьютера, на которых размещаются веб-сайты на разных внутренних, но на одних и тех же внешних портах, должны быть названы по именам доменов, или вам необходимо настроить внутренний DNS-сервер с добавлением внутренних IP-адресов обоих доменов к его записям, к которым маршрутизатор подключается, и каждый раз, когда кто-то пытается подключиться Доменное имя (не публичный IP-адрес) маршрутизаторы NAT будут переадресовывать соединение соответственно.

Вы не можете перенаправлять точно одинаковые порты на несколько IP-адресов в одной сети, но вы можете использовать одни и те же внешние порты, если внутренние порты разные, и наоборот, когда речь идет об исходящем сетевом трафике.

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