Jak wspomina wiele innych odpowiedzi: :: reprezentuje wszystkie zera, a następnie netstat może wyświetlać dwukropek po adresie, więc otrzymujesz trzy dwukropki.
W żadnej z tych odpowiedzi nie widziałem odpowiedzi na pytanie o to, co to tak naprawdę oznacza (w tym przypadku).
W przypadku netstat, :: (w IPv6) lub 0.0.0.0 (w IPv4) w zasadzie oznacza „dowolny”.
Tak więc oprogramowanie nasłuchuje na porcie TCP 80 (porcie HTTP) pod dowolnym adresem.
Jeśli masz wiele interfejsów kart sieciowych (co robisz, jak wyjaśnię za chwilę), możesz słuchać tylko pod określonym adresem. Na przykład w przypadku niektórych programów możesz zrobić coś takiego, aby serwer HTTP nasłuchiwał na karcie sieciowej korzystającej z przewodowego Ethernetu, ale nie reagował na kartę sieciową korzystającą z sieci bezprzewodowej. Jeśli to zrobisz, twój komputer może zrobić coś takiego jak nasłuch na IPv4 192.0.2.100:80 (lub IPv6 2001: db8: abcd :: 1234: 80).
Ale ponieważ słuchasz „::: 80”, twój komputer nie nasłuchuje ruchu portu 80 na jednym przychodzącym adresie IP, nasłuchujesz ruchu portu 80 na dowolnym adresie IPv6.
Dlaczego miałbyś chcieć być wybrednym w kwestii interfejsu, którego słuchasz? Cóż, jednym ze sposobów, w jaki czasami korzystałem z tej możliwości, jest słuchanie przez komputer interfejsu pętli zwrotnej. (Pamiętaj, kiedy powiedziałem, że masz wiele interfejsów kart sieciowych ... to jeden z powodów, dla których to powiedziałem. Zgaduję, że masz prawdziwe fizyczne połączenie sieciowe i że masz również interfejs pętli zwrotnej. Jest to najbardziej typowa konfiguracja dla większość typów komputerów w dzisiejszych czasach.) Robię to z tunelowaniem SSH. Następnie mogę zrobić coś takiego, jak połączenie lokalnej przeglądarki VNC z lokalnym końcem tunelu SSH. Dzięki temu, że tunel SSH nasłuchuje na interfejsie pętli zwrotnej, nie muszę się martwić, że tunel SSH może nasłuchiwać ruchu przychodzącego z jednego z fizycznych interfejsów sieciowych. Więc,
W niektórych przypadkach 0.0.0.0 lub :: zasadniczo oznacza „nieokreślony” adres, zgodnie z RFC 4291 sekcja 2.5.2która mówi „Wskazuje brak adresu”. Czasami widziałem to, gdy oprogramowanie próbuje odwoływać się do „nieprawidłowego” adresu (na przykład, jeśli komputer nie ma przypisanego adresu), na którym nie ma określonego adresu do wyświetlenia. Jednak w tym przypadku :: lub 0.0.0.0 odnosi się do „nieznanego” adresu. Dlatego wszystkie porty SŁUCHAWKI są oznaczone jako „nieznane”. W przypadku ustanowionego połączenia wiesz, kto jest zdalnym końcem, ponieważ komunikujesz się z nimi. W przypadku połączenia „LISTENING” słuchasz zupełnie nowych rozmów. Ten ruch może pochodzić, cóż, być może z dowolnego miejsca na świecie. Ruch przychodzący może pochodzić z dowolnego adresu. I sposób, w jaki wyświetla się nestat, to określenie adresu wszystkich zer. Ponieważ nie ma konkretnego adresu do użycia,
Podsumowując, zauważę, że oprogramowanie nasłuchujące na wszystkich interfejsach sieciowych jest bardzo powszechną rzeczą. Niektóre programy można skonfigurować tak, aby nasłuchiwały tylko określonego adresu internetowego lub konkretnej karty sieciowej. Może to być nieco bardziej bezpieczne, ponieważ wtedy oprogramowanie nie nasłuchuje tam, gdzie nie oczekuje się prawidłowego ruchu. To może ograniczyć zdolność do ataku. Jednak wiele programów nie ma takiej opcji lub taka opcja jest nieco zakopana / ukryta. Zatem słuchanie na wszystkich kartach sieciowych nie jest straszną rzeczą. To dość powszechne. A jeśli chcesz uniemożliwić oprogramowaniu odbieranie ruchu na określonym porcie sieciowym, istnieją inne sposoby na osiągnięcie tego, w tym blokowanie niechcianego ruchu za pomocą zapory ogniowej. Jeśli to zrobisz, zapora może blokować ruch, ale serwer (internetowy) może nadal nasłuchiwać ruchu w tym interfejsie sieciowym. W takim przypadku serwer nigdy nie uzyska ruchu na tym interfejsie, ale netstat nadal będzie raportować, że serwer nasłuchuje (dla tego ruchu, który nigdy nie dotrze do tego serwera). Widzenie raportu netstat, że oprogramowanie serwera nasłuchuje na wszystkich interfejsach, jest bardzo powszechne i dlatego nie należy się tym szczególnie przejmować.
Na koniec wspomnę, że to pytanie i ta odpowiedź nie są specyficzne dla Linuksa. (Wspominam o tym, ponieważ w tym pytaniu widzę znacznik „Linux”). Pokazane parametry wiersza poleceń i przykładowe dane wyjściowe mogły pochodzić z Linuksa, a różne systemy operacyjne mogą wyświetlać nieco inne rzeczy. Jednak w kwestii :: i 0.0.0.0 sposób działania netstat w tym zakresie jest identyczny na komputerze z systemem BSD lub Microsoft Windows (i przypuszczalnie w wielu innych systemach).