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

Для команды netstat предусмотрено десять параметров, позволяющих получить подробную информацию для решения самых разных задач. Впрочем, не менее полезные сведения можно получить и безо всяких параметров.

Чаще всего netstat применяют с параметром -a, чтобы получить список всех подключений и прослушиваемых портов. Ниже перечислены несколько других параметров, которые могут пригодиться при использовании этой утилиты.

Полностью определенное имя домена. Параметр -f позволяет узнать FQDN для внешнего адреса. При использовании netstat с этим параметром имена разрешаются как во внутренней, так и во внешней сети. На рис. A показан вывод команды.

Рисунок A

Какой процесс использует тот или иной порт. Сочетание параметров -a -n -o позволяет выяснить, какому идентификатору процесса (PID) соответствует тот или иной порт. (См. ) Вывод команды показан на рис. B.


Рисунок B

А если добавить к этой комбинации параметр -b, для каждого процесса будут использоваться дружественные имена, как показано на рис. C. Правда, для этого потребуются права администратора.


Рисунок C

Обратите внимание: удаленные адреса, указывающие на 192.168.1.220:3261, принадлежат службе инициатора Windows iSCSI и обозначаются иначе, чем адреса остальных служб.

Вывод таблицы маршрутизации. Когда нужно выяснить, почему на одном компьютере сетевое соединение работает иначе, чем на других в той же сети, можно использовать параметр -r, который выводит маршрут для данной системы, как показано на рис. D. Обратите внимание на раздел «Постоянные маршруты» (Persistent routes): в нем указываются все статические маршруты, настроенные для Windows Server).


Рисунок D

Эти четыре вариации команды netstat существенно облегчают

К оманда Netstat отображает различные сетевые данные, такие как сетевые подключения, таблица маршрутизации, статистики интерфейсов, маскированные соединения, многоадресное пространство и т.д.,

В этой статье, давайте рассмотрим 10 практических примеров команды NetStat в Unix.

1. Список всех портов (как прослушиваемые, так и не прослушиваемые порты)

Список всех портов с помощью команды Netstat -a

# netstat -a | more Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 localhost:30037 *:* LISTEN udp 0 0 *:bootpc *:* Active UNIX domain sockets (servers and established) Proto RefCnt Flags Type State I-Node Path unix 2 [ ACC ] STREAM LISTENING 6135 /tmp/.X11-unix/X0 unix 2 [ ACC ] STREAM LISTENING 5140 /var/run/acpid.socket

Список всех портов TCP с помощью netstat -at

# netstat -at Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:http 0.0.0.0:* LISTEN tcp 0 0 localhost:webcache 0.0.0..0.0.0:* LISTEN tcp 0 0 localhost:domain 0.0.0.0:* LISTEN

Перечисление всех UDP-портов с помощью netstat -au

# netstat -au Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State udp 0 0 andreyex..ru:50053 google-public-dn:domain ESTABLISHED

2. Список сокетов, которые находятся в состояние прослушмвания

Список только прослушивающих портов с помощью netstat -l

# netstat -l Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:http 0.0.0.0:* LISTEN tcp 0 0 localhost:webcache 0.0.0..0.0.0:* LISTEN tcp 0 0 localhost:domain 0.0.0.0:* LISTEN

Список только прослушивающихся TCP портов с помощью netstat -lt

# netstat -lt Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:http 0.0.0.0:* LISTEN tcp 0 0 localhost:webcache 0.0.0..0.0.0:* LISTEN tcp 0 0 localhost:domain 0.0.0.0:* LISTEN

Список только прослушивающихся UDP портов с помощью netstat -lu

# netstat -lu Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State udp 0 0 сайт:domain 0.0.0.0:* udp 0 0 localhost:domain 0.0.0..0.0.0:*

Список только прослушивающихся портов UNIX с помощью netstat -lx

# netstat -lx Active UNIX domain sockets (only servers) Proto RefCnt Flags Type State I-Node Path unix 2 [ ACC ] STREAM LISTENING 19693 tmp/core.adm.internal unix 2 [ ACC ] SEQPACKET LISTENING 8723 /run/udev/control unix 2 [ ACC ] STREAM LISTENING 12566 /var/run/dbus/system_bus_socket unix 2 [ ACC ] STREAM LISTENING 16948 /var/run/fail2ban/fail2ban.sock unix 2 [ ACC ] STREAM LISTENING 19702 tmp/core.sock

Команда netstat , входящая в стандартный набор сетевых инструментов UNIX, отображает различную network–related информацию, такую как сетевые подключения, статистику интерфейсов, таблицы маршрутизации, masquerade, multicast, и т.п.

В этой статье рассмотрим десять практических примеров использования команды netstat в Linux .

1. Список всех портов (как прослушиваемых, так и нет)

Перечислить все порты: netstat -a

# netstat -a | more Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 localhost:domain *:* LISTEN udp6 0 0 fe80::20c:29ff:fe68:ntp [::]:* Active UNIX domain sockets (servers and established) Proto RefCnt Flags Type State I-Node Path unix 2 [ ACC ] STREAM LISTENING 20492 /var/run/mysqld/mysqld.sock unix 2 [ ACC ] STREAM LISTENING 23323 /var/run/php5-fpm.sock

Перечислить все TCP порты: netstat -at

# netstat -at Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 localhost:domain *:* LISTEN tcp 0 0 *:ssh *:* LISTEN tcp 0 0 localhost:ipp *:* LISTEN tcp 0 0 *:http *:* LISTEN

Перечислить все UDP порты: netstat -au

# netstat -au Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State udp 0 0 localhost:domain *:* udp 0 0 *:bootpc *:* udp6 0 0 fe80::20c:29ff:fe68:ntp [::]:*

2. Список сокетов, находящихся в состоянии LISTEN

Перечислить все прослушиваемые порты: netstat -l

# netstat -l Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 localhost:domain *:* LISTEN tcp6 0 0 [::]:ssh [::]:* LISTEN udp 0 0 192.168.128.134:ntp *:*

Перечислить прослушиваемые TCP порты: netstat -lt

# netstat -lt Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 localhost:domain *:* LISTEN tcp 0 0 localhost:ipp *:* LISTEN tcp6 0 0 [::]:ssh [::]:* LISTEN

Перечислить прослушиваемые UDP порты: netstat -lu

# netstat -lu Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State udp 0 0 *:bootpc *:* udp6 0 0 [::]:ntp [::]:*

Перечислить прослушиваемые UNIX сокеты: netstat -lx

# netstat -lx Active UNIX domain sockets (only servers) Proto RefCnt Flags Type State I-Node Path unix 2 [ ACC ] STREAM LISTENING 3141 /var/run/fail2ban/fail2ban.sock unix 2 [ ACC ] STREAM LISTENING 20492 /var/run/mysqld/mysqld.sock unix 2 [ ACC ] STREAM LISTENING 23323 /var/run/php5-fpm.sock

3. Просмотр статистики для каждого протокола

Показать статистику всех портов: netstat -s

# netstat -s Ip: 11150 total packets received 1 with invalid addresses 0 forwarded 0 incoming packets discarded 11149 incoming packets delivered 11635 requests sent out Icmp: 13791 ICMP messages received 12 input ICMP message failed. Tcp: 15020 active connections openings 97955 passive connection openings 135 failed connection attempts Udp: 2841 packets received 180 packets to unknown port received. .....

Показать статистику только TCP портов: netstat -st

# netstat -st

Показать статистику только UDP портов: netstat -su

# netstat -su

4. Отображение PID и имени процесса в выводе netstat

Опция netstat -p добавит «PID/Program Name» в вывод netstat, и может быть совмещена с любым другим набором опций. Это очень полезно при отладке, для определения того, какая программа работает на определённом порту.

# netstat -pt Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 org-ru-putty.vm.udf:www 52-106.plus.kerch:55723 ESTABLISHED 9486/nginx: worker tcp 0 0 org-ru-putty.vm.udf:www 52-106.plus.kerch:55757 ESTABLISHED 9486/nginx: worker

5. Разрешение имён в выводе netstat

Когда вам не нужно резолвить имя хоста, имя порта, имя пользователя, используйте опцию netstat -n для вывода значений в цифровом формате. Команда покажет IP-адрес вместо хоста, номер порта вместо имени порта, UID вместо имени пользователя.

Это также ускорит вывод, так как netstat не станет выполнять ненужный поиск.

# netstat -an

Для вывода цифровых значений только некоторых из этих пунктов, используйте следующие команды:

# netsat -a --numeric-ports # netsat -a --numeric-hosts # netsat -a --numeric-users

6. Вывод информации netstat непрерывно

Опция netstat -c будет выводить информацию непрерывно, в стиле top , обновляя экран каждые несколько секунд.

# netstat -c Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 org-ru-putty.vm.udf:www 182.131.74.202:59933 FIN_WAIT2 tcp 0 0 org-ru-putty.vm.udf:www 182.131.74.202:63761 FIN_WAIT2 tcp 0 0 org-ru-putty.vm.udf:www 92-181-66-102-irk.:4585 ESTABLISHED ^C

7. Неподдерживаемые системой семейства адресов

Опция netstat --verbose покажет подробный вывод, а в самом конце отобразит неподдерживаемые Address Family.

Netstat: no support for `AF IPX" on this system. netstat: no support for `AF AX25" on this system. netstat: no support for `AF X25" on this system. netstat: no support for `AF NETROM" on this system.

8. Маршрутизация ядра

Показать таблицу маршрутизации ядра: netstat -r

# netstat -r Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface default 192.168.128.2 0.0.0.0 UG 0 0 0 eth0 192.168.128.0 * 255.255.255.0 U 0 0 0 eth0

Примечание: Используйте netstat -rn для просмотра маршрута в цифровом формате без разрешения имён узлов.

9. Соответствие портов и процессов

Узнать, какой порт занимает определённая программа:

# netstat -ap | grep ssh (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) tcp 0 0 *:ssh *:* LISTEN - tcp6 0 0 [::]:ssh [::]:* LISTEN -

Выяснить, каким процессом используется определённый порт:

# netstat -an | grep ":80"

10. Сетевые интерфейсы

Показать список сетевых интерфейсов: 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

11. netstat -lnptux

Резюмируем вышеописанное и объединим ключи в одну полезную команду, которая покажет:

  • -l все открытые порты (LISTEN)
  • -t по протоколу TCP
  • -u по протоколу UDP
  • -x по протоколу UNIX Socket
  • -n без резолва IP/имён
  • -p но с названиями процессов и PID-ами

Примечание: Не все процессы могут быть идентифицированы последним ключом, чужие процессы показаны не будут. Вы должны иметь права root чтобы увидеть всё.

# netstat -lnptux Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 9614/nginx tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 601/sshd udp 0 0 8.8.4.4:123 0.0.0.0:* 574/ntpd udp 0 0 127.0.0.1:123 0.0.0.0:* 574/ntpd udp 0 0 0.0.0.0:123 0.0.0.0:* 574/ntpd Active UNIX domain sockets (only servers) Proto RefCnt Flags Type State I-Node PID/Program name Path unix 2 [ ACC ] STREAM LISTENING 4233 826/python /var/run/fail2ban/fail2ban.sock unix 2 [ ACC ] STREAM LISTENING 8122 2561/mysqld /var/run/mysqld/mysqld.sock unix 2 [ ACC ] STREAM LISTENING 160413 7301/php-fpm.conf /var/run/php5-fpm.sock

Январь 2013, сайт

Please enable JavaScript

© 2009–2019, сайт - При использовании материалов сайта указывайте источник.

Полезная команда и утилита одновременно, которая называется netstat, позволяет просматривать информацию о соединениях системы по протоколам UDP и TCP.

Команду можно запустить так, чтобы она выполнялась каждые n секунд и позволяла получать следующую информацию в табличном формате:

  • Название протокола (TCP или UDP)
  • Локальный адрес IP и номер порта, которые используются соединением через сокет
  • Удаленный адрес IP (адрес назначения) и номер порта, который используется соединением через сокет
  • Состояние соединения (Ожидающее (Listening) ), Установленное (Established) ) и т.д.)

Изучение состояния портов соединения между двумя системами позволяет исключить протокол TCP/IP, как одну из причин проблемы. Для полного понимания информации, предоставляемой этой командой, необходимо понять принципы установки соединения в протоколе TCP/IP. Вот основные этапы процесса установки соединения TCP/IP:

1. При попытке установить соединение клиент отправляет сообщение SYN серверу.

2. Сервер отвечает собственным сообщением SYN и подтверждением (ACK).

3. После этого клиент отправляет сообщение ACK обратно на сервер, завершая процесс установки соединения.

Процесс разрыва соединения состоит из следующих этапов:

1. Клиент сообщает "Я закончил", отправляя сообщение FIN серверу. На этом этапе клиент только принимает данные от сервера, но сам ничего не отправляет.

2. После этого сервер отправляет сообщение ACK и отправляет собственное сообщение FIN клиенту.

3. После этого клиент отправляет сообщение ACK серверу, подтверждая запрос сервера FIN.

4. При получении сообщения ACK от клиента сервер закрывает соединение.

Понимание этапов процесса установки и разрыва соединения позволяет более прозрачно интерпретировать состояния соединений в выводе команды netstat. Соединения в списке могут находиться в следующих состояниях.

  • CLOSE_WAIT - указывает на пассивную фазу закрытия соединения, которая начинается после получения сервером сообщения FIN от клиента.
  • CLOSED - соединение прервано и закрыто сервером.
  • ESTABLISHED - клиент установил соединение с сервером, получив от сервера сообщение SYN.
  • FIN_WAIT_1 - клиент инициировал закрытие соединения (отправил сообщение FIN).
  • FIN_WAIT_2 - клиент получил сообщения ACK и FIN от сервера.
  • LAST_ACK - сервер отправил сообщение FIN клиенту.
  • LISTEN - сервер готов принимать входящие соединения.
  • SYN_RECEIVED - сервер получил сообщение SYN от клиента и отправил ему ответ.
  • TIMED_WAIT - клиент отправил сообщение FIN серверу и ожидает ответа на это сообщение.
  • YN_SEND - указанное соединение активно и открыто.

Теперь все, что необходимо знать о команде netstat, это синтаксис ее вызова:

Netstat [-a] [-e] [-n] [-o] [-p <протокол>] [-r] [-s] [интервал]

Параметры команды netstat

Параметр

Использование

Отображает все соединения и ожидающие порты

Отображает статистику Ethernet

Показывает адреса и порты в цифровом формате (адреса IP вместо имен интерфейсов

Отображает идентификатор процесса-владельца для каждого соединения

P <протокол>

Показывает соединения для указанного протокола. Можно выбрать один из таких протоколов: TCP, TCPv6, UDP и UDPv6. При указании параметра -s можно указывать IP, IPv6, ICMP и ICMPv6.

Отображает таблицу маршрутизации системы

Отображает статистику для каждого протокола в отдельности; по умолчанию статистика отображается для протоколов TCP, TCPv6, UDP и UDPv6, IP, IPv6, ICMP и ICMPv6. Подмножество протоколов может быть указано с помощью параметра -p.

интервал

Интервал в секундах, за который команда обновляет свой вывод. При указании интервала команду можно прервать комбинацией клавиш .

Netstat это очень полезная утилита, которую некоторые системные администраторы используют каждый день, а некоторым приходится прибегать к ней только для диагностики неисправностей. Но в любом случае понимать эту утилиту и уметь её использовать очень полезно.

Команда имеет всего 10 параметров, из которых наверно самым часто используемым является параметр -a , который отображает все подключения и используемые порты. Однако даже указания параметров netstat от отображает довольно полезную информацию.

Рассмотрим теперь полезные параметры утилиты netstat

Полное доменное имя: При использовании параметра -f будут отображается полные доменные имена подключенных удаленных хостов. Имена будут резолвится любыми доступными способами. На рисунке ниже вы можете посмотреть пример данного действия:

Какой процесс использует открытый порт: С помощью комбинации параметров -a -n -o можно отслеживать какой процесс использует открытый порт. Из вывода команды мы узнаем идентификатор процесса (PID), с помощью которого в диспетчере задач можем найти нужный процесс.

Вы можете использовать ещё один полезный параметр для более дружелюбного вывода информации. Параметр -b покажет имя каждого процесса, однако он требует прав администратора.

Отображение таблицы маршрутизации: При использовании параметра -r вы можете посмотреть текущую таблицу маршрутизации.

Я чаще всего использую именно 4 указанные параметра для диагностики проблем Windows. Как ещё вы используете netstat и почему?

Полезная информация

Любите одеваться модно и красиво? Зайдите в интернет магазин одежды из Кореи и купите себе за приемлимую цену вещи великолепного качества.



Эта статья также доступна на следующих языках: Тайский

  • Next

    Огромное Вам СПАСИБО за очень полезную информацию в статье. Очень понятно все изложено. Чувствуется, что проделана большая работа по анализу работы магазина eBay

    • Спасибо вам и другим постоянным читателям моего блога. Без вас у меня не было бы достаточной мотивации, чтобы посвящать много времени ведению этого сайта. У меня мозги так устроены: люблю копнуть вглубь, систематизировать разрозненные данные, пробовать то, что раньше до меня никто не делал, либо не смотрел под таким углом зрения. Жаль, что только нашим соотечественникам из-за кризиса в России отнюдь не до шоппинга на eBay. Покупают на Алиэкспрессе из Китая, так как там в разы дешевле товары (часто в ущерб качеству). Но онлайн-аукционы eBay, Amazon, ETSY легко дадут китайцам фору по ассортименту брендовых вещей, винтажных вещей, ручной работы и разных этнических товаров.

      • Next

        В ваших статьях ценно именно ваше личное отношение и анализ темы. Вы этот блог не бросайте, я сюда часто заглядываю. Нас таких много должно быть. Мне на эл. почту пришло недавно предложение о том, что научат торговать на Амазоне и eBay. И я вспомнила про ваши подробные статьи об этих торг. площ. Перечитала все заново и сделала вывод, что курсы- это лохотрон. Сама на eBay еще ничего не покупала. Я не из России , а из Казахстана (г. Алматы). Но нам тоже лишних трат пока не надо. Желаю вам удачи и берегите себя в азиатских краях.

  • Еще приятно, что попытки eBay по руссификации интерфейса для пользователей из России и стран СНГ, начали приносить плоды. Ведь подавляющая часть граждан стран бывшего СССР не сильна познаниями иностранных языков. Английский язык знают не более 5% населения. Среди молодежи — побольше. Поэтому хотя бы интерфейс на русском языке — это большая помощь для онлайн-шоппинга на этой торговой площадке. Ебей не пошел по пути китайского собрата Алиэкспресс, где совершается машинный (очень корявый и непонятный, местами вызывающий смех) перевод описания товаров. Надеюсь, что на более продвинутом этапе развития искусственного интеллекта станет реальностью качественный машинный перевод с любого языка на любой за считанные доли секунды. Пока имеем вот что (профиль одного из продавцов на ебей с русским интерфейсом, но англоязычным описанием):
    https://uploads.disquscdn.com/images/7a52c9a89108b922159a4fad35de0ab0bee0c8804b9731f56d8a1dc659655d60.png