Из моего прочтения этой страницы видно, что ntp не использует 0.0.0.0
адрес INADDR_ANY исключительно частично из соображений безопасности и частично из соображений аутентификации.
Первый порт 123 находится ниже 1024, и поэтому считается привилегированным портом, и только root может связываться с этим портом. Ntp обычно настроен на удаление привилегий после запуска. Из того, что я понимаю из списков рассылки и статьи, когда привилегии отброшены, невозможно открыть сокет для ответа с правильного исходного порта 123, поэтому ntp открывает сокеты для каждого назначенного адреса, прежде чем он отбрасывает привилегии.
Из того, что я прочитал, некоторые механизмы аутентификации для ntp в основном требуют, чтобы порт источника и назначения был 123, и ничего больше.
Дело не совсем понятно. См. Раздел об адресе с подстановочными0.0.0.0
символами, по какой-то причине он открывается ntpd, но из комментариев его никогда не следует использовать, за исключением случаев, когда это возможно в некоторых особых редких случаях, в которых разработчики не совсем уверены, но они этого не делают. Я не хочу вынимать розетку, на случай, если они сломают вещи.
Обратите внимание, что обычно ntpd не должен принимать пакеты с подстановочными адресами, поскольку при этом возникает ряд проблем, включая отправку пакетов возврата по другому адресу, отличному от запрошенного адреса отправителя. DannyMayer - 27 апреля 2009 г.
Я думаю, что основной ответ на ваш вопрос в приведенном выше комментарии здесь.
INADDR_ANY
не используется, как почти любой другой протокол. Статья, на которую я ссылаюсь в своем ответе, проясняет, что это отчасти функция безопасности, а отчасти то, как протокол предназначен для ожидания ответов на порту 123.