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

некоторые вещи кажутся мне странными:

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

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

7 ответов


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

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

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


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

  • если он говорит 0.0.0.0 в столбце локальный адрес это означает, что порт прослушивает все "сетевые интерфейсы" (т. е. ваш компьютер, ваш модем(Ы) и вашу сетевую карту (ы)).
  • если он говорит 127.0.0.1 в столбце локальный адрес это означает, что порт прослушивает только соединения с самого компьютера, а не из интернета или сети. Никакой опасности.
  • если она показывает online IP в столбце локальный адрес это означает, что порт прослушивает только соединения из интернета.
  • если он отображает local network IP в столбце локальный адрес это означает, что порт прослушивает только соединения из локальной сети.
  • внешний адрес - IP-адрес и номер порта удаленного компьютера, к которому разъем подключен. Имена, соответствующие IP-адресу и Порту, отображаются, если параметр-n не указанный. Если порт еще не установлен, номер порта отображается звездочкой (*). (из Википедии)

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

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

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


в чем различие между 0.0.0.0, 127.0.0.1, и [::]?

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

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

  • part1-это имя хоста или IP-адрес
  • part2-это порт

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

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

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


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

    копия с

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

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

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

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

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

    объяснения состояния, как показано в Netstat:
    Государственное Объяснение


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

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

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

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

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

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

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

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

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

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


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