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

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


howto:utils:netstat

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
howto:utils:netstat [2015/01/14 12:54]
Алексей Кожевников
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**. +===== Примеры:​ ===== 
-===== 1. Список всех портов (как прослушиваемых,​ так и нет) ​=====+==== Количество соединений ==== 
 +<​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 ​====
-<​code>​ +
-# 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 +
-</​code>​+
  
-Перечислить все ​UDP порты: **netstat -au** +Перечислить все ​прослушиваемые ​порты: **netstat -l**
-<​code>​ +
-# 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 [::]:* +
-</​code>​+
  
-===== 2. Список сокетов,​ находящихся в состоянии 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**
-<​code>​ +
-# 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 +
-</​code>​+
  
 Перечислить прослушиваемые UDP порты: **netstat -lu** Перечислить прослушиваемые UDP порты: **netstat -lu**
-<​code>​ +
-# 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 ​               [::]:* +
-</​code>​+
  
 Перечислить прослушиваемые UNIX сокеты:​ **netstat -lx** Перечислить прослушиваемые UNIX сокеты:​ **netstat -lx**
-<​code>​ 
-# 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 
-</​code>​ 
  
-===== 3. Просмотр статистики для каждого протокола ​=====+ 
 +==== Просмотр статистики для каждого протокола ====
  
 Показать статистику всех портов:​ **netstat -s** Показать статистику всех портов:​ **netstat -s**
Строка 107: Строка 88:
 </​code>​ </​code>​
  
-Показать статистику только TCP портов: **netstat -st** +==== Отображение PID и имени ​процесса ​в выводе ​netstat ​====
-<​code>​ +
-netstat ​-st +
-</​code>​+
  
-Показать статистику только UDP портов: **netstat -su** +Опция **netstat -p** добавит «PID/​Program Name» в вывод netstat, и может быть совмещена с любым другим набором опций. Это очень полезно при отладке, для определения того, ​какая программа работает на определённом порту.
-<​code>​ +
-# netstat -su +
-</​code>​+
  
-===== 4. Отображение PID и имени процесса в выводе netstat ===== 
- 
-Опция **netstat -p** добавит «PID/​Program Name» в вывод netstat, и может быть совмещена с любым другим набором опций. Это очень полезно при отладке,​ для определения того, какая программа работает на определённом порту. 
-<​code>​ 
-# 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 
-</​code>​ 
  
-===== 5. Разрешение имён в выводе netstat ​=====+==== Разрешение имён в выводе netstat ====
  
 Когда вам не нужно резолвить имя хоста, имя порта, имя пользователя,​ используйте опцию **netstat -n** для вывода значений в цифровом формате. Команда покажет IP-адрес вместо хоста, номер порта вместо имени порта, UID вместо имени пользователя. Когда вам не нужно резолвить имя хоста, имя порта, имя пользователя,​ используйте опцию **netstat -n** для вывода значений в цифровом формате. Команда покажет IP-адрес вместо хоста, номер порта вместо имени порта, UID вместо имени пользователя.
  
-Это также ускорит вывод, так как netstat не станет выполнять ненужный поиск. 
- 
-<​code>​ 
-# netstat -an 
-</​code>​ 
  
 Для вывода цифровых значений только некоторых из этих пунктов,​ используйте следующие команды:​ Для вывода цифровых значений только некоторых из этих пунктов,​ используйте следующие команды:​
- 
 <​code>​ <​code>​
 # netsat -a --numeric-ports # netsat -a --numeric-ports
Строка 148: Строка 107:
 </​code>​ </​code>​
  
-===== 6. Вывод информации netstat непрерывно ​=====+==== Вывод информации netstat непрерывно ====
  
 Опция **netstat -c** будет выводить информацию непрерывно,​ в стиле **top**, обновляя экран каждые несколько секунд. Опция **netstat -c** будет выводить информацию непрерывно,​ в стиле **top**, обновляя экран каждые несколько секунд.
Строка 161: Строка 120:
 </​code>​ </​code>​
  
-===== 7. Неподдерживаемые системой семейства адресов ===== +==== Маршрутизация ядра ====
- +
-Опция **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>​ +
- +
-===== 8. Маршрутизация ядра ​=====+
  
 Показать таблицу маршрутизации ядра: **netstat -r** Показать таблицу маршрутизации ядра: **netstat -r**
-<​code>​ 
-# 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 
-</​code>​ 
  
-Примечание:​ Используйте **netstat -rn** для просмотра маршрута в цифровом формате без разрешения имён узлов. 
-===== 9. Соответствие портов и процессов ===== 
- 
-Узнать,​ какой порт занимает определённая программа:​ 
- 
-<​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>​ 
  
-===== 10. Сетевые интерфейсы ​=====+==== Сетевые интерфейсы ====
  
 Показать список сетевых интерфейсов:​ **netstat -i** Показать список сетевых интерфейсов:​ **netstat -i**
Строка 207: Строка 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>​ 
  
-===== 11. 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
 +
 +{{tag> netstat linux port net network}}
howto/utils/netstat.1421229287.txt.gz · Последние изменения: 2015/01/14 12:54 — Алексей Кожевников