Инструменты пользователя

Инструменты сайта


howto:utils:netstat

Различия

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

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
howto:utils:netstat [2015/06/28 15:35]
Алексей Кожевников
howto:utils:netstat [2019/01/17 14:07] (текущий)
Алексей Кожевников ↷ Страница перемещена из howto:netstat в howto:utils:netstat
Строка 3: Строка 3:
 Команда **netstat**,​ входящая в стандартный набор сетевых инструментов UNIX, отображает различную network–related информацию,​ такую как сетевые подключения,​ статистику интерфейсов,​ таблицы маршрутизации,​ masquerade, multicast, и т.п. Команда **netstat**,​ входящая в стандартный набор сетевых инструментов UNIX, отображает различную network–related информацию,​ такую как сетевые подключения,​ статистику интерфейсов,​ таблицы маршрутизации,​ masquerade, multicast, и т.п.
  
-В этой статье рассмотрим ​десять ​практических примеров использования ​команды ​**netstat ​в Linux**. +===== Примеры:​ ===== 
-===== Список всех портов (как прослушиваемых,​ так и нет) ​=====+==== Количество соединений ==== 
 +<​code>​netstat -ant| awk '​{print $4}' | grep ":​80$"​ -c</​code>​ 
 + 
 +==== netstat -lnptux ==== 
 + 
 +  * -l все открытые порты (LISTEN) 
 +  * -t по протоколу TCP 
 +  * -u по протоколу UDP 
 +  * -x по протоколу UNIX Socket 
 +  * -n без резолва IP/​имён 
 +  * -p но с названиями процессов и PID-ами 
 + 
 +Примечание: Не все процессы могут быть ​идентифицированы последним ​ключом, чужие процессы показаны не будут. Вы должны ​иметь права root чтобы увидеть всё. 
 + 
 +==== Соответствие ​портов и процессов ==== 
 + 
 +Узнать,​ какой порт занимает определённая программа
 +<​code>​ 
 +# netstat -ap | grep ssh 
 +</​code>​ 
 + 
 +Выяснить, каким процессом используется определённый порт: 
 +<​code>​ 
 +netstat ​-an | grep ':​80'​ 
 +</​code>​ 
 + 
 + 
 +===== Параметры ===== 
 + 
 +==== Список всех портов (как прослушиваемых,​ так и нет) ====
  
 Перечислить все порты: **netstat -a** Перечислить все порты: **netstat -a**
Строка 20: Строка 49:
 </​code>​ </​code>​
  
-Перечислить все TCP порты: **netstat -at**+==== Список сокетов, находящихся ​в состоянии LISTEN ====
  
 +Перечислить все прослушиваемые порты: **netstat -l**
  
-Перечислить все UDP порты: **netstat -au** 
- 
- 
-===== Список сокетов,​ находящихся в состоянии LISTEN ===== 
- 
-Перечислить все прослушиваемые порты: **netstat -l** 
-<​code>​ 
-# 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 ​    *:* 
-</​code>​ 
  
 Перечислить прослушиваемые TCP порты: **netstat -lt** Перечислить прослушиваемые TCP порты: **netstat -lt**
Строка 47: Строка 63:
  
  
-===== Просмотр статистики для каждого протокола ​=====+==== Просмотр статистики для каждого протокола ====
  
 Показать статистику всех портов:​ **netstat -s** Показать статистику всех портов:​ **netstat -s**
Строка 72: Строка 88:
 </​code>​ </​code>​
  
-Показать статистику только TCP портов:​ **netstat -st** +==== Отображение PID и имени процесса в выводе netstat ====
- +
- +
-Показать статистику только UDP портов:​ **netstat -su** +
- +
- +
-===== Отображение PID и имени процесса в выводе netstat ​=====+
  
 Опция **netstat -p** добавит «PID/​Program Name» в вывод netstat, и может быть совмещена с любым другим набором опций. Это очень полезно при отладке,​ для определения того, какая программа работает на определённом порту. Опция **netstat -p** добавит «PID/​Program Name» в вывод netstat, и может быть совмещена с любым другим набором опций. Это очень полезно при отладке,​ для определения того, какая программа работает на определённом порту.
  
  
-===== Разрешение имён в выводе netstat ​=====+==== Разрешение имён в выводе netstat ====
  
 Когда вам не нужно резолвить имя хоста, имя порта, имя пользователя,​ используйте опцию **netstat -n** для вывода значений в цифровом формате. Команда покажет IP-адрес вместо хоста, номер порта вместо имени порта, UID вместо имени пользователя. Когда вам не нужно резолвить имя хоста, имя порта, имя пользователя,​ используйте опцию **netstat -n** для вывода значений в цифровом формате. Команда покажет IP-адрес вместо хоста, номер порта вместо имени порта, UID вместо имени пользователя.
Строка 97: Строка 107:
 </​code>​ </​code>​
  
-===== Вывод информации netstat непрерывно ​=====+==== Вывод информации netstat непрерывно ====
  
 Опция **netstat -c** будет выводить информацию непрерывно,​ в стиле **top**, обновляя экран каждые несколько секунд. Опция **netstat -c** будет выводить информацию непрерывно,​ в стиле **top**, обновляя экран каждые несколько секунд.
Строка 110: Строка 120:
 </​code>​ </​code>​
  
-===== Неподдерживаемые системой семейства адресов ===== +==== Маршрутизация ядра ====
- +
-Опция **netstat –verbose** покажет подробный вывод, а в самом конце отобразит неподдерживаемые Address Family. +
-<​code>​ +
-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. +
-</​code>​ +
- +
-===== Маршрутизация ядра ​=====+
  
 Показать таблицу маршрутизации ядра: **netstat -r** Показать таблицу маршрутизации ядра: **netstat -r**
  
  
-===== Соответствие портов и процессов ===== +==== Сетевые интерфейсы ====
- +
-Узнать,​ какой порт занимает определённая программа:​ +
- +
-<​code>​ +
-# 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 ​     - +
-</​code>​ +
- +
-Выяснить,​ каким процессом используется определённый порт: +
- +
-<​code>​ +
-# netstat -an | grep ':​80'​ +
-</​code>​ +
- +
-===== Сетевые интерфейсы ​=====+
  
 Показать список сетевых интерфейсов:​ **netstat -i** Показать список сетевых интерфейсов:​ **netstat -i**
Строка 149: Строка 131:
 # netstat -i # netstat -i
 Kernel Interface table Kernel Interface table
-Iface   ​MTU Met   ​RX-OK RX-ERR RX-DRP RX-OVR ​   TX-OK TX-ERR TX-DRP TX-OVR Flg +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 +eth0       ​1500   ​0   264355 ​     ​0 ​     0        218185 ​     ​0 ​     0      0 BMRU 
-lo        ​16436 0         0      0      0 0             0      ​0 ​     0      0 LRU+lo        ​65536     195328 ​     ​0 ​     0        195328 ​     ​0 ​     0      0 LRU 
 </​code>​ </​code>​
  
 Показать расширенную информацию об интерфейсах (аналогично ifconfig): **netstat -ie** Показать расширенную информацию об интерфейсах (аналогично ifconfig): **netstat -ie**
-<​code>​ 
-# 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 
-</​code>​ 
  
-===== netstat -lnptux ===== +==== Неподдерживаемые системой семейства ​адресов ​====
- +
-Резюмируем вышеописанное и объединим ключи в одну полезную команду,​ которая покажет: +
- +
-  * -lвсе открытые порты (LISTEN) +
-  * -tпо протоколу TCP +
-  * -uпо протоколу UDP +
-  * -xпо протоколу UNIX Socket +
-  * -nбез резолва IP/имён +
-  * -pно с названиями процессов и PID-ами +
- +
-Примечание: Не все процессы могут быть идентифицированы последним ключом,​ чужие процессы показаны не будут. Вы должны иметь права root чтобы увидеть всё.+
  
 +Опция **netstat --verbose** покажет подробный вывод, а в самом конце отобразит неподдерживаемые Address Family.
 <​code>​ <​code>​
-# netstat -lnptux +# netstat --verbose 
-Active Internet connections (only servers) +... 
-Proto Recv-Q Send-Q Local Address ​  ​Foreign Address ​        ​State ​      ​PID/​Program name +netstatno support for `AF IPX' on this system
-tcp        0      0 0.0.0.0:80              0.0.0.0:​* ​              ​LISTEN ​     9614/nginx +    ​netstatno support for `AF AX25' on this system
-tcp        0      0 0.0.0.0:22              0.0.0.0:​* ​              ​LISTEN ​     601/sshd +    ​netstatno support for `AF X25' on this system
-udp        0      0 8.8.4.4:123             0.0.0.0:​* ​                          ​574/​ntpd +    ​netstatno support for `AF NETROM'​ on this system.
-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+
 </​code>​ </​code>​
 +
  
 Source: http://​putty.org.ru/​articles/​netstat-linux-examples.html Source: http://​putty.org.ru/​articles/​netstat-linux-examples.html
  
 +{{tag> netstat linux port net network}}
howto/utils/netstat.1435494934.txt.gz · Последние изменения: 2015/06/28 15:35 — Алексей Кожевников