Практические примеры использования netstat

Oct 8, 2018 06:00 · 810 words · 4 minute read netstat

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

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

  1. Вывод всех активных подключений и портов (и TCP, и UDP):
netstat -a

Пример:

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 127.0.0.53:domain       0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN
tcp        0      0 localhost.localdo:17123 0.0.0.0:*               LISTEN
tcp        0      0 localhost.localdo:52526 localhost.localdo:17123 TIME_WAIT
tcp        0      0 localhost.localdo:52534 localhost.localdo:17123 TIME_WAIT
tcp6       0      0  *.63865                *.*                    LISTEN
  1. Вывод всех активных TCP-подключений и портов:
netstat -at

Пример:

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 127.0.0.53:domain       0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN
tcp        0      0 localhost.localdo:17123 0.0.0.0:*               LISTEN
tcp        0      0 localhost.localdo:52434 localhost.localdo:17123 TIME_WAIT
tcp        0      0 localhost.localdo:52480 localhost.localdo:17123 TIME_WAIT
tcp        0      0 localhost.localdo:52470 localhost.localdo:17123 TIME_WAIT
tcp        0      0 localhost.localdo:52440 localhost.localdo:17123 TIME_WAIT
tcp        0      0 localhost.localdo:52462 localhost.localdo:17123 TIME_WAIT
tcp6       0      0 jenkins1:25546          2600:1f18:63f7:b9:https TIME_WAIT
...
  1. Вывод всех активных UDP-подключений и портов:
netstat -au

Пример:

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
udp        0      0 127.0.0.53:domain       0.0.0.0:*
udp        0      0 172.17.0.1:ntp          0.0.0.0:*
udp        0      0 172.28.0.1:ntp          0.0.0.0:*
udp        0      0 172.30.0.1:ntp          0.0.0.0:*
udp        0      0 172.20.0.1:ntp          0.0.0.0:*
udp        0      0 localhost.localdoma:ntp 0.0.0.0:*
udp        0      0 0.0.0.0:ntp             0.0.0.0:*
udp6       0      0 fe80::6eb3:11ff:fe2:ntp [::]:*
udp6    4608      0 jenkins1:ntp            [::]:*
udp6       0      0 [::]:ntp                [::]:*
...
  1. Вывод всех активных подключений в состоянии “LISTEN”:
netstat -l

Пример:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 127.0.0.53:domain       0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN
tcp        0      0 localhost.localdo:17123 0.0.0.0:*               LISTEN
...
Active UNIX domain sockets (only servers)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  2      [ ACC ]     STREAM     LISTENING     287855182 @/containerd-shim/moby/c26626153296b60e270298d3d304e7cffa650211cefad437fb359efaa5d0303a/shim.sock@
unix  2      [ ACC ]     STREAM     LISTENING     287880017 @/containerd-shim/moby/076e711bbc42eccce198d6f9c5533a71e12a93c94fd5c690fc9562e89a81c6ac/shim.sock@
unix  2      [ ACC ]     STREAM     LISTENING     66640    /opt/datadog-agent/run/datadog-supervisor.sock.1583
  1. Вывод таблицы маршрутизации:
netstat -r

Пример:

Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
default         static.65.18.13 0.0.0.0         UG        0 0          0 enp98s0f0
static.65.18.13 0.0.0.0         255.255.255.255 UH        0 0          0 enp98s0f0
172.17.0.0      0.0.0.0         255.255.0.0     U         0 0          0 docker0
172.20.0.0      0.0.0.0         255.255.0.0     U         0 0          0 br-31cf77692364
172.28.0.0      0.0.0.0         255.255.0.0     U         0 0          0 br-ff4281540cec
172.30.0.0      0.0.0.0         255.255.0.0     U         0 0          0 br-acff358cb41e
  1. Вывод сетевых интерфейсов:
netstat -i

Пример:

Kernel Interface table
Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
br-31cf7  1500   116615      0      0 0        146329      0      0      0 BMRU
br-40a61  1500        0      0      0 0             0      0      0      0 BMU
br-acff3  1500     3031      0      0 0          3255      0      0      0 BMRU
br-ff428  1500     7567      0      0 0          8222      0      0      0 BMRU
docker0   1500 12645962      0      0 0      20553388      0      0      0 BMU
enp98s0f  1500 155269942      0      0 4000   123518253      0      0      0 BMRU
lo       65536  3087890      0      0 0       3087890      0      0      0 LRU
  1. Непрерывный вывод информации (с периодичностью в несколько секунд):
netstat -c
  1. Информация о принадлежности к многоадресной группе (multicast group):
netstat -g

Пример:

IPv6/IPv4 Group Memberships
Interface       RefCnt Group
--------------- ------ ---------------------
lo              1      all-systems.mcast.net
enp98s0f0       1      224.0.0.251
enp98s0f0       1      239.77.124.213
enp98s0f0       1      all-systems.mcast.net
docker0         1      all-systems.mcast.net
br-31cf776      1      all-systems.mcast.net
veth5fbca5      1      all-systems.mcast.net
br-acff358      1      all-systems.mcast.net
veth743035      1      all-systems.mcast.net
veth06a264      1      all-systems.mcast.net
  1. Информация о подключении на определенном порту:
netstat -anp | grep :80 | grep ESTABLISHED

Пример:

tcp6       0      0 192.168.38.99:80         172.68.239.68:30932     ESTABLISHED 30068/java
tcp6       0      0 192.168.38.99:80         172.68.239.98:31280     ESTABLISHED 30068/java
tcp6       0      0 192.168.38.99:80         172.68.239.98:30944     ESTABLISHED 30068/java
tcp6       0      0 192.168.38.99:80         172.68.239.20:61206     ESTABLISHED 30068/java
tcp6       0      0 192.168.38.99:80         172.68.238.133:48884    ESTABLISHED 30068/java
tcp6       0      0 192.168.38.99:80         172.68.239.98:32602     ESTABLISHED 30068/java
  1. Количество соединений находящихся в разных состояниях (сортированное):
netstat -ant | awk '{print $6}' | sort | uniq -c | sort -n

Пример:

      1 established)
      1 Foreign
      7 ESTABLISHED
     23 LISTEN
    102 TIME_WAIT
  1. Информация о сервисах, слушающих определенный порт:
netstat -ltnp | grep ':53'

Пример:

tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      1323/systemd-resolv
  1. Вывод статистики сети:
netstat --statistics --raw

Пример:

Ip:
    Forwarding: 1
    78312316 total packets received
    34435611 forwarded
    0 incoming packets discarded
    43876636 incoming packets delivered
    75662887 requests sent out
    169 dropped because of missing route
Icmp:
    2031 ICMP messages received
    510 input ICMP message failed
    ICMP input histogram:
        destination unreachable: 1146
        timeout in transit: 17
        echo requests: 218
        echo replies: 650
    9503 ICMP messages sent
    0 ICMP messages failed
    ICMP output histogram:
        destination unreachable: 9285
        echo replies: 218
IcmpMsg:
        InType0: 650
        InType3: 1146
        InType8: 218
        InType11: 17
        OutType0: 218
        OutType3: 9285
UdpLite:
IpExt:
    InMcastPkts: 2859
    OutMcastPkts: 2892
    InBcastPkts: 66
    InOctets: 202894920380
    OutOctets: 330142828646
    InMcastOctets: 624001
    OutMcastOctets: 625473
    InBcastOctets: 21516
    InNoECTPkts: 190813611
    InECT1Pkts: 37
    InECT0Pkts: 3405
    InCEPkts: 329

Больше полезным примеров и опций использования утилиты netstat можно найти в официальной документации.

tweet Share