Команда NETSTAT - отображение статистики сетевых соединений. Описание команды NETSTAT (статистика активных подключений TCP) Активные подключения в командной строке

    Команда NETSTAT предназначена для получения сведений о состоянии сетевых соединений и слушаемых на данном компьютере портах TCP и UDP, а также, для отображения статистических данных по сетевым интерфейсам и протоколам.

Формат командной строки:

NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p протокол] [-r] [-s] [-t] [интервал]

Параметры командной строки:

-a - Отображение всех подключений и ожидающих портов.
-b - Отображение исполняемого файла, участвующего в создании каждого подключения, или ожидающего порта. Иногда известные исполняемые файлы содержат множественные независимые компоненты. Тогда отображается последовательность компонентов, участвующих в создании подключения, либо ожидающий порт. В этом случае имя исполняемого файла находится снизу в скобках , сверху - компонент, который им вызывается, и так до тех пор, пока не достигается TCP/IP. Заметьте, что такой подход может занять много времени и требует достаточных разрешений.
-e - Отображение статистики Ethernet. Может применяться вместе с параметром -s.
-f - Отображение полного имени домена (FQDN) для внешних адресов.
-n - Отображение адресов и номеров портов в числовом формате.
-o - Отображение кода (ID) процесса каждого подключения.
-p протокол - Отображение подключений для протокола, задаваемых этим параметром. Допустимые значения: TCP, UDP, TCPv6 или UDPv6. Используется вместе с параметром -s для отображения статистики по протоколам. Допустимые значения: IP, IPv6, ICMP, ICMPv6, TCP, TCPv6, UDP или UDPv6.
-r - Отображение содержимого таблицы маршрутов.
-s - Отображение статистики протокола. По умолчанию статистика отображается для протоколов IP, IPv6, ICMP, ICMPv6, TCP, TCPv6, UDP и UDPv6. Параметр -p позволяет указать подмножество выводимых данных.
-t - Отображение текущего подключения в состоянии переноса нагрузки с процессора на сетевой адаптер при передаче данных ("offload").
-v - Подробный вывод информации, если это возможно.
интервал - Повторный вывод статистических данных через указанный интервал в секундах. Для прекращения вывода данных нажмите клавиши CTRL+C. Если параметр не задан, сведения о текущей конфигурации выводятся один раз.

На практике, утилиту netstat.exe удобно использовать в цепочке с командами постраничного вывода (more ), перенаправления стандартного вывода в файл ( > ) и поиска текста в результатах вывода (find ).

netstat -a | more - отобразить все соединения в постраничном режиме вывода на экран.

netstat -a -n| more - то же, что и в предыдущем примере, но с отображением номеров портов и IP-адресов в числовом формате. В отличие от предыдущего примера, команда netstat с параметром -t отрабатывает намного быстрее.

netstat -a -f | more - то же, что и в предыдущем примере, но с отображением полных DNS-имен узлов, участвующих в соединениии.

netstat -a > C:\netstatall.txt - отобразить все соединения с записью результатов в файл C:\netstatall.txt.

netstat -a | find /I "LISTENING" - отобразить все соединения со статусом LISTENING, т.е. отобразить список сетевых интерфейсов и портов, ожидающих входящие соединения ("слушаемых" портов). Ключ /I в команде find указывает, что при поиске текста, не нужно учитывать регистр символов.

netstat -a | find /I "listening" > C:\listening.txt - отобразить все соединения со статусом LISTENING с записью результатов в файл C:\listening.txt.

Пример отображаемой информации:

Активные подключения

Имя - название протокола.

Локальный адрес - локальный IP-адрес участвующий в соединении или связанный со службой, ожидающей входящие соединения (слушающей порт). Если в качестве адреса отображается 0.0.0.0 , то это означает - "любой адрес", т.е в соединении могут использоваться все IP-адреса существующие на данном компьютере. Адрес 127.0.0.1 - это петлевой интерфейс, используемый в качестве средства IP протокола для взаимодействия между процессами без реальной передачи данных.

Внешний адрес Внешний IP-адрес, участвующий в создании соединения.

Состояние - состояние соединения. Состояние Listening говорит о том, что строка состояния отображает информацию о сетевой службе, ожидающей входящие соединения по соответствующему протоколу на адрес и порт, отображаемые в колонке "Локальный адрес ". Состояние ESTABLISHED указывает на активное соединение. В колонке "Состояние" для соединений по протоколу TCP может отображаться текущий этап TCP-сессии определяемый по обработке значений флагов в заголовке TCP - пакета (Syn, Ask, Fin ...). Возможные состояния:

CLOSE_WAIT - ожидание закрытия соединения.
CLOSED - соединение закрыто.
ESTABLISHED - соединение установлено.
LISTENING - ожидается соединение (слушается порт)
TIME_WAIT - превышение времени ответа.

Имя программного модуля, связанного с данным соединением отображается, если задан параметр -b в командной строке при запуске netstat.exe.

netstat -a -b - получить список всех сетевых соединений и связанных с ними программ.

TCP 192.168.0.3:3389 89.22.52.11:5779 ESTABLISHED
CryptSvc

В данном примере отображается информация о соединении, в создании которого участвуют программные компоненты CryptSvc и svchost.exe .

netstat -ab - параметры командной строки можно объединять. Параметр -ab эквивалентен -a -b

netstat -e - получить статистические данные для обмена по протоколу Ethernet. Отображается суммарные значения принятых и полученных байт для всех сетевых адаптеров Ethernet.

Статистика интерфейса

netstat -e -v - кроме суммарной статистики, отображается информация об обмене данными через отдельные сетевые интерфейсы.

netstat -e -s - дополнительно к статистике Ethernet, отображается статистика для протоколов IP , ICMP , TCP , UDP

Статистика интерфейса

Статистика IPv4

Получено пакетов
Получено ошибок в заголовках
Получено ошибок в адресах
Направлено датаграмм

Отброшено полученных пакетов

Запросов на вывод
Отброшено маршрутов
Отброшено выходных пакетов

Требуется сборка
Успешная сборка
Сбоев при сборке


Создано фрагментов
= 10877781
= 0
= 27307
= 0
= 0
= 448
= 11384479
= 11919871
= 0
= 1517
= 6
= 0
= 0
= 0
= 5918
= 0
= 11836

Статистика IPv6

Получено пакетов
Получено ошибок в заголовках
Получено ошибок в адресах
Направлено датаграмм
Получено неизвестных протоколов
Отброшено полученных пакетов
Доставлено полученных пакетов
Запросов на вывод
Отброшено маршрутов
Отброшено выходных пакетов
Выходных пакетов без маршрута
Требуется сборка
Успешная сборка
Сбоев при сборке
Успешно фрагментировано датаграмм
Сбоев при фрагментации датаграмм
Создано фрагментов
= 0
= 0
= 0
= 0
= 0
= 0
= 391
= 921
= 0
= 0
= 14
= 0
= 0
= 0
= 0
= 0
= 0

Статистика ICMPv4

ICMPv6 Статистика

Статистика TCP для IPv4

Статистика TCP для IPv6

Статистика UDP для IPv4

Статистика UDP для IPv6

netstat -s -p icmp - получить статистику только по протоколу ICMP

Пример отображаемых статистических данных:

Статистика ICMPv4

Для циклического опроса состояния сетевых соединений используется запуск программы с указанием интервала вывода статистических данных в секундах.

netstat -e 3 - отображать статистику по Ethernet с интервалом 3 секунды.

netstat –f 10 - каждые 10 секунд отображать статистику сетевых соединений с использованием полных DNS-имен узлов.

netstat -n 5 | find /i "Established" - каждые 5 секунд отображать статистику по установленным соединениям.

Команда 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 отображает различные сетевые данные, такие как сетевые подключения, таблица маршрутизации, статистики интерфейсов, маскированные соединения, многоадресное пространство и т.д.,

В этой статье, давайте рассмотрим 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

Лабораторная работа № 03-005

Сетевая утилита netstat. Принципы работы и использование.

Утилита отображает активные и прослушиваемые порты TCP, статистики Ethernet, таблицы маршрутизации IP, статистики IPv4 (для протоколов IP, ICMP, TCP и UDP) и IPv6 (для протоколов IPv6, ICMPv6, TCP через IPv6 и UDP через IPv6). Запущенная без параметров, команда netstat отображает активные подключения TCP.

Синтаксис:

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

Параметры:

-a вывод всех активных подключений TCP и прослушиваемых компьютером портов TCP и UDP;

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

-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 ;

-r вывод содержимого таблицы маршрутизации IP. Эта команда эквивалентна команде route print ;

-s вывод статистики по протоколу. По умолчанию выводится статистика для протоколов TCP, UDP, ICMP и IP. Если установлен протокол IPv6 для Windows XP, отображается статистика для протоколов TCP через IPv6, UDP через IPv6, ICMPv6 и IPv6. Параметр -p может использоваться для указания набора протоколов;

- v используется вместе с параметром b для отображения последовательности программных компонент, участвующих в создании сокета

интервал задаёт обновление выбранных данных с интервалом, определенным параметром интервал (в секундах). Нажатие клавиш CTRL+C останавливает обновление. Если этот параметр пропущен, netstat выводит выбранные данные только один раз.

/? о тображение справки в командной строке.

На сетевом уровне в стеке протоколов TCP/IP адресация осуществляется с использованием IP адресов. Но после того как пакет средствами протокола IP доставлен в компьютер-получатель с заданным IP адресом, данные необходимо направить конкретному прикладному процессу-получателю. Каждый компьютер может выполнять несколько процессов, более того, прикладной процесс может иметь несколько точек входа, одновременно выступающих в качестве получателей данных.

Обслуживание коммуникационных потребностей прикладных процессов осуществляет транспортный уровень стека протоколов, реализуемый программно в ядре операционной системы, в виде отдельного пользовательского процесса или в форме библиотечного модуля, загружаемого сетевым приложением. Пакеты, поступающие на транспортный уровень, организуются операционной системой в виде множества очередей к точкам входа различных прикладных процессов. В терминологии TCP/IP такие системные очереди называются портами . Порт - это программное понятие, которое используется клиентом или сервером для посылки или приема сообщений; порт идентифицируется 16-битовым числом. Таким образом, адресом назначения, который используется транспортным объектом, является идентификатор (номер) порта прикладной службы. Номер порта в совокупности с номером сети и номером конечного узла однозначно определяют прикладной процесс в сети. Этот набор идентифицирующих параметров имеет название сокет (socket) .

Назначение номеров портов прикладным процессам осуществляется либо централизованно , если эти процессы представляют собой популярные общедоступные службы (например, номер 21 закреплен за службой удаленного доступа к файлам FTP, a 23 - за службой удаленного управления telnet), либо локально для тех служб, которые еще не стали столь распространенными, чтобы закреплять за ними стандартные (зарезервированные) номера. Централизованное присвоение службам номеров портов выполняется организацией Internet Assigned Numbers Authority (IANA) . Эти номера затем закрепляются и опубликовываются в стандартах Internet .

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

Инициирующий соединение клиент, прежде чем пытаться установить соединение с удаленным сервером-приложением, запрашивает у своей ОС номер свободного порта. Порты с номерами 0 -1023 принято называть привилегированными, они практически все зарезервированы и не выделяются клиентским процессам. Это не означает, что не существует закрепленных номеров портов с большими номерами, но они используются гораздо реже и будучи свободными на данном хосте, вполне могут предоставляться в распоряжение программы-клиента.

UDP (User Datagramm Protocol) простой, ориентированный на передачу датаграмм, протокол транспортного уровня: за один раз процесс выдает одну UDP датаграмму, в результате чего передается одна IP датаграмма. Протокол не устанавливает соединения и не подтверждает отправителю факта доставки сообщения.

TCP (Transmission Control Protocol) предоставляет основанный на соединении надежный сервис потока байтов. Он применяется в тех случаях, когда требуется гарантированная доставка сообщений. Он использует контрольные суммы пакетов для проверки их целостности и освобождает прикладные процессы от необходимости таймаутов и повторных передач для обеспечения надежности.

Термин "основанный на соединении" (connection-oriented) означает, что два приложения, использующие TCP (как правило, это клиент и сервер), должны установить TCP соединение друг с другом, после чего у них появляется возможность обмениваться данными.

Всегда существуют две конечные точки, которые общаются друг с другом с помощью TCP соединения. TCP не занимается широковещательной и групповой рассылками.

Этапы, необходимые для установки и разрыва TCP соединения, могут быть представ-

лены в виде модели, имеющей 11 возможных состояний:

Состояние Описание

CLOSED Закрыто. Соединение не является активным и не находится в процессе установки

LISTEN Ожидание. Сервер ожидает входящего запроса

SYN RCVD Прибыл запрос соединения. Ожидание подтверждения

SYN SENT Запрос соединения послан. Приложение начало открывать соединение

ESTABLISHED Установлено. Нормальное состояние передачи данных

FINWAIT 1 Приложение сообщило, что ему больше нечего передавать

FINWAIT 2 Другая сторона согласна разорвать соединение

TIMED WAIT Ожидание, пока в сети не исчезнут все пакеты

CLOSING Обе стороны попытались одновременно закрыть соединение

CLOSE WAIT Другая сторона инициировала разъединение

LAST АСК Ожидание, пока в сети не исчезнут все пакеты

В каждом из этих состояний могут происходить разрешенные и запрещенные события. В ответ на какое-либо разрешенное событие может осуществляться определенное действие. При возникновении запрещенных событий сообщается об ошибке.

Каждое соединение начинается в состоянии CLOSED (закрытое). Оно может выйти из этого состояния, предпринимая либо активную (CONNECT), либо пассивную (LISTEN) попытку открыть соединение. Если противоположная сторона осуществляет противоположные действия, соединение устанавливается и переходит в состояние ESTABLISHED. Инициатором разрыва соединения может выступить любая сторона. По завершении процесса разъединения соединение возвращается в состояние CLOSED.

Вопросы для самопроверки

    Порт как элемент адресации транспортного уровня. Сокет.

    Локально и централизованно назначаемые порты.

    Основные протоколы транспортного уровня стека TCP/IP. Их краткая характеристика.

    Сопоставление сетевых подключений с процессами, функционирующими на компьютере.

    Параметры утилиты netstat.

Необходимое оборудование

IBM PC - совместимая ЭВМ с лицензионной операционной системой Windows, подключение к локальной сети, выход в интернет.

Задания

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

1. Воспользовавшись командой netstat просмотрите статистику работы Ethernet - подключения.

2. Воспользовавшись командой netstat просмотрите статистику работы сетевых протоколов.

3. Воспользовавшись командой netstat просмотрите статистику работы протокола ICMP (в выводе должны присутствовать данные только по этому протоколу).

4. Командой netstat просмотрите список всех подключений TCP и прослушиваемых портов UDP.

5. Запустите браузер и установите соединение с любым сайтом. Повторите предыдущее задания и прокомментируйте результат.

6. С помощью команды netstat определите любые 5 процессов, прослушивающих UDP порты. Укажите наименование процессов и номера прослушиваемых портов.

6. С помощью команды netstat определите активные TCP – подключения, номера их портов и имена исполняемых файлов приложений, использующих эти подключения.

Отчет о выполнении работы представьте в печатной или электронной форме с представлением копий экранов работы утилиты.

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

Что такое Netstat?

Это такое приложение, с помощью которого можно узнать, что происходит в данный момент в Сети. Для запуска используется командная строка. В ней же при запуске Netstat используются дополнительные ключи и параметры.

Стоит отметить, что название утилиты образовано из двух составляющих - network statistics, то есть сетевая статистика, что, в принципе, логично. Среди информации, которую показывает программа, можно выделить статистику подключений маршрутизации.

Команды и ключи

Синтаксис ключей и параметров команды довольно обширен. Это позволяет получить сетевую статистику на самых разных уровнях. Далее пойдет описание команды Netstat, ее параметры и ключи:

  • -a - запуск с данным параметром выведет на экран все активные подключения TCP, а также порты TCP и UDP, прослушиваемые системой;
  • -e - отображение расширенной статистики Ethernet, например, о перемещении байтов и пакетов;
  • -n - параметр позволяет показать активные подключения TCP с адресами и номерами портов;
  • -o - так же, как и предыдущий ключ, выводит активные TCP подключения, но в статистику добавлены коды процессов, по ним уже можно точно определить, какое именно приложение использует подключение;
  • -p - отображение информации по определенному протоколу, указанному в параметре. Среди значений может быть tcp, udp, tcpv6 и udpv6;

  • -s - вывод на экран статистики по протоколу, по умолчанию отобразятся все известные типы;
  • -r - данный ключ выведет содержимое IP, параметр равносилен использованию команды route;
  • интервал - в общей строке команды можно использовать значение интервала, через который будет происходить отображение выбранной статистики; если он опущен, то информация отобразится всего один раз;
  • /? - выведет справочную информацию по команде Netstat.

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

Для того чтобы вывести на экран командной строки все соединения, при этом разместив их на нескольких страницах, нужно использовать такой синтаксис: «-a | more». Если нужно сохранить всю статистику в определенный файл, нужно использовать « -a > C:\имя файла». Таким образом, в файл, указанный по данному пути, будет записана вся собранная информация.

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

  • Имя. Здесь указывается название найденного активного протокола.
  • Локальный адрес. IP-адрес и порт, использующиеся локальным сервисом для создания соединения. Среди значений может встречаться 0.0.0.0, что означает любой доступный адрес или 127.0.0.1. Это говорит о локальной петле.
  • Внешний адрес. IP и порт внешней службы в сети, с которой установлено соединение.

  • Состояние. Показывает текущий статус соединения. Может принимать разные значения. Например, Listening говорит о том, что служба «слушает» и ждет входящего подключения. Established означает активное соединение.

Netstat, запущенная с ключами -a и -b, покажет все сетевые подключения, а также связанные с ними программы. Это очень удобно, если нужно вычислить, какая программа активно использует трафик и куда отсылает данные.

Дополнительные состояния соединений

Помимо указанных выше состояний соединений, имеются и дополнительные:

  • closed - как следует из названия, соединение находится в закрытом виде;
  • syn_sent - происходит активная попытка установить подключение;
  • syn_received - показывает начальный этап синхронизации;
  • close_wait - отключен, и происходит завершение соединения.

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

Применение утилиты в среде Linux, по сути, мало чем отличается от Windows. Есть всего лишь небольшие отличия в параметрах команды. Описание команды Netstat и ее параметров с примерами:

  • Чтобы отобразить все порты, нужно использовать команду - «netstat -a».
  • Все то же самое, но только типа TCP - «-at».
  • UDP порты - «-au».
  • Отобразить в Netstat открытые порты - «-l». Их состояние будет отражено как Listening.
  • Отобразить в Netstat открытые порты TCP - «netstat -lt.
  • Вывод идентификатора процесса и его имени - «netstat -p».
  • Показать статистику для отдельного - «netstat -s».

Иногда, чтобы получить более полную информацию о каком-либо сетевом соединении, нужно совместить Netstat с некоторыи командами и утилитами Linux. Например, так:

netstat -ap | grep ssh

Данная строка выведет на экран список портов, которые в данный момент используется утилитой SSH. Если, наоборот, нужно узнать, какой процесс занимает определенный порт, можно использовать следующий синтаксис:

netstat -an | grep `:80`

Также для Netstat в Linux имеется универсальный набор ключей, способный отобразить все необходимое сразу. Выглядит он так: netstat -lnptux. В наборе данных будут отражены все протоколы TCP, UDP, UNIX Socket, названия процессов и их идентификаторов.

Несколько примеров для определения атаки типа DoS или DDoS

Следующая команда позволит узнать, сколько подключений активно на каждом IP-адресе:

netstat -naltp | grep ESTABLISHED | awk "{print $5}" | awk -F: "{print $1}" | sort -n | uniq -c

Определяем большое количество запросов с одного IP-адреса:

netstat -na | grep:80 | sort

Определяем точное количество запросов, полученных на одно соединение:

netstat -np | grep SYN_RECV | wc -l

При проведении DoS-атаки число, полученное в результате работы данной команды, должно быть довольно большим. В любом случае оно может зависеть от конкретной системы. То есть на одном сервере оно может быть одним, на другом - иным.

Заключение

В какой операционной системы бы не использовалась команда, она является незаменимым инструментом для сканирования, анализа и отладки сети. Ее активно используют системные администраторы всего мира.

Netstat можно использовать при заражении системы каким-либо вирусным программным обеспечением. Она способна показать все приложения с большой активностью подозрительного сетевого трафика. Это поможет на ранних этапах выявить вредное ПО и нейтрализовать его или же защитить сервер от нежелательного вторжения злоумышленников.

Выводы

В статье было дано подробное описание команды Netstat и её параметров и ключей. Полноценное использование программы возможно после нескольких этапов практики на реальном устройстве. Совмещение с другими командами придаст ей еще больше эффективности. Полный набор описания команд Netstat можно найти в руководстве на официальном сайте утилиты. Также стоит отметить, что при использовании в среде Linux команда Netstat устарела и вместо нее настоятельно рекомендуют использовать SS.