Насколько я понимаю 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
) прослушивает разные интерфейсы. Или я все неправильно понимаю?
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
, они будут подключаться к их собственный система, а не ваша.)
Как сервер обработает запрос на 0.0.0.0:777
Не будет - вы не можете отправить запрос на 0.0.0.0, точка.
Это означает, что хост будет реагировать на КАЖДЫЙ запрос (на порту 777), независимо от используемого IP-адреса. Очевидно, что сервер не может быть настроен с IP-адресом, но это означает, что серверный процесс не выполняет никакой дополнительной фильтрации.