Когда дело доходит до доступа к информации, связанной с сокетами, в командной строке Linux, первым инструментом, который приходит на ум, является netstat. Однако есть другая утилита, которая может сделать эту работу.
Она называется ss. В этом руководстве мы обсудим основы использования этой утилиты, используя несколько простых для понимания примеров. Все приведенные здесь примеры были протестированы на машине с Ubuntu 18.04 LTS.
Команда ss
Команда ss в Linux позволяет вам исследовать сокеты. Ниже приводится ее синтаксис:
ss [options] [ FILTER ]
И вот что говорится на странице руководства этой утилиты:
ss используется для вывода статистики сокетов. Она позволяет отображать информацию, аналогичную netstat.
Она может отображать больше информации о TCP и его состоянии, чем другие утилиты.
Ниже приведены примеры в стиле вопросов и ответов, которые должны дать вам лучшее представление о том, как работает команда ss.
Q1. Как использовать команду SS?
В самом простом виде вы можете использовать команду ss, выполнив ее без параметров.
ss
Ниже приведен вывод команды, созданной в моем случае:
Вы можете заметить, что в выводе по умолчанию ss отображает сокеты с установленными соединениями.
Q2. Как заставить ss не выводить строку заголовка?
Это можно сделать с помощью параметра командной строки -H.
ss -H
На следующем снимке экрана показан этот параметр командной строки в действии:
Вы можете видеть, что строка заголовка в этом случае отсутствует.
Q3. Как заставить ss отображать как слушающие, так и не слушающие сокеты?
Это можно сделать с помощью параметра командной строки -a.
ss -a
Обратите внимание, что слушающие сокеты по умолчанию опущены, поэтому использование -a заставляет ss включать их в вывод. Однако если вы хотите, чтобы ss отображал только слушающие сокеты, используйте параметр командной строки -l.
ss -l
Q4. Как заставить ss показывать процессы с помощью сокетов?
Если вы хотите, чтобы команда ss показывала информацию о процессе вместе с другой информацией, которую она уже генерирует в выходных данных, используйте параметр командной строки -p.
ss -p
Следующий скриншот показывает вывод в моем случае:
Вы можете видеть, что информация о процессе также отображается в выходных данных.
Q5. Как заставить ss выводить сводную информацию?
Если вы не хотите видеть вывод, который команда ss производит по умолчанию, есть опция, с помощью которой вы можете попросить ss составить небольшую сводку по информации, которую она анализирует.
Это резюме можно получить с помощью параметра командной строки -s:
ss -s
Например, ниже приводится краткое резюме в моем случае:
Total: 1334 (kernel 0)
TCP: 41 (estab 35, closed 3, orphaned 0, synrecv 0, timewait 3/0), ports 0
Transport Total IP IPv6
* 0 - -
RAW 1 0 1
UDP 7 5 2
TCP 38 37 1
INET 46 42 4
FRAG 0 0 0
Q6. Как заставить ss отображать только сокеты IPv4 или IPv6?
Это можно сделать с помощью параметров -4 и -6.
Например, чтобы ss отображала только сокеты IPv4, выполните следующую команду:
ss -4
Аналогично для IPv6 выполните следующую команду:
ss -6
Q7. Как заставить ss отображать только сокеты TCP или UDP?
Здесь вы можете использовать различные параметры командной строки: -t для TCP и -u для UDP.
Ниже приводится полезная выдержка из справочной страницы команды ss.
-t, --tcp
Показывает сокеты TCP.
-u, --udp
Показывает сокеты UDP.
-d, --dccp
Показывает сокеты DCCP.
-w, --raw
Показывает сокеты RAW.
-x, --unix
Показывает сокеты Unix domain (алиас для -f unix).
-S, --sctp
Показывает сокеты SCTP.
--vsock
Показывает сокеты vsock (алиас для -f vsock).
Заключение
Команда ss - очень полезный инструмент, если ваша работа в Linux связана с сетью. Здесь мы обсудили только некоторые опции командной строки ss. Для получения более подробной информации перейдите на справочную страницу утилиты.
Комментариев нет:
Отправить комментарий