Если я перенесу UDP-порт 80 на моем ПК, могу ли я получить доступ к порту 80 с другого моего ноутбука?
4 ответа
Вы задаете два разных вопроса здесь.
Можете ли вы перенаправить один и тот же порт на 2 разных внутренних IP-адреса?
Подумай об этом. Если пакет поступает на ваш внешний адрес и порт 80 UDP (при условии, что у вас есть только один внешний IP-адрес), как ваш маршрутизатор узнает, на какой из двух внутренних IP-адресов он должен быть перенаправлен?
Если вы хотите разместить две разные службы, вам понадобится отдельный порт для каждой.
Если я перенесу UDP-порт 80 на моем ПК, могу ли я получить доступ к порту 80 с другого моего ноутбука?
Да. Переадресация портов, как правило, влияет только на пакеты с портом 80 на вашей стороне. Когда кто-то пытается подключиться к вам, ваш маршрутизатор увидит:
- входящий пакет со случайного порта X другого компьютера на ваш порт 80
- исходящий ответ с вашего порта 80 на другой порт X
Но исходящие соединения (когда вы посещаете веб-страницу в другом месте) будут перевернуты с точки зрения вашего маршрутизатора.
- исходящий пакет с вашего случайного порта X на порт 80 другого компьютера (веб-сервера)
- входящий ответ от другого порта 80 на ваш порт X
Таким образом, переадресация портов не повлияет на них вообще.
(Кстати, HTTP обычно работает на TCP. Только эксперименты Chrome с QUIC используют UDP.)
Можете ли вы перенаправить один и тот же порт на 2 разных внутренних IP-адреса?
Да, вы можете абсолютно сделать это с UDP и в некоторой степени с TCP.
Поскольку UDP является протоколом без установления состояния соединения, вы можете прослушивать определенный порт, а после получения пакета вы можете скопировать его и отправить двум различным внутренним получателям. Поскольку рукопожатия или отслеживание состояния отсутствуют, все получатели смогут успешно принимать эти пакеты. Samplicator - одна из программ, которая может сделать это для вас. Обратите внимание, что это не является чистой переадресацией портов согласно ее определению.
Это возможно для TCP, но с некоторыми ограничениями - вы можете прослушивать конкретный порт и, как только пакет прибудет, вы можете переслать его на определенный внутренний хост в пуле. TCP использует соединения, поэтому после пересылки исходного пакета определенному внутреннему хосту теперь необходимо перенаправить остальные пакеты в этом сеансе на тот же внутренний хост.
Используя эту технологию, вы можете иметь несколько внутренних серверов, обрабатывающих запросы к одному внешнему назначению.
Если я перенесу UDP-порт 80 на моем ПК, могу ли я получить доступ к порту 80 с другого моего ноутбука?
Этот вопрос немного неясен. Если вы перенаправляете трафик со своего внешнего адреса на один из внутренних хостов, сам по себе этот факт не препятствует доступу к одному и тому же порту из внутренней сети.
Допустим, вы перенаправили порт 80 из A
в B
В то же время C
сможет напрямую получить доступ к порту 80 на B
A (external IP)
|
---------
| |
B C
Вы не можете переадресовывать один и тот же порт на несколько IP одновременно, я даже не видел маршрутизатор / управляемый коммутатор, который даже позволит вам сделать это без отправки сообщения об ошибке конфигурации. Вы можете настроить его для нескольких IP-адресов, но одновременно можно включить только одно из правил пересылки. Таким образом, вы можете отключить одно включение другого и наоборот, но это пустая трата. Вам нужно беспокоиться только о переадресации портов, если вы хотите получить доступ к определенным портам / службам на компьютере локальной сети через его внешний IP-адрес. Скажем, если вы хотите запустить 2 веб-сервера на 2 из ваших ПК в локальной сети и иметь доступ к обоим из них все время, самый простой способ сделать это - изменить порты служб, один из которых прослушивает порт 80, а другой - на 8080 или порт вы хотите. 99% сервисов позволят вам разместить / прослушать любой порт, который вы хотите. Если вы не укажете порт, он будет использовать сервис по умолчанию. Существуют и другие более продвинутые способы ведения дел, но это самый простой способ, и продвинутые методы не рассматриваются и не называются "переадресацией портов" никому, кто говорит, что по-другому нужно вернуться в сетевую школу.
Подумай об этом. Если пакет поступает на ваш внешний адрес и порт 80 UDP (при условии, что у вас есть только один внешний IP-адрес), как ваш маршрутизатор узнает, на какой из двух внутренних IP-адресов он должен быть перенаправлен?
Если вы хотите разместить две разные службы, вам понадобится отдельный порт для каждой.
Как ваш маршрутизатор узнает, что нужно перенаправлять адреса? Из-за NAT.
Если вы приобретаете домен, вы можете установить это имя в качестве имени вашего компьютера и имени NETBIOS.
Например, 2 разных компьютера, на которых размещаются веб-сайты на разных внутренних, но на одних и тех же внешних портах, должны быть названы по именам доменов, или вам необходимо настроить внутренний DNS-сервер с добавлением внутренних IP-адресов обоих доменов к его записям, к которым маршрутизатор подключается, и каждый раз, когда кто-то пытается подключиться Доменное имя (не публичный IP-адрес) маршрутизаторы NAT будут переадресовывать соединение соответственно.
Вы не можете перенаправлять точно одинаковые порты на несколько IP-адресов в одной сети, но вы можете использовать одни и те же внешние порты, если внутренние порты разные, и наоборот, когда речь идет об исходящем сетевом трафике.