Z lektury tej strony wynika, że ntp nie używa 0.0.0.0
adresu INADDR_ANY wyłącznie częściowo ze względów bezpieczeństwa, a częściowo ze względów uwierzytelnienia.
Pierwszy port 123 ma mniej niż 1024, a zatem jest uważany za uprzywilejowany port i tylko root może się z nim połączyć. Ntp jest zwykle ustawiony tak, aby upuszczał uprawnienia po uruchomieniu. Z tego, co rozumiem z list mailowych i artykułu po zniesieniu uprawnień, nie mogę otworzyć gniazda, aby odpowiedzieć z poprawnego portu źródłowego 123, więc ntp otwiera gniazda dla każdego przypisanego adresu, zanim upuści uprawnienia.
Z tego, co przeczytałem, niektóre mechanizmy uwierzytelniania dla NTTP w zasadzie wymagają, aby port źródłowy i docelowy wynosił 123 i nic więcej.
Sprawa nie jest do końca jasna. Zobacz sekcję o adresie wieloznacznym 0.0.0.0
, z jakiegoś powodu jest on otwierany przez ntpd, ale z komentarzy nigdy tak naprawdę nie należy go używać, z wyjątkiem możliwych w niektórych wyjątkowych rzadkich przypadkach, że deweloperzy nie są całkowicie pewni, ale nie chcę usunąć gniazdo, na wypadek, gdyby coś zepsuły.
Zauważ, że normalnie ntpd nie powinien akceptować pakietów na adresy wieloznaczne, ponieważ istnieje wiele problemów, jeśli to robisz, w tym wysyłanie pakietów zwrotnych na inny adres niż adres żądany przez nadawcę. DannyMayer - 27 kwietnia 2009 r
Myślę, że główna odpowiedź na twoje pytanie znajduje się w powyższym komentarzu tutaj.
INADDR_ANY
nie jest używane jak prawie każdy inny protokół. Artykuł, do którego odsyłam w mojej odpowiedzi, wydaje się wyjaśniać, że jest to po części funkcja bezpieczeństwa, a po części sposób, w jaki projekt protokołu oczekuje odpowiedzi na porcie 123.