Отображение соединений
netstat поддерживает множество опций для
отображения активных и пассивных соединений. Опции
, ,
и показывают активные
TCP, UDP, RAW или UNIX соединения. Если вы зададите параметр
, сокеты, которые ждут соединения (то есть, слушают
сеть), также показываются. Это даст вам список всех серверов, которые в
настоящее время работают в вашей системе.
Вызов netstat -ta на
vlager даст:
$ Active Internet Connections Proto Recv-Q Send-Q Local Address Foreign Address (State) tcp 0 0 *:domain *:* LISTEN tcp 0 0 *:time *:* LISTEN tcp 0 0 *:smtp *:* LISTEN tcp 0 0 vlager:smtp vstout:1040 ESTABLISHED tcp 0 0 *:telnet *:* LISTEN tcp 0 0 localhost:1046 vbardolino:telnet ESTABLISHED tcp 0 0 *:chargen *:* LISTEN tcp 0 0 *:daytime *:* LISTEN tcp 0 0 *:discard *:* LISTEN tcp 0 0 *:echo *:* LISTEN tcp 0 0 *:shell *:* LISTEN tcp 0 0 *:login *:* LISTEN |
Видно, что больше всего серверов просто ждут соединения. Однако, четвертая
строка говорит о SMTP-соединении с vstout, а
шестая сообщает о telnet-соединении с
vbardolino.
При использовании параметра будут отображаться
все сокеты всех семейств сразу.
Когда и почему следует сбрасывать стек TCP/IP
Со временем Windows сохраняет кэш сетевых данных, включая IP-адреса. В системном реестре также есть параметры, которые напрямую связаны с интернет-протоколом. В любой момент они могут быть повреждены, что приведет к невозможности подключения к Интернету, даже если все остальные настройки выполнены правильно.
Повреждение стека может даже быть причиной того, что трафик вашего компьютера направляется на старый IP-адрес и не может обновить новый в кеше.
Иногда недостаточно изменить IP-адрес вашего компьютера или просто перезапустить его. Именно тогда пользователь должен прибегнуть к этому решению и сбросить свои настройки TCP / IP.
Передача данных в TCP
Теперь разберём пример передачи данных в уже установленном сеансе.
Клиент отравляет запрос к серверу. Поскольку данные поместились в один пакет TCP, он получил флаг PSH, чтобы сервер не ждал продолжение получения данных. При этом пакет получил 2 флага: ACK (подтвердил предыдущею передачу пакетов от сервера) и PSH.
В ответ на это сервер отправляет пакет ACK с номером успешно полученных данных.
Далее сервер обработал запрос и отправляет данные клиенту. Эти данные делятся на пакеты и отправляются сегментами.
Далее клиент подтверждает, что данные получены отправляя пакеты с флагом ACK.
Параметры netstat
-p, —program
Покажет PID и имя программы, к которой привязан порт
-a, —all
Покажет все порты — которые слушает сервер. Без этого параметра netstat покажет только порты, с которыми есть активные соединения
—numeric , -n
Отобразит адреса и номера портов в числовом формате. По-умолчанию netstat будет отображать название домена вместо IP и название сервиса вместо номера порта.
Сравните:
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 localhost:domain *:* LISTEN 13364/dnsmasq
и
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 13364/dnsmasq
—udp|-u, —tcp|-t
Параметры udp и tcp ограничивают netstat отображением соединений только для этих сетевых протоколов. Если не использовать их, то netstat также покажет соединения, использующие локальных сокеты.
Синтаксис, Опции
netstat netstat netstat интервал
- Первая форма команды показывает список активных сокетов (sockets) для каждого протокола.
- Вторая форма выбирает одну из нескольких других сетевых структур данных.
- Третья форма показывает динамическую статистику пересылки пакетов по сконфигурированным сетевым интерфейсам; аргумент интервал задает, сколько секунд собирается информация между последовательными показами.
Значение по умолчанию для аргумента система — /unix; для аргумента core в качестве значения по умолчанию используется /dev/kmem.
-r, --route отобразить таблицу маршрутизации -i, --interfaces отобразить таблицу интерфейсов. Показать состояние всех настроенных сетевых интерфейсов -g, --groups отобразить членства в мультикаст группах -s, --statistics отобразить сетевую статистику (как SNMP) -M, --masquerade отобразить замаскированные соединения -v, --verbose более детальный вывод -W, --wide don't truncate IP addresses -n, --numeric не преобразовывать адреса в имена --numeric-hosts не преобразовывать адреса в имена компьютеров --numeric-ports не преобразовывать номера портов в имена --numeric-users не преобразовывать в имена пользователей -N, --symbolic преобразовать имена устройств -e, --extend отображать другую/больше информации -p, --programs отображать номер процесса программы/имя программы для сокетов -c, --continuous непрерывный вывод -l, --listening отображать прослушиваемые сокеты сервера -a, --all, --listening отобразить все сокеты (по умолчанию - в статусе connected) -o, -timers отобразить таймеры -F, -fib отобразить информацию форвардинга базы (по умолчанию) -C, --cache отобразить кэш маршрутизации вместо FIB <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --netrom <AF>=Use '-6|-4' or '-A <af>' or '--<af>'; по умолчанию: inet Список возможный адресных семейств (которые поддерживают маршрутизацию): inet (DARPA Internet) inet6 (IPv6) ax25 (AMPR AX.25) netrom (AMPR NET/ROM) ipx (Novell IPX) ddp (Appletalk DDP) x25 (CCITT X.25)
netstat и сеть
Команда netstat показывает следующую информацию о передаче данных через сетевые интерфейсы:
- Адреса всех управляющий блоков протокола, связанных с сокетами, и состояние всех сокетов
- Число пакетов, полученных переданных и отброшенных подсистемой сетевого ввода-вывода
- Полная статистика для каждого интерфейса
- Маршруты и их состояние
-
Показать состояние всех настроенных сетевых интерфейсов:
# netstat -i Kernel Interface table Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1500 0 2673904188 0 0 0 13028338940 0 0 0 BMRU eth1 1500 0 542594 0 0 0 6 0 0 0 BMRU lo 16436 0 1141757133 0 0 0 1141757133 0 0 0 LRU
где,
- Iface. Имя интрефейса.
- MTU. Максимальный блок передачи (MTU). Максимальный размер, в байтах, передаваемого через интерфейс пакета.
Показать статистику UDP или Порты TCP:# netstat -su
IcmpMsg:
InType3: 9040
InType5: 27
InType8: 1
InType11: 407
OutType0: 1
OutType3: 1244
Udp:
пакетов принято: 75849
принято пакетов на неизвестный порт: 1183
ошибок приема пакетов: 0
пакетов послано: 144780
UdpLite:
IpExt:
InMcastPkts: 1390
OutMcastPkts: 185
InBcastPkts: 17666
OutBcastPkts: 1473
InOctets: 92565327
OutOctets: 855223704
InMcastOctets: 129017
OutMcastOctets: 23069
InBcastOctets: 1609681
OutBcastOctets: 202516
# netstat -st
Отображение статистики интерфейса
Когда netstat вызывается с параметром
, он показывает статистику для сетевых интерфейсов.
Если, кроме того, дается опция , он будет печатать
все интерфейсы, представленные в ядре, а не только
те, которые были отконфигурированы в настоящее время. На
vstout вывод netstat
будет напоминать это:
# Kernel Interface table Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flags lo 0 0 3185 0 0 0 3185 0 0 0 BLRU eth0 1500 0 972633 17 20 120 628711 217 0 0 BRU |
Поля и
показывают текущий MTU и метрическое значение для этого интерфейса. Колонки
и показывают сколько
пакетов были получены или переданы без ошибок (
/), повредились (/), сколько было потеряно
(/) и сколько
было потеряно из-за переполнения (/
).
Последняя колонка показывает флаги, установленные для этого интерфейса.
Здесь используется односимвольная версия флагов, которые печатает
ifconfig:
Сетевые интерфейсы
Показать список сетевых интерфейсов: netstat -i
# netstat -i Kernel Interface table Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1500 0 1911037 0 0 0 1382056 0 0 0 BMRU lo 16436 0 0 0 0 0 0 0 0 0 LRU
Показать расширенную информацию об интерфейсах (аналогично ifconfig): netstat -ie
# netstat -ie Kernel Interface table eth0 Link encap:Ethernet HWaddr 00:0c:29:68:4c:a4 inet addr:192.168.128.134 Bcast:192.168.128.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe68:4ca4/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:24278 errors:0 dropped:0 overruns:0 frame:0 TX packets:11275 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:33203025 (33.2 MB) TX bytes:665822 (665.8 KB) Interrupt:19 Base address:0x2000
Соединение TCP
TCP для передачи данных использует соединение. Соединение нужно установить перед тем, как начать передачу данных, а после того как передача данных завершена, соединение разрывается.
Задачи соединения
- Убедиться в том, что отправитель и получатель действительно хотят передавать данные друг другу
- Договориться о нумерации потоков байт. С точки зрения практической реализации нельзя всегда нумеровать данные в потоке байт с нуля. Каждый раз начальное значение для нумерации байт выбираются по определенному алгоритму и отправитель и получатель должны договориться между собой какое начальное значение они будут использовать для нумерации потока байт.
- При установке соединения происходит договоренность о некоторых параметрах соединения.
Установка соединения в TCP
Отправитель посылает запрос на установку соединения сообщение SYN от слова синхронизация. Также в сегмент включаются порядковый номер передаваемого байта.
Получатель в ответ передаёт сообщение SYN, куда включает подтверждение получения предыдущего сообщения ACK от слова acknowledge и порядковый номер байта, который он ожидает 7538, потому что на предыдущем этапе был получен байт с номером 7537.
Также отправитель включает в сегмент номер байта в потоке байт 36829. Номера байт в первом сообщении не могут быть всегда нулевыми, они выбираются по достаточно сложным алгоритмам, но для простоты можно представлять себе что эти номера выбираются случайным образом.
На третьем этапе пересылается подтверждение получения предыдущего запроса на установку соединения ACK номер следующего ожидаемого байта 36830, а также номер байта в сообщении. После этого соединение считается установленным и можно передавать данные.
Разрыв соединения в TCP
Соединение в TCP дуплексное — это означает, что после установки соединения передавать данные можно в две стороны. Есть две схемы разрыва соединения. Возможен одновременный разрыв соединения, в этом случае обе стороны разрывают соединение в одно и то же время, либо односторонние, в этом случае одна сторона говорит о том, что данные для передачи у нее закончились, но другая сторона может передавать данные еще достаточно долго.
Протокол TCP предусматривает два варианта разрыва соединения: корректное, с помощью одностороннего разрыва соединения и сообщения FIN и разрыв из-за критической ситуации с помощью сообщения RST.
Рассмотрим, как выполняется корректный разрыв соединения. Сторона, которая хочет разорвать соединение пересылает другой стороне сообщение FIN и в ответ получает сообщение ACK. Однако соединение разорвано только с одной стороны.
Когда другая сторона решила, что данные для передачи у нее закончились, она также передает сообщение FIN в ответ получает сообщение ACK подтверждение. На этом этапе соединение закрыто полностью в обе стороны.
Для разрыва соединения в критической ситуации из-за ошибок в приложении или с оборудованием используется одно сообщение RST. В этом случае соединение закрывается в обе стороны. Хотя сообщение RST предназначено для использования в критических ситуациях, некоторые протоколы используют его для быстрого закрытия соединения.
Как исправить Netstat.exe
Аккуратный и опрятный компьютер — это один из лучших способов избежать проблем с простыми интернет-инструментами. Это означает выполнение сканирования на наличие вредоносных программ, очистку жесткого диска cleanmgr и ПФС / SCANNOWудаление ненужных программ, мониторинг любых автозапускаемых программ (с помощью msconfig) и включение автоматических обновлений Windows. Не забывайте всегда делать регулярные резервные копии или хотя бы определять точки восстановления.
Если у вас возникла более серьезная проблема, постарайтесь запомнить последнее, что вы сделали, или последнее, что вы установили перед проблемой. Использовать resmon Команда для определения процессов, вызывающих вашу проблему. Даже в случае серьезных проблем вместо переустановки Windows вы должны попытаться восстановить вашу установку или, в случае Windows 8, выполнив команду DISM.exe / Online / Очистка-изображение / Восстановить здоровье, Это позволяет восстановить операционную систему без потери данных.
Обновлен декабрь 2021:
Мы рекомендуем вам попробовать это новое программное обеспечение, которое исправляет компьютерные ошибки, защищает их от вредоносных программ и оптимизирует производительность вашего ПК. Этот новый инструмент исправляет широкий спектр компьютерных ошибок, защищает от таких вещей, как потеря файлов, вредоносное ПО и сбои оборудования.
- Шаг 1: (Windows 10, 8, 7, XP, Vista — Microsoft Gold Certified).
- Шаг 2: Нажмите «Начать сканирование”, Чтобы найти проблемы реестра Windows, которые могут вызывать проблемы с ПК.
- Шаг 3: Нажмите «Починить все», Чтобы исправить все проблемы.
Загрузите или переустановите Netstat.exe
Вход в музей Мадам Тюссо не рекомендуется загружать файлы замены exe с любых сайтов загрузки, так как они могут сами содержать вирусы и т. д. Если вам нужно скачать или переустановить Netstat.exe, то мы рекомендуем переустановить основное приложение, связанное с ним Простые интернет-инструменты.
Информация об операционной системе
Ошибки Netstat.exe могут появляться в любых из нижеперечисленных операционных систем Microsoft Windows:
- Окна 10
- Окна 8.1
- Окна 7
- Windows Vista
- Windows XP
- Windows ME
- Окна 2000
Выдаваемая информация
Активные сокеты
Для каждого активного сокета показывается протокол, размер очередей приема и получения (в байтах), локальный и удаленный адрес, а также внутреннее состояние протокола. Символьный формат, обычно используемый для показа адресов сокетов, — это либо:
имя_хоста.порт
если имя хоста указано, либо:
сеть.порт
если адрес сокета задает сеть, но не конкретный хост. Имена хостов и сетей берутся из соответствующих записей в файле /etc/hosts или /etc/networks.
Если имя сети или хоста для адреса неизвестно (или если указана опция -n), адрес показывается числами. Не указанные или «обобщенные» адреса и порты показываются как «*». Подробнее о соглашениях по именованию в Internet см. страницу справочного руководства inet.
Сокеты TCP
Для сокетов TCP допустимы следующие значения состояния:
CLOSED | Закрыт. Сокет не используется. |
LISTEN | Ожидает входящих соединений. |
SYN_SENT | Активно пытается установить соединение. |
SYN_RECEIVED | Идет начальная синхронизация соединения. |
ESTABLISHED | Соединение установлено. |
CLOSE_WAIT | Удаленная сторона отключилась; ожидание закрытия сокета. |
FIN_WAIT_1 | Сокет закрыт; отключение соединения. |
CLOSING | Сокет закрыт, затем удаленная сторона отключилась; ожидание подтверждения. |
LAST_ACK | Удаленная сторона отключилась, затем сокет закрыт; ожидание подтверждения. |
FIN_WAIT_2 | Сокет закрыт; ожидание отключения удаленной стороны. |
TIME_WAIT | Сокет закрыт, но ожидает пакеты, ещё находящиеся в сети для обработки |
Сетевые структуры данных
Показываемые данные зависят от выбора опции, -i или -r. Если указаны обе опции, netstat выберет -i.
Показ таблицы маршрутизации
Таблица маршрутизации показывает все имеющиеся маршруты (routes) и статус каждого из них. Каждый маршрут состоит из целевого хоста или сети и шлюза (gateway), который используется для пересылки пакетов. Столбец flags (флаги) показывает статус маршрута (U, если он включен), ведет ли маршрут на шлюз (G), был ли маршрут создан динамически при помощи перенаправления (D) и используется ли адрес индивидуального хоста (H) вместо адреса сети. Например, интерфейс закольцовывания (loopback transport provider), lo0, всегда имеет флаг H.
Прямые маршруты создаются для каждого интерфейса, подключенного к локальному хосту; поле gateway (шлюз) для таких записей показывает адрес выходного интерфейса.
Столбец refcnt показывает текущее количество активных использований для маршрута. Протоколы, ориентированные на соединение, обычно используют в ходе соединения один маршрут, тогда как протоколы без соединения получают маршрут для каждой посылки одному и тому же адресату.
Столбец use показывает количество пакетов, посланных по маршруту.
Столбец interface показывает сетевой интерфейс, используемый маршрутом.
Суммарная статистика передачи данных
Когда задан аргумент интервал, netstat показывает таблицу суммарной статистической информации о переданных пакетах, ошибках и коллизиях. Первая показываемая строка данных, а также каждая последующая 24-я строка содержит суммарную статистическую информацию с момента последней перезагрузки системы. Каждая последующая строка показывает данные, накопленные за очередной указанный в командной строке интервал с момента последнего показа.
Что такое Netstat.exe?
netstat.exe это исполняемый файл, который является частью Простые интернет-инструменты Программа, разработанная PcWinTech.com, Программное обеспечение обычно о 1.17 MB по размеру.
Расширение .exe имени файла отображает исполняемый файл. В некоторых случаях исполняемые файлы могут повредить ваш компьютер. Пожалуйста, прочитайте следующее, чтобы решить для себя, является ли netstat.exe Файл на вашем компьютере — это вирус или троянский конь, который вы должны удалить, или это действительный файл операционной системы Windows или надежное приложение.
(опциональное предложение для Reimage — Cайт | Лицензионное соглашение | Политика конфиденциальности | Удалить)
Разрешить состояние time_wait процесса
Просмотр статуса подключения к процессу #netstat -an|awk ‘/tcp/ {print $6}’|sort|uniq -c
описание статуса
Если в системе обнаружено большое количество соединений состояния TIME_WAIT, настройте параметры ядра, чтобы решить эту проблему. vim /etc/sysctl.confTCP-соединение в статусе time_wait под netstat:
Программа запуска обнаруживает, что порт занят. После проверки netstat обнаруживаются следующие явления: Обнаружено, что порт находится в состоянии TIME_WAIT и состоянии FIN_WAIT2 и не может быть освобожден
Источник статуса TIME_WAIT : Это может быть вызвано аварийным завершением работы предыдущей виртуальной машины.Статус TIME_WAIT Причина: Только сторона, которая первой вызывает close () для инициирования активного завершения работы, войдет в состояние TIME_WAIT. TCP-соединение, которое переходит в состояние TIME_WAIT, должно пройти через 2MSL, чтобы вернуться в исходное состояние.Избегание : Попытайтесь активно завершить работу клиентом, чтобы избежать time_wait на сервере
По запросу номер TCP-соединения
Решение
Отредактируйте файл ядра /etc/sysctl.conf и добавьте следующее содержимое:
Затем выполните / sbin / sysctl -p, чтобы параметры вступили в силу.
Проще говоря, это открытие повторного использования системы TIMEWAIT и быстрого восстановления.
Если после указанной выше настройки производительности производительность неудовлетворительна, вы можете продолжить изменять конфигурацию:
Проверить эффект
Иди получить их
Мы рассмотрели два способа использования команды netstat для просмотра портов прослушивания. Его можно использовать либо в старой командной строке, либо в скрипте PowerShell. Имея информацию, которую он может нам дать, мы посмотрели, как она может помочь нам понять, что делает наш компьютер.
Если вы думаете, что netstat — отличная утилита, взгляните на некоторые другие утилиты Windows TCP / IP, такие как tracert, ipconfig и nslookup. Или используйте Resource Monitor, чтобы лучше изучить скрытый сайт и интернет-соединения, Вы можете многое сделать, чтобы точно увидеть, что делает ваш компьютер.
Параметры
- -a
- Вывод всех активных подключений TCP и прослушиваемых компьютером портов TCP и UDP.
- -e
-
Вывод статистики Ethernet, например количества отправленных и принятых байтов и пакетов.
Этот параметр может комбинироваться с ключом -s. - -n
-
Вывод активных подключений TCP с отображением адресов и номеров портов в числовом формате
без попыток определения имен. - -o
-
вывод активных подключений TCP и включение кода процесса (PID) для каждого подключения. Код
процесса позволяет найти приложение на вкладке Процессы диспетчера задач Windows.
Этот параметр может комбинироваться с ключами -a, -n и -p. - -p протокол
-
Вывод подключений для протокола, указанного параметром протокол. В этом случае
параметр протокол может принимать значения tcp, udp, tcpv6 или
udpv6. Если данный параметр используется с ключом -s для вывода статистики по
протоколу, параметр протокол может иметь значение tcp, udp,
icmp, ip, tcpv6, udpv6, icmpv6 или ipv6. - -s
-
Вывод статистики по протоколу. По умолчанию выводится статистика для протоколов TCP, UDP,
ICMP и IP. Если установлен протокол IPv6 для Windows XP, отображается статистика для
протоколов TCP через IPv6, UDP через IPv6, ICMPv6 и IPv6. Параметр -p может
использоваться для указания набора протоколов. - -r
-
Вывод содержимого таблицы маршрутизации IP. Эта команда эквивалентна команде route
print. - интервал
-
Обновление выбранных данных с интервалом, определенным параметром интервал (в
секундах). Нажатие клавиш CTRL+C останавливает обновление. Если этот параметр пропущен,
netstat выводит выбранные данные только один раз. - /?
- Отображение справки в командной строке.
Состояния сеанса TCP
Сеанс TCP может находится в следующих состояниях:
- CLOSED – начальное состояние;
- LISTEN – сервер ожидает запросы от клиента;
- SYN-SENT – клиент хочет установить соединение с сервером и ожидает подтверждение;
- SYN-RECEIVED – сервер получил запрос на создание сеанса, отправил ответный запрос и ожидает подтверждение;
- ESTABLISHED – соединение установлено, идёт передача данных;
- FIN-WAIT-1 – одна из сторон завершает соединение, отправив флаг FIN;
- CLOSE-WAIT – другая сторона переходит в это состояние, отправив подтверждение на FIN, но продолжает передачу;
- FIN-WAIT-2 – первый узел получил ACK, разорвал свое соединение, но еще читает данные;
- LAST-ACK – второй узел заканчивает передачу и отправляет флаг FIN;
- TIME-WAIT – сервер получил пакет с флагом FIN, отправил флаг ACK и ждёт некоторое время, перед окончательным закрытием соединения;
- CLOSING – обе стороны инициировали закрытие соединения одновременно.
Что такое Netstat?
Команда netstat представляет собой комбинацию слов «сеть» и «статистика». Команда netstat работает во всех версиях Windows от Windows XP до Windows 10. Она также используется в других операционных системах (ОС), таких как Unix и Linux, но здесь мы будем придерживаться Windows.
Netstat может предоставить нам:
- Название протокола, который использует порт (TCP или UDP).
- Локальный IP-адрес и имя компьютера и номер используемого порта.
- IP-адрес и номер порта, к которому мы подключаемся.
- Состояние TCP-соединения. Подробнее об этих состояниях читайте в Раздел обработки событий RFC 793,
Создание TCP сессии
Для установления соединения использует трехкратное рукопожатие.
Первый этап. Клиент отправляет на сервер пакет с флагом SYN. При этом клиент устанавливает порядковый номер сегмента на случайное значение A.
Второй этап. В ответ сервер отвечает пакетом с флагами SYN и ACK. Номер подтверждения установлен на единицу больше принятого (A+1). Поскольку сервер также будет отправлять данные, то для себя он тоже выбирает номер первого пакета, который будет другим случайным числом B.
Третий этап. Клиент отправляет ACK на сервер. Порядковый номер устанавливается равным A+1, а номер подтверждения устанавливается на B+1.
На этом этапе клиент и сервер получили подтверждение соединения и образовали двухстороннюю связь.
Syntax
Parameters
Parameter | Description |
---|---|
-a | Displays all active TCP connections and the TCP and UDP ports on which the computer is listening. |
-b | Displays the executable involved in creating each connection or listening port. In some cases well-known executables host multiple independent components, and in these cases the sequence of components involved in creating the connection or listening port is displayed. In this case the executable name is in [] at the bottom, on top is the component it called, and so forth until TCP/IP was reached. Note that this option can be time-consuming and will fail unless you have sufficient permissions. |
-e | Displays Ethernet statistics, such as the number of bytes and packets sent and received. This parameter can be combined with -s. |
-n | Displays active TCP connections, however, addresses and port numbers are expressed numerically and no attempt is made to determine names. |
-o | Displays active TCP connections and includes the process ID (PID) for each connection. You can find the application based on the PID on the Processes tab in Windows Task Manager. This parameter can be combined with -a, -n, and -p. |
-p | Shows connections for the protocol specified by Protocol. In this case, the Protocol can be tcp, udp, tcpv6, or udpv6. If this parameter is used with -s to display statistics by protocol, Protocol can be tcp, udp, icmp, ip, tcpv6, udpv6, icmpv6, or ipv6. |
-s | Displays statistics by protocol. By default, statistics are shown for the TCP, UDP, ICMP, and IP protocols. If the IPv6 protocol is installed, statistics are shown for the TCP over IPv6, UDP over IPv6, ICMPv6, and IPv6 protocols. The -p parameter can be used to specify a set of protocols. |
-r | Displays the contents of the IP routing table. This is equivalent to the route print command. |
Redisplays the selected information every interval seconds. Press CTRL+C to stop the redisplay. If this parameter is omitted, this command prints the selected information only once. | |
/? | Displays help at the command prompt. |
Remarks
-
The netstat command provides statistics for the following:
Parameter Description Proto The name of the protocol (TCP or UDP). Local address The IP address of the local computer and the port number being used. The name of the local computer that corresponds to the IP address and the name of the port is shown unless the -n parameter is specified. If the port is not yet established, the port number is shown as an asterisk (*). Foreign address The IP address and port number of the remote computer to which the socket is connected. The names that corresponds to the IP address and the port are shown unless the -n parameter is specified. If the port is not yet established, the port number is shown as an asterisk (*). State Indicates the state of a TCP connection, including: - CLOSE_WAIT
- CLOSED
- ESTABLISHED
- FIN_WAIT_1
- FIN_WAIT_2
- LAST_ACK
- LISTEN
- SYN_RECEIVED
- SYN_SEND
- TIMED_WAIT
Examples
To display both the Ethernet statistics and the statistics for all protocols, type:
To display the statistics for only the TCP and UDP protocols, type:
To display active TCP connections and the process IDs every 5 seconds, type:
To display active TCP connections and the process IDs using numerical form, type:
Идентификация сетевых процессов
Для того, чтобы однозначно иметь представление о конкретных процессах или демонах, слушающих соединения (порты) в системе, следует воспользоваться ключами -l и -p. Первый позволяет выводить, собственно, только слушающие порты, второй — для идентификации процесса/демона, например:
$ sudo netstat -lp
Активные соединения с интернетом (only servers) Proto Recv-Q Send-Q Local Address ForeignAddress State PID/Program name tcp 0 0 localhost:mysql 0.0.0.0:* LISTEN 1154/mysqld tcp6 0 0 :http :* LISTEN 1201/apache2
Как можно видеть, в данном выводе веб-сервер (один из его процессов) прослушивает по протоколу tcp6 все HTTP-соединения. Демон MySQL прослушивает локальный порт mysql по протоколу tcp. Для того, чтобы иметь возможность видеть номера самих портов, а также IP-адреса хостов, следует к команде netstat -lp добавить ключ n. Стоит также отметить, что для получения полной информации о слушающих процессах нужно запускать команду netstat от имени суперпользователя. Если не используется опция -n и не работает служба DNS, то netstat будет выполняться очень медленно.
Получение статистики для различных сетевых протоколов
Команда netstat позволяет видеть статистические данные по использованию всех доступных в системе протоколов. Для этого нужно использовать ключ -s:
$ netstat -s Ip: 671349985 total packets received 0 forwarded 345 incoming packets discarded 667912993 incoming packets delivered 589623972 requests sent out 60 dropped because of missing route 203 fragments dropped after timeout Icmp: 242023 ICMP messages received 912 input ICMP message failed. ICMP input histogram: destination unreachable: 72120 timeout in transit: 573 echo requests: 17135 echo replies: 152195 66049 ICMP messages sent 0 ICMP messages failed ICMP output histogram: destination unreachable: 48914 echo replies: 17135 Tcp: 4442780 active connections openings 1023086 passive connection openings 50399 failed connection attempts 0 connection resets received 44 connections established 666674854 segments received 585111784 segments send out 107368 segments retransmited 86 bad segments received. 3047240 resets sent Udp: 4395827 packets received 31586 packets to unknown port received. 0 packet receive errors 4289260 packets sent
Как видно, выводимая статистика отображается с разбивкой по разделам для каждого протокола. Здесь содержатся очень полезные сведения для анализа и поиска неполадок в работе сети.
Также для команды netstat есть ещё один полезный ключ, позволяющий выводить обновлённые данные с интервалом в одну секунду. Этот ключ работает не в каждой связке с другими опциями. Однако, отслеживание интерфейсов в режиме реального времени с этим ключом очень удобно, например команда netstat -i -a -c будет выводить статистику по использованию всех интерфейсов в системе, в том числе и отключенных (ключ -a) автоматически каждую секунду — ключ -c.
Информацию о таблице маршрутизации позволяет получить ключ -r:
$ netstat -r -n Таблица маршрутизации ядра протокола IP Destination Gateway Genmask Flags MSS Window irtt Iface 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eno1 192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eno0 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
Все рассмотренные ключи предоставляют исчерпывающие возможности для получения информации об использовании сети в подавляющем большинстве случаев. Однако, команда netstat располагает кроме рассмотренных, куда более внушительным арсеналом опций, ознакомиться с которыми можно с помощью команды man netstat.
Пример вывода команды netstat -punta
Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 13364/dnsmasq tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1388/dnsmasq tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 903/sshd tcp 0 0 0.0.0.0:59002 0.0.0.0:* LISTEN 30644/kvm tcp 0 0 0.0.0.0:33002 0.0.0.0:* LISTEN 23829/rinetd tcp 0 0 127.0.0.1:5900 0.0.0.0:* LISTEN 17410/kvm tcp 0 52 177.19.4.112:22 82.117.248.74:63222 ESTABLISHED 12922/0 tcp 0 0 177.19.4.112:59002 217.12.196.118:4300 ESTABLISHED 30644/kvm tcp6 0 0 ::1:53 :::* LISTEN 13364/dnsmasq tcp6 0 0 :::22 :::* LISTEN 903/sshd tcp6 61 0 2a01:4f8:150:5163:35222 2a01:4f8:b15:1000::4:21 CLOSE_WAIT 2934/curlftpfs tcp6 61 0 2a01:4f8:150:5163:45023 2a01:4f8:b15:1000::4:21 CLOSE_WAIT 2934/curlftpfs udp 0 0 127.0.0.1:53 0.0.0.0:* 13364/dnsmasq udp 0 0 192.168.122.1:53 0.0.0.0:* 1388/dnsmasq udp 0 0 0.0.0.0:67 0.0.0.0:* 1388/dnsmasq udp6 0 0 ::1:53 :::* 13364/dnsmasq