2

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

Но я сомневаюсь, что произойдет, если предположить, что у меня есть 2 компьютера с веб-сервером на порту 80. В этом случае как маршрутизатор узнает, с какого компьютера отправлять запрос. Я знаю, если есть только 1 компьютер, то маршрутизатор будет знать, но сомнение в случае 2.

Ситуация может быть такой, как если бы у меня было 2 компьютера в моей частной сети, и на каждом из них был свой веб-сайт. Теперь я хочу, чтобы оба моих сервера работали на порту 80, чтобы пользователю не нужно было вводить номер порта (или, возможно, по какой-то причине я хочу, чтобы оба веб-сервера имели одинаковый номер порта). Что происходит сейчас?

3 ответа3

7

Роутеру пофиг. Вы должны указать ему, какой из двух компьютеров переслать, и он игнорирует другой.

Если вы хотите, чтобы оба компьютера были доступны в Интернете, вам необходимо перенаправить два разных порта (т. Е. 80 и 81) на маршрутизаторе, по одному на каждый из двух компьютеров.


Если вы хотите, чтобы пользователям не приходилось вводить номер порта при просмотре веб-сайтов, вам нужно настроить обратный прокси-сервер, например, nginx, где-то за маршрутизатором (на третьем компьютере или на одном из первых двух компьютеров), и сделать роутер перешёл на прокси. Затем прокси-сервер можно настроить для просмотра URI, к которому клиент пытался получить доступ (имя хоста является наиболее распространенным, ищите «виртуальные хосты веб-сервера», хотя вы можете основывать решение на других частях URI, таких как путь), и направить запрос на один из исходных серверов (который может работать на любом порту).

1

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

Вот как это выглядит на панели конфигурации моего маршрутизатора:

Скриншот

1

Я думаю, что ваша интуиция верна.

Я не думаю, что он может знать / решить через переадресацию портов. Вы можете перенаправить порт только на один из компьютеров, и это зависит от конфигурации маршрутизатора, т. Е. Вы решаете, что либо компьютер A должен быть тем, которому маршрутизатор перенаправляет запросы на порт 80, либо компьютер B.

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