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

14

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

Octocat
источник
1
Нет; При переадресации порта вы отправляете весь трафик на один адрес. Если вам нужно 2 устройства для приема данных через один и тот же порт, вам нужно перенаправить их на одно устройство, которое подключает эти 2 дополнительных устройства к сети (например, к другому маршрутизатору).
Ramhound
1
Порт 8080 может безопасно использоваться как альтернатива 80 на вторичной системе. Так что отправьте 80 на ПК и 8080 на ноутбук, если это то, что нужно для ваших требований.
Сверхразум
Вы пишете: «Если я перенесу UDP-порт 80 на моем ПК, могу ли я получить доступ к порту 80 с другого моего ноутбука?» <--- Ну, в противном случае, в чем смысл портовой охраны?
барлопа
AT Ramhound Действительно да, хорошо, так почему бы тебе не объяснить, как ты это сделал?
барлопа
1
Я рекомендую вам принять ответ VL-80. Его ответ очень хороший. Он отвечает , что вы на самом деле asked-- никто не может говорить о том , как он отвечает на то , что вы предназначены , чтобы спросить.
Дэвид Бец

Ответы:

14

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

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

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

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

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

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

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

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

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

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

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

user1686
источник
По поводу того, «на какой из двух внутренних IP-адресов он должен быть перенаправлен », почему бы не отправить его как на сервер 192.168.1.100, так и на сервер 192.168.1.101?
Pacerier
1
@Pacerier: Что будет делать клиент, когда он получит два совершенно разных ответа? Он не будет автоматически устанавливать два соединения, когда программа запрашивает только одно. В лучшем случае он примет один ответный пакет и откажется от другого, что бесполезно, поскольку вы не можете сказать ему, какой сервер вам нужен ... если только .100 и .101 не предоставляют одинаковые услуги (балансировка нагрузки). В худшем случае второй ответ даже предотвратит завершение первой попытки подключения (например, если второй сервер продолжит получать пакеты, предназначенные для первого, он продолжит отвечать с TCP RST)
user1686
1
@Pacerier: Итак, в конкретном случае балансировки нагрузки (с почти идентичными серверами) это можно сделать - более подробно см. Ответ VL-80 ниже. На самом деле существуют программы балансировки нагрузки, которые дублируют исходный пакет и используют тот сервер, который быстрее всего ответил. Но если вы хотите разместить два разных веб-сайта таким образом, это не сработает, потому что браузер не отправляет имя хоста веб-сайта в течение долгого времени после установления TCP-соединения.
user1686
4

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

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

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

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

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

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

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

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

     A (external IP)
     |
 ---------
 |       |
 B       C
VL-80
источник
2
Вопрос о роутерах. Ни один из маршрутизаторов потребительского уровня не имеет описанных вами функций балансировки нагрузки копирования / протокола UDP, и ни одна из них никогда не называется «переадресацией портов».
Джейсон С
4
1) В вопросе не указано, должно ли это быть оборудование потребительского уровня. 2) Независимо от того, что вы написали, я описал технику работ.
VL-80
2
Ни один маршрутизатор профессионального уровня не будет иметь этих функций, если только в комплект не входит только маршрутизатор. Это не переадресация портов, и маршрутизаторы не выполняют эти функции. Вопрос задан по поводу «переадресации портов» и был помечен роутером . Подумайте о людях, у которых возник бы тот же вопрос, найдите его и прочитайте ваш ответ, и подумайте, помогаете ли вы или сбиваете с толку. Ваша терминология в любом случае неверна.
Джейсон С
Вы пишете: «Это возможно для TCP, ........ как только вы перенаправили начальный пакет на определенный внутренний хост, теперь необходимо перенаправить остальные пакеты в этом сеансе на тот же внутренний хост». <--- Так как это возможно с TCP? Вы упомянули сэмпликатор для UDP, хорошо ... так что копирует его для UDP ... Но что вы предлагаете для TCP?
Бароп
4
Этот ответ хорош. Я собирался сказать что-то подобное. Именно с UDP это и есть многоадресная рассылка и IGMP. TCP, да, roundrobin, аварийное переключение и т. Д. Да, маршрутизаторы могут это делать - современные маршрутизаторы не являются слепыми устройствами из 90-х годов. Вопрос достаточно расплывчатый, чтобы разрешить многократное чтение, но я так же читаю qeuration.
Дэвид Бец
1

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

JohnRB
источник
1
«Я даже не видел маршрутизатора / управляемого коммутатора, который бы позволял вам это делать ...» - Маршрутизатор Technicolor TC7200.U потребительского уровня позволит вам добавить конфигурацию переадресации для одного и того же порта (портов) на разные IP-адреса. Я не уверен, что это на самом деле вперед, хотя.
Джонатан Кросс
-2

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

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

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

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

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

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

user241367
источник
Пожалуйста, не копируйте другие ответы.
Скотт