Как мне интерпретировать вывод 'netstat -a'

Некоторые вещи выглядят странно для меня:

  • В чем разница между 0.0.0.0, 127.0.0.1 и [::]?
  • Как следует читать каждую часть внешнего адреса (часть 1: часть 2)?
  • Что означает состояние Time_Wait, Close_Wait?
  • и т.п.

Может ли кто-нибудь дать краткий обзор того, как интерпретировать эти результаты?

21.08.2008 19:26:48
7 ОТВЕТОВ
РЕШЕНИЕ

0.0.0.0 обычно относится к прослушиванию материала на всех интерфейсах. 127.0.0.1 = localhost (только ваш локальный интерфейс) Я не уверен насчет [::]

TIME_WAIT означает, что обе стороны согласились закрыться, и TCP должен теперь подождать предписанное время, прежде чем разорвать соединение.

CLOSE_WAIT означает, что удаленная система завершила отправку, а ваша система еще не сказала, что завершила.

18
21.08.2008 19:28:47
что вы подразумеваете под прослушиванием "всех интерфейсов"?
Aravind Yarram 24.01.2013 21:46:05
Вы можете рассматривать каждую сетевую «карту» как интерфейс. Некоторые «карты» являются виртуальными (существуют только в программном обеспечении), некоторые являются физическими. Например, ваш Ethernet-адаптер и Wi-Fi-адаптер являются обоими интерфейсами, как и сетевой хост-адаптер для VirtualBox (он просто виртуальный, а не физический)
Sam Axe 24.01.2013 21:57:54

127.0.0.1 - ваш адрес обратной связи, также известный как «localhost», если он установлен в вашем файле HOSTS. Смотрите здесь для получения дополнительной информации: http://en.wikipedia.org/wiki/Localhost

0.0.0.0 означает, что приложение привязано ко всем IP-адресам, используя определенный порт. Информация о MS здесь: http://support.microsoft.com/default.aspx?scid=kb;en-us;175952

'::' - сокращение от ipv6 для ipv4 0.0.0.0.

7
21.08.2008 19:47:20

Send-Q - это объем данных, отправленных приложением, но еще не подтвержденных другой стороной сокета.

Recv-Q - это объем данных, полученных от NIC, но еще не использованных приложением.

Обе эти очереди находятся в памяти ядра. Существуют руководства, которые помогут вам настроить эти буферы ядра, если вы так склонны. Хотя, вы можете найти, что параметры по умолчанию работают довольно хорошо.

2
28.08.2008 03:50:02

В чем разница между 0.0.0.0, 127.0.0.1 и [::]?

  • 0.0.0.0 указывает что-то, что слушает на всех интерфейсах на машине.
  • 127.0.0.1 указывает на вашу собственную машину.
  • [::] - версия 0.0.0.0 для IPv6
  • Моя машина также показывает *: \ * для UDP, который показывает, что UDP-соединения на самом деле не имеют внешнего адреса - они получают пакеты откуда угодно. Это природа UDP.

Как следует читать каждую часть внешнего адреса (часть 1: часть 2)?

  • part1 это имя хоста или IP-адрес
  • часть2 порт
  • 7
    15.04.2015 02:53:03

    Для тех, кто видит [::] в их выводе netstat, держу пари, что ваша машина использует IPv6; это было бы эквивалентно 0.0.0.0, то есть прослушивать любой адрес IPv6.

    0
    28.08.2008 05:16:08
    Это также может зависеть от ОС. В моей системе Mac OS X по умолчанию IPv6 включен, но записи IPv6 ("tcp6") все еще говорят " . "
    benc 23.07.2009 06:02:37

    Эта ссылка очень помогла мне интерпретировать netstat -a

    Копия оттуда -

    TCP Connection States
    Ниже приводится краткое объяснение этого рукопожатия. В этом контексте «клиент» - это узел, запрашивающий соединение, а «сервер» - это узел, принимающий соединение. Обратите внимание, что эта нотация не отражает отношения клиент / сервер как принципала архитектуры.

    Установление соединения

    Клиент отправляет на сервер сообщение SYN, содержащее порт сервера и начальный порядковый номер (ISN) клиента (активное открытие).
    Сервер отправляет обратно свой собственный SYN и ACK (который состоит из ISN + 1 клиента).
    Клиент отправляет ACK (который состоит из ISN + 1 сервера).

    Разрыв соединения (модифицированное трехстороннее рукопожатие).

    Клиент отправляет FIN (активное закрытие). Теперь это полузакрытое соединение. Клиент больше не отправляет данные, но все еще может получать данные с сервера. После получения этого FIN сервер переходит в состояние пассивного закрытия.
    Сервер отправляет ACK (который является последовательностью FIN клиента + 1)
    . Сервер отправляет свой собственный FIN.
    Клиент отправляет ACK (который является последовательностью FIN сервера + 1). При получении этого ACK сервер закрывает соединение.
    Полузакрытое соединение может использоваться для прекращения отправки данных во время приема данных. Сокет-приложения могут вызвать завершение работы со вторым аргументом, установленным в 1, чтобы войти в это состояние.

    Объяснение состояний, как показано в Netstat:
    Объяснение состояний


    SYN_SEND Указывает на активное открытие.

    SYN_RECEIVED Сервер только что получил SYN от клиента.

    ESTABLISHED Клиент получил SYN сервера и сеанс установлен.

    LISTEN Сервер готов принять соединение.

    ПРИМЕЧАНИЕ. См. Документацию для вызова сокета listen (). Сокеты TCP в состоянии прослушивания не отображаются - это ограничение NETSTAT. Дополнительные сведения см. В следующей статье базы знаний Майкрософт: 134404 NETSTAT.EXE не показывает прослушивающие сокеты TCP FIN_WAIT_1 Указывает на активное закрытие.

    TIMED_WAIT Клиент входит в это состояние после активного закрытия.

    CLOSE_WAITУказывает на пассивное закрытие. Сервер только что получил первый FIN от клиента.

    FIN_WAIT_2 Клиент только что получил подтверждение своего первого FIN с сервера.

    LAST_ACK Сервер находится в этом состоянии, когда он отправляет свой собственный FIN.

    CLOSED Сервер получил ACK от клиента, и соединение закрыто.

    2
    11.02.2010 21:45:18

    Я понимаю, что ответ принят, но вот дополнительная информация:

    • Если 0.0.0.0в столбце «Локальный адрес» указано это, это означает, что порт прослушивает все «сетевые интерфейсы» (т. Е. Ваш компьютер, модем и сетевую карту).
    • Если 127.0.0.1в столбце «Локальный адрес» указано это, это означает, что порт прослушивает ТОЛЬКО соединения с вашего ПК, а не с Интернета или сети. Там нет опасности.
    • Если он отображается online IPв столбце «Локальный адрес», это означает, что порт ТОЛЬКО прослушивает соединения из Интернета.
    • Если он отображается local network IPв столбце «Локальный адрес», это означает, что порт ТОЛЬКО прослушивает соединения из локальной сети.
    • Внешний адрес - IP-адрес и номер порта удаленного компьютера, к которому подключен сокет. Имена, соответствующие IP-адресу и порту, отображаются, если не указан параметр -n. Если порт еще не установлен, номер порта отображается в виде звездочки (*). (из википедии)
    14
    13.04.2016 21:21:01
    упомянутая ссылка на статью не работает
    Varinder Singh 6.01.2016 14:53:34
    одно из лучших объяснений колонки Local Address в netstat в интернете. хорошая работа!
    Dachstein 23.02.2019 20:05:17