Утилита ss — это инструмент, который используется для отображения информации о сетевых сокетах в системе Linux. В нашем случае работаем с Ubuntu. В мануале написано:
ss — another utility to investigate sockets
В данной статье мы рассмотрим, как можно использовать утилиту ss для отображения различной информации о сетевых подключения (сокетах) в Linux. В нашем случае в Ubuntu c использованием разного набора ключей.
1. Вывод всех соединений
Базовая команда ss без каких-либо опций просто выводит список всех соединений независимо от состояния, в котором они находятся:
1 |
ss |
Так как вывод достаточно большой, рекомендуется использовать с командой more:
1 |
ss | more |
В таком случае заполняется экран терминала и можно просматривать далее нажимаю enter.
Пример вывода
2. Список слушающих и не слушающих портов
Что бы получить список как слушающих, так и не слушающих портов, используя опцию -a, как показано ниже.
1 |
ss -a |
3. Список прослушивающих сокетов(socket)
Вывод списка сокетов прослушивания, используйте флаг -l:
1 |
ss -l |
4. Список TCP соединений
Чтобы отобразить все соединения TCP, используйте параметр -t:
1 |
ss -t |
5. Список всех слушающих TCP соединения
Для просмотра всех слушающих TCP-сокетов используйте комбинацию -lt:
1 |
ss -lt |
6. Список всех UDP соединений
Для просмотра всех сокетов с UDP соединениями используйте параметр -ua:
1 |
ss -ua |
7. Список всех слушающих UDP соединений
Для просмотра списка подключений UDP используйте параметр -ul.
1 |
ss -ul |
8. Отображение у сокетов PID (идентификаторов процессов)
Для отображения идентификаторов процессов, связанных с соединениями сокетов, используйте флаг -p:
1 |
ss -p |
9. Показать сводную статистику
Чтобы вывести сводную статистику, используйте опцию -s.
1 |
ss -s |
Пример вывода
10. Показать развернутую информацию по TCP
Если нужно получить развернутую информацию то используем ключ -i. Можно использовать его как отдельно так и в комбинации с другими. В нашем случае смотрим расширенную информацию по TCP, используя ключи -ti.
1 |
ss -ti |
11. Показать сокеты IPv4 и IPv6
Если вам интересны соединения через сокет IPv4, используйте опцию -4.
1 |
ss -4 |
Тоже самое для IPv6, ключ -6:
1 |
ss -6 |
12. Фильтр соединений по номеру порта
Команда ss также позволяет фильтровать номер порта сокета или номер адреса. Например, для отображения всех соединений сокетов с портом назначения или исходным портом ssh выполните команду.
1 |
ss -at '( dport = :22 or sport = :22 )' |
или прописываем названием сервиса:
1 |
ss -at '( dport = :ssh or sport = :ssh )' |
Фильтруем по состоянию, в примере по established
1 |
ss -o state established '( dport = :ssh or sport = :ssh )' |
13. Вывод номеров портов в числовом формате
По умолчанию команда ss показывает имена портов, чтобы выводились порты в виде чисел, используйте опцию -n:
1 |
ss -n |
14. Поиск открытых портов на Linux
Выводим список всех прослушиваемых портов для TCP и UDP соединений в виде цифровых значений. Требуется повышение привилегий для выполнения. Поэтому добавляем sudo. В случае если выполнять команду от root, то добавлять sudo не требуется:
1 |
sudo ss -lntu |
15. Поиск программ, которые прослушивают порты на Linux
Если добавить ключ -p, то утилита дополнительно покажет процессы, использующие сокет:
1 |
ss -p |
Только TCP добавляем ключ -t, в примере -pt
1 |
ss -pt |
16. Вывод подключений с конкретных адресов
Проверяем подключение с определенного IP к нашему серверу/пк/vps:
1 |
ss dst 192.168.10.18 |
Не забываем подставлять IP своей сети или устройства, которое подключено.
Мануалы наше все
Количество вариантов использования ключей для утилиты ss, гораздо больше, чем в приведенном списке примеров.
Поэтому, не забываем читать мануалы:
1 |
man ss |
Вывод
Утилита ss достаточно удобная и информативная. Берем ее на заметку. И не забываем использовать при необходимости.