Просмотр сетевой статистики в 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 комментариев

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.