Linux. Утилита netstat

25.10.2023

Теги: CLILinuxКомандаЛокальнаяСетьСетевойИнтерфейсСокет

Netstat — сетевая утилита командной строки, полезная для устранения неполадок сети и измерения производительности. Утилита предоставляет различную информацию, связанную с сетью, такую ​​​​как текущие соединения TCP/IP, таблицы маршрутизации, статистику интерфейса и т.д. Это основной инструмент, который помогает находить открытые порты и находить приложения, которые прослушивают порты.

Утилита netstat входит в пакет net-tools и в настоящее время считается устаревшей. Вместо нее рекомендуется использовать утилиту ss из пакета iproute2.

Список всех используемых портов TCP и UDP соединений

Для этого предназначена опция -a или --all

# netstat -a
Активные соединения с интернетом (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 localhost:domain        0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN     
tcp        0      0 localhost:ipp           0.0.0.0:*               LISTEN     
tcp        0      0 ubuntu-rebrain:43500    192.229.221.95:http     ESTABLISHED
tcp        0      0 ubuntu-rebrain:51174    server-52-85-48-55:http ESTABLISHED
..........
tcp        0      0 ubuntu-rebrain:51994    lg-in-f95.1e100.n:https TIME_WAIT  
tcp        0      0 ubuntu-rebrain:44786    a2-23-167-179.depl:http ESTABLISHED
tcp6       0      0 ip6-localhost:ipp       [::]:*                  LISTEN     
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN     
udp        0      0 0.0.0.0:mdns            0.0.0.0:*                          
udp        0      0 localhost:domain        0.0.0.0:*                          
udp        0      0 ubuntu-rebrain:bootpc   _gateway:bootps         ESTABLISHED
udp        0      0 0.0.0.0:55811           0.0.0.0:*                          
udp        0      0 0.0.0.0:631             0.0.0.0:*                          
udp6       0      0 [::]:mdns               [::]:*                             
udp6       0      0 [::]:53229              [::]:*                             
raw        0      0 0.0.0.0:255             0.0.0.0:*               7          
raw6       0      0 [::]:ipv6-icmp          [::]:*                  7          
Активные сокеты домена UNIX (servers and established)
Proto RefCnt Flags       Type       State         I-Node   Путь
unix  3      [ ]         STREAM     CONNECTED     22101    
unix  3      [ ]         STREAM     CONNECTED     18868    
unix  3      [ ]         STREAM     CONNECTED     23589    /run/user/1000/bus
unix  3      [ ]         STREAM     CONNECTED     23566    
unix  3      [ ]         STREAM     CONNECTED     23256    /run/dbus/system_bus_socket
..........

Таблица с результатами содержит шесть колонок

  • Proto — протокол (tcp, udp, raw), используемый сокетом.
  • Recv-Q — количество байтов, не скопированных локальным приложением.
  • Send-Q — количество байтов, не подтвержденных удаленным хостом.
  • Local Address — адрес и номер порта локального конца сокета.
  • Foreign Address — адрес и номер порта удаленного конца сокета.

Для сокетов TCP допустимы следующие значения состояния

  • CLOSED — Сокет закрыт и не используется.
  • LISTEN — Ожидает входящих соединений.
  • SYN_SENT — Активно пытается установить соединение.
  • SYN_RECEIVED — Идет начальная синхронизация соединения.
  • ESTABLISHED — Соединение установлено.
  • CLOSE_WAIT — Удаленная сторона отключилась; ожидание закрытия сокета.
  • FIN_WAIT_1 — Сокет закрыт; отключение соединения.
  • CLOSING — Сокет закрыт, затем удаленная сторона отключилась; ожидание подтверждения.
  • LAST_ACK — Удаленная сторона отключилась, затем сокет закрыт; ожидание подтверждения.
  • FIN_WAIT_2 — Сокет закрыт; ожидание отключения удаленной стороны.
  • TIME_WAIT — Сокет закрыт; ожидание пакетов, все еще находящихся в сети.
Вывод команды включает не только интернет-сокеты, но и unix-сокеты. Интернет-сокеты — для взаимодействия двух процессов на разных компьютеров через сеть. Unix-сокеты — для взаимодействия двух процессов на одном компьютере. Несмотря на создание файлов на диске, Unix-сокеты не записывают данные на диск — это было бы медленно. Вместо этого все данные хранятся в памяти ядра; единственная цель файла сокета — поддерживать ссылку на сокет и давать ему разрешения файловой системы для управления доступом.

Список всех используемых портов TCP соединений

Для этого к опции -a нужно добавить опцию -t

$ netstat -at
Активные соединения с интернетом (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 localhost:ipp           0.0.0.0:*               LISTEN     
tcp        0      0 localhost:domain        0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN     
tcp6       0      0 ip6-localhost:ipp       [::]:*                  LISTEN     
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN 

Список всех используемых портов UDP соединений

Для этого к опции -a нужно добавить опцию -u

$ netstat -au
Активные соединения с интернетом (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
udp        0      0 0.0.0.0:631             0.0.0.0:*                          
udp        0      0 0.0.0.0:mdns            0.0.0.0:*                          
udp        0      0 0.0.0.0:40249           0.0.0.0:*                          
udp        0      0 localhost:domain        0.0.0.0:*                          
udp        0      0 ubuntu-rebrain:bootpc   _gateway:bootps         ESTABLISHED
udp6       0      0 [::]:mdns               [::]:*                             
udp6       0      0 [::]:55085              [::]:*  

Список всех используемых unix-сокетов

Для этого к опции -a нужно добавить опцию -x

$ netstat -ax | head -10
Активные сокеты домена UNIX (servers and established)
Proto RefCnt Flags       Type       State         I-Node   Путь
unix  3      [ ]         STREAM     CONNECTED     23425    
unix  3      [ ]         STREAM     CONNECTED     23105    
unix  3      [ ]         STREAM     CONNECTED     22203    
unix  3      [ ]         STREAM     CONNECTED     23398    /run/dbus/system_bus_socket
unix  3      [ ]         DGRAM      CONNECTED     21430    
unix  3      [ ]         STREAM     CONNECTED     21414    /run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     23380    /run/user/1000/pulse/native
unix  3      [ ]         STREAM     CONNECTED     21965    /run/user/1000/bus
.......... 

Список всех прослушиваемых портов TCP и UDP соединений

Для этого предназначена опция -l или --listening

$ netstat -l
Активные соединения с интернетом (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 localhost:ipp           0.0.0.0:*               LISTEN     
tcp        0      0 localhost:domain        0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN     
tcp6       0      0 ip6-localhost:ipp       [::]:*                  LISTEN     
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN     
udp        0      0 0.0.0.0:631             0.0.0.0:*                          
udp        0      0 0.0.0.0:mdns            0.0.0.0:*                          
udp        0      0 0.0.0.0:40249           0.0.0.0:*                          
udp        0      0 localhost:domain        0.0.0.0:*                          
udp6       0      0 [::]:mdns               [::]:*                             
udp6       0      0 [::]:55085              [::]:*                             
raw        0      0 0.0.0.0:255             0.0.0.0:*               7          
raw6       0      0 [::]:ipv6-icmp          [::]:*                  7          
Активные сокеты домена UNIX (only servers)
Proto RefCnt Flags       Type       State         I-Node   Путь
unix  2      [ ACC ]     STREAM     LISTENING     20327    /run/cups/cups.sock
unix  2      [ ACC ]     STREAM     LISTENING     21341    /run/user/1000/systemd/private
unix  2      [ ACC ]     STREAM     LISTENING     21349    /run/user/1000/bus
unix  2      [ ACC ]     STREAM     LISTENING     21351    /run/user/1000/gnupg/S.dirmngr
unix  2      [ ACC ]     STREAM     LISTENING     21353    /run/user/1000/gnupg/S.gpg-agent.browser
..........

Список всех прослушиваемых портов TCP соединений

Для этого к опции -l нужно добавить опцию -t

$ netstat -lt
Активные соединения с интернетом (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 localhost:ipp           0.0.0.0:*               LISTEN     
tcp        0      0 localhost:domain        0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN     
tcp6       0      0 ip6-localhost:ipp       [::]:*                  LISTEN     
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN  

Список всех прослушиваемых портов UDP соединений

Для этого к опции -l нужно добавить опцию -u

$ netstat -lu
Активные соединения с интернетом (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address State      
udp        0      0 0.0.0.0:631             0.0.0.0:*                          
udp        0      0 0.0.0.0:mdns            0.0.0.0:*                          
udp        0      0 0.0.0.0:40249           0.0.0.0:*                          
udp        0      0 localhost:domain        0.0.0.0:*                          
udp6       0      0 [::]:mdns               [::]:*                             
udp6       0      0 [::]:55085              [::]:*  

Список всех прослушиваемых портов unix-сокетов

Для этого к опции -l нужно добавить опцию -x

$ netstat -lx
Активные сокеты домена UNIX (only servers)
Proto RefCnt Flags       Type       State         I-Node   Путь
unix  2      [ ACC ]     STREAM     LISTENING     20327    /run/cups/cups.sock
unix  2      [ ACC ]     STREAM     LISTENING     21341    /run/user/1000/systemd/private
unix  2      [ ACC ]     STREAM     LISTENING     21349    /run/user/1000/bus
unix  2      [ ACC ]     STREAM     LISTENING     21351    /run/user/1000/gnupg/S.dirmngr
unix  2      [ ACC ]     STREAM     LISTENING     21353    /run/user/1000/gnupg/S.gpg-agent.browser
unix  2      [ ACC ]     STREAM     LISTENING     21355    /run/user/1000/gnupg/S.gpg-agent.extra
unix  2      [ ACC ]     STREAM     LISTENING     21357    /run/user/1000/gnupg/S.gpg-agent.ssh
unix  2      [ ACC ]     STREAM     LISTENING     21359    /run/user/1000/gnupg/S.gpg-agent
..........

Сетевая статистика для всех протоколов

Для этого предназначена опция -s или --statistics

$ netstat -s
Ip:
    Forwarding: 2
    377 total packets received
    1 with invalid addresses
    0 forwarded
    0 incoming packets discarded
    374 incoming packets delivered
    169 requests sent out
Icmp:
    0 ICMP messages received
    0 input ICMP message failed
    Гистограмма входа ICMP
    4 ICMP messages sent
    0 ICMP messages failed
    Гистограмма выхода ICMP
        destination unreachable: 4
IcmpMsg:
        OutType3: 4
Tcp:
    9 active connection openings
    0 passive connection openings
    1 failed connection attempts
    0 connection resets received
    0 connections established
    33 segments received
    42 segments sent out
    4 segments retransmitted
    0 bad segments received
    1 resets sent
Udp:
    214 packets received
    4 packets to unknown port received
    0 packet receive errors
    112 packets sent
    0 receive buffer errors
    0 send buffer errors
    IgnoredMulti: 123
..........

Сетевая статистика для TCP протокола

Для этого к опции -s нужно добавить опцию -t

$ netstat -st
IcmpMsg:
    OutType3: 4
Tcp:
    63 active connection openings
    0 passive connection openings
    1 failed connection attempts
    0 connection resets received
    0 connections established
    2890 segments received
    2413 segments sent out
    21 segments retransmitted
    0 bad segments received
    5 resets sent
UdpLite:
TcpExt:
    22 TCP sockets finished time wait in fast timer
    3 delayed acks sent
    Quick ack mode was activated 1 times
..........

Сетевая статистика для UDP протокола

Для этого к опции -s нужно добавить опцию -u

$ netstat -su
IcmpMsg:
    OutType3: 4
Udp:
    782 packets received
    4 packets to unknown port received
    0 packet receive errors
    271 packets sent
    0 receive buffer errors
    0 send buffer errors
    IgnoredMulti: 2886
UdpLite:
IpExt:
    InMcastPkts: 570
    OutMcastPkts: 64
    InBcastPkts: 2886
..........

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

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

$ netstat -tp
(Не все процессы были идентифицированы, информация о процессах без владельца не
будет отображена, нужны права суперпользователя, чтобы увидеть всю информацию.)
Активные соединения с интернетом (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 ubuntu-rebrain:49814    216.239.32.178:https    ESTABLISHED 2592/firefox        
tcp        0    671 ubuntu-rebrain:59618    lf-in-f155.1e100.:https ESTABLISHED 2592/firefox        
tcp        0      0 ubuntu-rebrain:44604    a2-20-255-114.depl:http ESTABLISHED 2592/firefox        
tcp        0    671 ubuntu-rebrain:59626    lf-in-f155.1e100.:https ESTABLISHED 2592/firefox        
tcp        0      0 ubuntu-rebrain:52440    192.229.221.95:http     ESTABLISHED 2592/firefox        
tcp        0      0 ubuntu-rebrain:35478    ec2-34-199-39-224:https ESTABLISHED 2592/firefox        
tcp        0      0 ubuntu-rebrain:50116    123.208.120.34.bc:https ESTABLISHED 2592/firefox        
tcp        0      0 ubuntu-rebrain:51640    82.221.107.34.bc.g:http ESTABLISHED 2592/firefox        
tcp        0      0 ubuntu-rebrain:45660    vh410.timeweb.ru:https  TIME_WAIT   -                   
tcp        0      0 ubuntu-rebrain:42492    216.239.32.181:https    ESTABLISHED 2592/firefox        
tcp        0      0 ubuntu-rebrain:60132    172.64.41.4:https       TIME_WAIT   -                   
tcp        0      0 ubuntu-rebrain:60136    172.64.41.4:https       ESTABLISHED 2592/firefox
..........

Не показывать имя хоста и порта в выводе

Опция -n позволяет не резолвить имя хоста и порта, а выводить их в цифровом виде.

$ sudo netstat -tpn
Активные соединения с интернетом (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 192.168.110.25:34324    92.53.96.106:443        ESTABLISHED 2592/firefox        
tcp        0      0 192.168.110.25:60184    64.233.163.94:443       ESTABLISHED 2592/firefox        
tcp        0      0 192.168.110.25:50234    216.239.36.178:443      ESTABLISHED 2592/firefox        
tcp        0    671 192.168.110.25:39546    64.233.164.155:443      ESTABLISHED 2592/firefox        
tcp        0      0 192.168.110.25:60136    172.64.41.4:443         ESTABLISHED 2592/firefox        
tcp        0      0 192.168.110.25:41030    216.239.32.181:443      ESTABLISHED 2592/firefox        
tcp        0      0 192.168.110.25:46502    162.159.61.4:443        ESTABLISHED 2654/firefox        
tcp        0      0 192.168.110.25:36712    34.117.65.55:443        ESTABLISHED 2592/firefox        
tcp        0      0 192.168.110.25:37534    34.117.237.239:443      ESTABLISHED 2592/firefox

Таблица сетевых интерфейсов

Опция -i выводит таблицу сетевых интерфейсов.

$ netstat -i
Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
enp0s3    1500      392      0      2 0            91      0      0      0 BMRU
lo       65536       31      0      0 0            31      0      0      0 LRU

Таблиуа маршрутизации ядра

Опция -r выводит таблицу маршрутизации ядра.

$ netstat -r
Таблица маршутизации ядра протокола IP
Destination     Gateway         Genmask         Flags     MSS  Window  irtt  Iface
default         _gateway        0.0.0.0         UG        0    0       0     enp0s3
link-local      0.0.0.0         255.255.0.0     U         0    0       0     enp0s3
192.168.110.0   0.0.0.0         255.255.255.0   U         0    0       0     enp0s3

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

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

Поиск: CLI • Linux • Команда • Локальная сеть • Сетевой интерфейс • Сокет

Каталог оборудования
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Производители
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Функциональные группы
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.