Как упоминалось во многих других ответах, :: представляет все нули, и затем netstat может показывать двоеточие после адреса, так что вы получите три двоеточия.
То, что я не видел ни в одном из этих ответов, является ответом на вопрос о том, что это действительно означает (в данном случае).
В случае netstat :: (в IPv6) или 0.0.0.0 (в IPv4) в основном означает "любой".
Итак, программа прослушивает TCP-порт 80 (HTTP-порт) по любому из адресов.
Если у вас есть несколько интерфейсов сетевых карт (что вы и делаете, как я сейчас объясню), вы можете прослушивать только определенный адрес. Например, с некоторым программным обеспечением вы могли бы сделать что-то вроде заставить ваш HTTP-сервер прослушивать сетевую карту, которая использует проводной Ethernet, но не отвечать на сетевую карту, которая использует беспроводную сеть. Если вы это сделаете, то ваш компьютер может сделать что-то вроде прослушивания IPv4 192.0.2.100:80 (или IPv6 2001:db8:abcd::1234:80).
Но, поскольку вы слушаете «:::80», ваш компьютер не прослушивает трафик порта 80 только на одном входящем IP-адресе, вы прослушиваете трафик порта 80 на любом IPv6-адресе.
Почему вы хотите быть разборчивыми в том, какой интерфейс вы слушаете? Ну, иногда я использовал эту возможность, чтобы компьютер слушал интерфейс обратной связи. (Помните, когда я говорил, что у вас несколько интерфейсов сетевых карт ... это одна из причин, по которой я это сказал. Я предполагаю, что у вас есть реальное физическое сетевое соединение, и что у вас также есть петлевой интерфейс. Это наиболее типичная установка для большинства типов компьютеров в наши дни.) Я делаю это с SSH туннелированием. Затем я могу сделать что-то вроде подключения локального средства просмотра VNC к локальному концу туннеля SSH. Благодаря тому, что SSH-туннель прослушивает интерфейс обратной связи, мне не нужно беспокоиться о том, что SSH-туннель может прослушивать трафик, поступающий от одного из физических сетевых интерфейсов. Таким образом, SSH-туннель будет видеть только сетевой трафик, исходящий от моего компьютера.
В некоторых случаях 0.0.0.0 или :: в основном означает "неуказанный" адрес, как указано в разделе 2.5.2 RFC 4291, в котором говорится "Это указывает на отсутствие адреса". Я иногда видел это, когда программное обеспечение пытается сослаться на "недопустимый" адрес (например, если компьютеру не назначен адрес, возможно), где нет конкретного адреса для отображения. Однако в этом случае :: или 0.0.0.0 ссылаются на "неизвестный" адрес. Вот почему все LISTENING порты отображаются как "неизвестные". Для установленного соединения вы знаете, кто является удаленным концом, потому что вы общаетесь с ними. Для соединения "LISTENING" вы слушаете совершенно новые разговоры. Этот трафик может исходить из любой точки мира. Входящий трафик может прийти с любого адреса. И способ отображения Nestat, который заключается в указании адреса всех нулей. Поскольку нет конкретного адреса для использования, "неопределенный" адрес кажется вполне уместным.
Я просто подведу итог, отметив, что прослушивание программного обеспечения на всех сетевых интерфейсах - очень распространенная вещь. Некоторое программное обеспечение может быть настроено на прослушивание только определенного интернет-адреса или, возможно, конкретной сетевой карты. И это может быть немного более безопасно, потому что тогда программное обеспечение не прослушивает, где не ожидается действительный трафик. Это может ограничить способность атаковать. Тем не менее, многие программы не имеют такой опции, или такая опция несколько скрыта / скрыта. Таким образом, прослушивание на всех сетевых картах - не супер страшная вещь. Это довольно часто. И, если вы хотите запретить программам получать трафик через определенный сетевой порт, есть другие способы сделать это, включая блокировку нежелательного трафика с помощью брандмауэра. Если вы сделаете это, брандмауэр может заблокировать трафик, но (веб-сервер) все еще может прослушивать трафик на этом сетевом интерфейсе. В этом случае сервер никогда не получит трафик через этот интерфейс, но netstat все равно сообщит, что сервер прослушивает (для того трафика, который никогда не достигнет этого сервера). Просмотр отчета netstat о том, что серверное программное обеспечение прослушивает все интерфейсы, является очень распространенным явлением, и поэтому не о чем беспокоиться.
Наконец, я упомяну, что этот вопрос и этот ответ не относятся к Linux. (Я упоминаю об этом, потому что я вижу тег "Linux" в этом вопросе.) Показанные параметры командной строки и пример выходных данных могут быть получены из Linux, и разные операционные системы могут отображать вещи немного по-разному. Однако, что касается темы :: и 0.0.0.0, то, как netstat работает в этом отношении, идентично на машине с BSD или Microsoft Windows (и, вероятно, во многих других системах).