Сетевой интерфейс, разрешающий 0.0.0.0

Сетевой интерфейс, разрешающий 0.0.0.0

Насколько я понимаю, 0.0.0.0имеются в виду все сетевые интерфейсы данного хоста (включая 127.0.0.1).

Предположим, у меня есть три интерфейса 192.0.2.40, 203.0.113.150и 127.0.0.1на сервере (ОС Linux).

На 192.0.2.40:777, у меня есть ServerA. На 203.0.113.150:777, у меня есть ServerB. Как сервер будет обрабатывать запрос на 0.0.0.0:777? Я имею в виду, когда один и тот же порт ( 777) прослушивается на разных интерфейсах. Или я все неправильно понимаю?

решение1

Как сервер обработает запрос на 0.0.0.0:777?

Этого не произойдет — вы не сможете отправить запрос на 0.0.0.0, и точка.

Это означает, что хост будет реагировать на КАЖДЫЙ запрос (на порту 777), независимо от используемого IP-адреса. Очевидно, что сервер должен быть настроен с IP-адресом, но это означает, что процесс сервера не выполняет никакой дополнительной фильтрации.

решение2

0.0.0.0и 127.0.0.1используются внутри. 0.0.0.0используется для обозначения всех интерфейсов, и 127.0.0.1обозначает интерфейс обратной связи. Они не имеют ничего общего с входящим трафиком.

Если клиенту необходимо подключиться к вашему серверу, ему необходимо указать фактический IP-адрес интерфейса, например 192.0.2.40:777или 203.0.113.150:777. Таким образом, ваша машина Linux узнает, какой сервер должен обслуживать запрос. (Если клиент попытается подключиться к 127.0.0.1или 0.0.0.0, он подключится ких(система, а не ваша.)

Связанный контент