Назад | Перейти на главную страницу

Разрешение сетевого интерфейса с помощью 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) прослушивает разные интерфейсы. Или я все неправильно понимаю?

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-адресом, но это означает, что серверный процесс не выполняет никакой дополнительной фильтрации.