netstat-a информация о списке команд как::: 30179::: www

netstat -a информация о списках команд как это:

tcp        0      0 :::30179                :::*           LISTEN      
tcp        0      0 :::www                  :::*           LISTEN      
tcp        0      0 :::10001                :::*           LISTEN      
tcp        0      0 :::telnet               :::*           LISTEN   

Что это значит? Я пытаюсь узнать, но я не мог.

-1
задан 9 August 2016 в 11:14

1 ответ

Те сокеты слушают на IPv6 неуказанный адрес, который является ::. Это коротко для 0000:0000:0000:0000:0000:0000:0000:0000 (несколько блокируются 0, может быть сжат в ::, видеть RFC 5952 ). Это подобно IPv4 неуказанный адрес 0.0.0.0. Это означает, что сервис слушает на всех адресах хоста.

Обычно слушание на сокете IPv6 означает, что сокет только принимает входящие соединения от клиентов IPv6, и программное обеспечение должно было бы открыть второй сокет для прислушиваний к клиентам IPv4.

однако существует один особый случай: слушание на IPv6 неуказанный адрес и установка эти IPV6_V6ONLY флаг к 0 (ложь). Во многих системах, включая Linux, это - значение по умолчанию. В этом случае сокет примет и IPv4 и клиенты IPv6 на единственном сокете. Эта функция помогает разработчикам программного обеспечения поддерживать IPv6: они могут записать программное обеспечение, которое просто прислушивается к обоим протоколам с помощью единственного сокета.

оборотная сторона этого - то, что не легко видеть, какие сокеты слушают на обоих протоколах и который снабжает сокетом, только слушают на IPv6. Это также сбивает с толку, что : используется в адресе IPv6 и также как разделитель между адресом и портом. Тем путем Вы получаете путание ::: бит.

BSD базировался, системы имеют тенденцию показывать ту же информацию по-другому. Там Ваш пример был бы отображен как, например:

tcp46      0      0  *.30179              *.*               LISTEN
tcp46      0      0  *.www                *.*               LISTEN
tcp46      0      0  *.10001              *.*               LISTEN
tcp46      0      0  *.telnet             *.*               LISTEN

сервер А, который использует два отдельных сокета для IPv4 и IPv6, обнаруживается как:

tcp4       0      0  *.ssh                *.*               LISTEN
tcp6       0      0  *.ssh                *.*               LISTEN

и

udp4       0      0  *.ntp                *.*
udp6       0      0  *.ntp                *.*

мне лично нравится этот, это явно показывает, какие протоколы слушают на (т.е. tcp4 / tcp6 / tcp46) и использующей * символ для неуказанного адреса.

я просто заметил, что недавние версии Ubuntu используют эту нотацию:

tcp        0      0 *:ssh                 *:*               LISTEN
tcp6       0      0 [::]:ssh              [::]:*            LISTEN
tcp6       0      0 [::]:https            [::]:*            LISTEN

, Который уже намного более ясен. К сожалению, это не показывает различие между сокетом, который слушает только на IPv6 (как эти ssh сокет) и сокет, который слушает и на IPv4 и на IPv6 (как эти https сокет).

0
ответ дан 28 September 2019 в 17:21

Другие вопросы по тегам:

Похожие вопросы: