Как интерпретировать вывод "netstat -a"
Некоторые вещи кажутся мне странными:
- В чем разница между 0.0.0.0, 127.0.0.1 и [::]?
- Как следует читать каждую часть внешнего адреса (part1: part2)?
- Что означает состояние Time_Wait, Close_Wait?
- и др.
Может ли кто-нибудь дать краткий обзор того, как интерпретировать эти результаты?
Ответы
Ответ 1
0.0.0.0 обычно относится к материалам, прослушивающим все интерфейсы.
127.0.0.1 = localhost (только ваш локальный интерфейс)
Я не уверен в [::]
TIME_WAIT означает, что обе стороны договорились закрыть и TCP
теперь должен ждать заданное время, прежде чем принимать соединение
вниз.
CLOSE_WAIT означает, что удаленная система завершила отправку
и ваша система еще должна сказать, что это закончено.
Ответ 2
Я понимаю, что ответ принят, но вот дополнительная информация:
- Если в столбце "Локальный адрес" указано
0.0.0.0
, это означает, что порт прослушивает все "сетевые интерфейсы" (т.е. ваш компьютер, модем и сетевые карты).
- Если в столбце "Локальный адрес" указано
127.0.0.1
, это означает, что порт ТОЛЬКО прослушивает подключения с вашего ПК, а не из Интернета или сети. Там нет опасности.
- Если он отображает ваш
online IP
в столбце "Локальный адрес", это означает, что порт ТОЛЬКО прослушивает подключения из Интернета.
- Если он отображает ваш
local network IP
в столбце "Локальный адрес", это означает, что порт ТОЛЬКО прослушивает подключения из локальной сети.
- Внешний адрес - IP-адрес и номер порта удаленного компьютера, к которому подключен сокет. Имена, соответствующие IP-адресу и порту, отображаются, если не указан параметр -n. Если порт еще не установлен, номер порта отображается как звездочка (*). (из Википедии)
Ответ 3
127.0.0.1 - это ваш loopback-адрес, также известный как "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.
Ответ 4
В чем разница между 0.0.0.0, 127.0.0.1 и [::]?
-
- 0.0.0.0 указывает на то, что прослушивает все интерфейсы на машине.
- 127.0.0.1 указывает вашу собственную машину.
- [::] - версия IPv6 0.0.0.0
- Моя машина также показывает *:\* для UDP, который показывает, что UDP-соединения действительно не имеют внешнего адреса - они получают пакеты из любого места. Такова природа UDP.
Как следует читать каждую часть чужого адреса (part1: part2)?
part1 - это имя хоста или IP-адрес part2 - это порт
Ответ 5
Send-Q - это объем данных, отправленных приложением, но еще не подтвержденный другой стороной сокета.
Recv-Q - это объем данных, полученных от сетевого адаптера, но еще не потребляемый приложением.
Обе эти очереди находятся в памяти ядра.
Существуют руководства, чтобы помочь вам настроить эти буферы ядра, если вы так склонны. Хотя, вы можете найти параметры по умолчанию, достаточно хорошо.
Ответ 6
Эта ссылка очень помогла мне интерпретировать netstat -a
Копия оттуда -
TCP Connection States
Ниже приводится краткое объяснение этого рукопожатия. В этом контексте "клиент" - это одноранговый узел, запрашивающий соединение, а "сервер" - это тот, кто принимает соединение. Обратите внимание, что эта нотация не отражает отношения Client/Server как архитектурный принцип.
Установление соединения
Клиент отправляет на сервер SYN-сообщение, содержащее порт сервера и начальный порядковый номер клиента (ISN) (активный открытый).
Сервер отправляет обратно свои собственные SYN и ACK (который состоит из клиента ISN + 1).
Клиент отправляет ACK (который состоит из сервера ISN + 1).
Соединение Срыв (измененное трехстороннее квитирование).
Клиент отправляет FIN (активное закрытие). Это теперь полузакрытое соединение. Клиент больше не отправляет данные, но все еще может получать данные с сервера. Получив этот FIN, сервер переходит в состояние пассивного закрытия.
Сервер отправляет ACK (который является последовательностью FIN FIN + 1)
Сервер отправляет свой собственный FIN.
Клиент отправляет ACK (который представляет собой последовательность FIN сервера + 1). После получения этого ACK сервер закрывает соединение.
Полузакрытое соединение может использоваться для прекращения отправки данных во время приема данных порога. Приложения сокета могут вызывать выключение со вторым аргументом, установленным в 1, чтобы ввести это состояние.
Объяснение состояний, показанное в Netstat:
Пояснение по стране
SYN_SEND
Указывает на активное открытие.
SYN_RECEIVED
Сервер только что получил SYN от клиента.
ESTABLISHED
Установлен клиентский сервер SYN и сеанс.
LISTEN
Сервер готов к подключению.
ПРИМЕЧАНИЕ. См. документацию для вызова сокета listen(). Сокеты TCP в состоянии прослушивания не отображаются - это ограничение NETSTAT. Для получения дополнительных сведений обратитесь к следующей статье Microsoft Knowledge Base:
134404 NETSTAT.EXE не показывает порты прослушивания TCP
FIN_WAIT_1 Показывает активное закрытие.
TIMED_WAIT
Клиент вводит это состояние после активного закрытия.
CLOSE_WAIT
Указывает на пассивное закрытие. Сервер только что получил первый FIN от клиента.
FIN_WAIT_2
Клиент только что получил подтверждение своего первого FIN с сервера.
LAST_ACK
Сервер находится в этом состоянии, когда он отправляет свой собственный FIN.
CLOSED
Сервер, полученный ACK от клиента и соединение, закрыт.
Ответ 7
Для тех, кто видит [::] в своем выходе netstat, я уверен, что на вашем компьютере работает IPv6; который будет эквивалентен 0.0.0.0, то есть прослушивать любой адрес IPv6.