- 1. Отображение сетевого подключения командой SS
- Синтаксис команды ss:
- 2. Список прослушивающих сокетов
- 3. Отображение всех сокетов
- 4. Просмотр TCP-соединений командой SS
- 5. Показ UDP-соединений
- 6. Отображение списка сокетов Unix
- 7. Показ необработанных сокетов
- 8. Показать подключенные IP-адреса
- 9. Отобразить подключения к сокетам IPv4 и IPv6
- 10. Определите процессы
- 11. Показать соединение без разрешения имени хоста
- 12. Фильтр по соединению
- Параметры команды ss
- Сравнение команд ss и netstat
- Заключение
Команда ss — это терминальная команда, используемая для отображения информации о сетевом сокете в Linux. SS расшифровывается как статистика сокетов. Это инструмент аналогичный netstat, который отображает немного больше информации, такой как информация о состоянии TCP.
Инструмент ss поставляется в комплекте с пакетом iproute2. Он может отображать статистику для сокетов домена PACKET, TCP, UDP, DCCP, RAW и Unix.
В этой статье мы расскажем про команду ss в Linux и покажем полезные примеры.
1. Отображение сетевого подключения командой SS
Команда ss без каких-либо параметров отобразит все открытые сокеты (например, TCP/UNIX/UDP), которые установили соединение.
$ ss
- Netid: отображает типы сокетов.
- State: отображает состояние сокета, если он установлен (ESTAB), Не подключен (UNCONN) или прослушивается (LISTEN).
- Recv-Q: этот столбец отображает количество принятых пакетов в очереди.
- Send-Q: данная колонка отображает количество отправленных пакетов в очереди.
- Local address:port: показывает адрес локальной машины и порт.
- Peer address:port: отображает адрес удаленной машины и порт.
Вы можете получить более подробную информацию, используя команду ss в сочетании с различными опциями. Вы также можете выбрать несколько вариантов одновременно.
Синтаксис команды ss:
$ ss [Option]
$ ss [Option1] [Option2] [Option3]
2. Список прослушивающих сокетов
Для отображения списка прослушиваемых сокетов используйте опцию -l
или --listen
.
$ ss -l
3. Отображение всех сокетов
Вы можете отобразить все прослушивающие и не прослушивающие сетевые подключения, используя опцию -a
или-all
.
$ ss -a
4. Просмотр TCP-соединений командой SS
Чтобы отобразить соединение TCP-сокета, используйте опцию -t
или--tcp
.
$ ss -t
Чтобы отобразить список всех TCP-соединений, вы можете использовать параметры -a
и -t
одновременно. Это включает в себя состояние всех сокетов.
$ ss -at
Чтобы отобразить TCP — соединение для всех состояний, объедините параметры -l
и -t
.
$ ss -alt
5. Показ UDP-соединений
Чтобы показать подключение к сокету UDP, используйте опцию -u
или--udp
.
$ ss -u
Чтобы отобразить список всех UDP подключений, используйте параметры-a
и -u
. Это включит в себя состояния сокета.
$ ss -au
Вы можете объединить -l
и -u
эта связка параметров отобразит UDP-соединение, всех состояний прослушивания сокета.
$ ss -lu
6. Отображение списка сокетов Unix
Чтобы отобразить все сокеты Unix, вы можете использовать команду ss вместе с -f unix
или -x
.
$ ss -f unix
7. Показ необработанных сокетов
Чтобы отобразить все необработанные сокеты, вы можете использовать опцию -w
или --raw
.
$ ss -w
8. Показать подключенные IP-адреса
Мы можем использовать команду ss для отображения списка соединений определенного IP-адреса назначения или источника.
Например, чтобы указать подключение IP-адреса:
$ ss dst 13.227.138.30
Например, чтобы указать подключение исходного IP-адреса:
$ ss src 192.168.18.151
9. Отобразить подключения к сокетам IPv4 и IPv6
Если вы хотите отобразить список подключений сокетов IPv4, используйте опции -4 и -6 для отображения списка подключений сокетов.
Для отображения списка подключений к сокету IPv4 введите:
$ ss -4
Для отображения списка подключений к сокетам IPv6 используйте команду:
$ ss -6
Чтобы посмотреть все TCP-соединения IPv4, вы можете использовать следующий пример.
$ ss -at4
10. Определите процессы
Вы можете найти процессы сокетов, используя опцию -p
вместе с командой ss. Чтобы идентифицировать процесс, вам потребуется пользователь с sudo.
$ sudo ss -t -p
11. Показать соединение без разрешения имени хоста
Для разрешения числового адреса/портов используйте параметр -r (resolve). В то время как параметр -n
— не разрешает имена служб.
В этом примере, вы можете увидеть разницу между этими двумя:
$ ss -tn
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
ESTAB 0 0 74.208.235.196:22 48.192.234.17:60216
$ ss -tr
State Recv-Q Send-Q Local Address:Port Peer Address:Port Process
ESTAB 0 64 li82-186.members.linode.com:ssh n47-172-231-17.sun4.vic.optusnet.com.au:60317
$
12. Фильтр по соединению
Давайте рассмотрим несколько примеров того, как применять фильтры для вывода конкретной информации.
Чтобы отфильтровать TCP-соединение с прослушиванием состояния, введите:
$ ss -t state listening
Для отображения установленных подключений к ssh— портам используйте эут команду:
$ ss -tr state established '( dport = :22 or sport = :22 )'
Вы также можете использовать традиционный способ команды grep для фильтрации. Здесь я показываю все TCP-соединения, которые прослушиваются:
$ ss -at | grep LISTEN
Параметры команды ss
Команда ss предоставляет различные опции для управления выводом, которые будут отображаться в соответствии с вашими требованиями. Вы можете использовать -h или —help вместе с командой ss, чтобы просмотреть основные параметры, доступные с помощью утилиты ss.
$ ss -h
Сравнение команд ss и netstat
Инструмент ss включен в пакет iproute2 и используется по умолчанию в большинстве дистрибутивов Linux. Чтобы получить netstat, вам необходимо установить net-tools, который уже устарел. Команда ss выполняется намного быстрее, так как она работает непосредственно из ядра. SS не является полной заменой netstat, часть команды netstat заменена командой ip.
Заключение
В этой статье мы рассказали о команде ss и показали некоторые полезные примеры. Вы можете ознакомиться со справочной страницей команды ss для получения дополнительной информации.