Просмотр сетевой статистики в Linux командой ss

  • Linux
SS используется для сбора статистики сетевой активности проверки работы сети. Работает аналогично команде NetStat, но может отображать больше информации, чем другие утилиты. Большинство современных дистрибутивов Linux сразу устанавливаются с ss. Итак, как можно использовать ss:

1. Просмотр общей статистики по сокетам
$ ss -s

Пример вывода
Total: 186 (kernel 204)
TCP:   13 (estab 1, closed 0, orphaned 0, synrecv 0, timewait 0/0), ports 0

Transport Total     IP        IPv6
*         204       -         -
RAW       0         0         0
UDP       13        12        1
TCP       13        11        2
INET      26        23        3
FRAG      0         0         0

2. Просмотр открытых портов
$ ss -l

Пример вывода

Recv-Q Send-Q Local Address:Port          Peer Address:Port
0      50         127.0.0.1:mysql                    *:*
0      50                 *:netbios-ssn                  *:*     
0      10                 *:5038                     *:*
0      2                  *:cisco-sccp                  *:*      
0      128                *:www                      *:*
0      128               :::ssh                     :::*
0      128                *:ssh                      *:*
0      128        127.0.0.1:postgresql                  *:*      
0      128              ::1:postgresql                 :::*      
0      100                *:smtp                     *:*
0      50                 *:microsoft-ds                  *:*    
0      10                 *:sip                      *:*

Если добавить p, то в выводе будет видно какой процесс использует сокет
$ ss -l

0      10   *:sip  *:*        users:(("asterisk",11073,9))

Конечно можно использовать grep, чтобы фильтровать нужные нам строчки
$ ss -pl | grep aster


0      10                           *:5038                          *:*        users:(("asterisk",11073,4))
0      2                            *:cisco-sccp                       *:*        users:(("asterisk",11073,5))
0      10                           *:sip                           *:*        users:(("asterisk",11073,9))

3. Просмотр TCP сокетов
$ ss -t -a

State      Recv-Q Send-Q   Local Address:Port         Peer Address:Port
LISTEN     0      50           127.0.0.1:mysql                   *:*
LISTEN     0      50                   *:netbios-ssn                 *:*    
LISTEN     0      10                   *:5038                    *:*
LISTEN     0      2                    *:cisco-sccp                 *:*     
LISTEN     0      128                  *:www                     *:*
LISTEN     0      128                 :::ssh                    :::*
LISTEN     0      128                  *:ssh                     *:*
LISTEN     0      128          127.0.0.1:postgresql                 *:*     
LISTEN     0      128                ::1:postgresql                :::*     
LISTEN     0      100                  *:smtp                    *:*
LISTEN     0      50                   *:microsoft-ds                 *:*   
LISTEN     0      10                   *:sip                     *:*
ESTAB      0      0          192.168.1.17:ssh           192.168.1.20:3823

последней строчкой видно меня, подключенного к серверу по ssh :)

4. Просмотр UDP подключений
$ss -u -a

5. Просмотр активных подключений
$ ss -o state established '( dport = :smtp or sport = :smtp )'

В примере smtp, но можно конечно делать любые выборки
$ ss -o state established '( sport = :ssh )'
Recv-Q Send-Q   Local Address:Port    Peer Address:Port
0      0          192.168.1.17:ssh      192.168.1.20:3823     timer:(keepalive,96min,0)

0 комментариев