Библиотека сайта rus-linux.net
Команда ss для начинающих
Оригинал: Linux ss Command Tutorial for Beginners (8 Examples)
Автор: Himanshu Arora
Дата публикации: 27 июня 2019 года
Перевод: А. Кривошей
Дата перевода: июль 2019 г.
Когда дело доходит до доступа к информации, связанной с сокетами, в командной строке 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. Для получения более подробной информации перейдите на справочную страницу утилиты.
Статьи о сокетах в Linux на нашем сайте:
- Как открыть TCP-/UDP-сокет средствами командной оболочки bash
- Интерфейс прикладного программирования Socket API
- Робин Бурк, Девид Хорват, UNIX для системных администраторов. Файловая система UNIX. Сокеты (Sockets)
- Утилита lsof - инструмент администратора