- Утилита ss в Linux (мониторинг сети в Linux)
- Как использовать команду ss в Linux
- Команда ss против netstat
- Используя сс
- Список сетевых подключений
- Список прослушивающих сокетов
- Список всех сокетов
- Перечисление TCP-сокетов
- Перечисление UDP-сокетов
- Перечисление Unix-сокетов
- Перечисление сырых сокетов
- Перечисление IP версии 4 сокетов
- Перечисление IP версии 5 сокетов
- Список сокетов по состоянию
- Список сокетов по протоколу
- Вывод списка соединений на определенный IP-адрес
- Идентификация процессов
- Достойный преемник
- Примеры команды Linux «ss»
- Базовый синтаксис команды «ss» и ее справочное руководство
- Примеры команды «ss» в Linux
- Пример 1. Отображение всех подключений.
- Пример 2: Отображение всех портов
- Пример 3: Отображение только прослушивающих сокетов.
- Пример 4: Отображение всех UDP-соединений.
- Пример 5: Отображение всех прослушиваемых UDP-соединений.
- Пример 6: Отображение всех TCP-соединений.
- Пример 7: Отображение всех прослушивающих TCP-соединений
- Пример 8: Отображение
- Пример 9: Отображение процессов с использованием сокетов.
- Пример 10: Отображение подключений, соответствующих определенному Интернет-протоколу.
- Заключение
Утилита ss в Linux (мониторинг сети в Linux)
Утилита ss в Linux пришла за место системной утилиты netstat. Главное отличие netstat от ss это принцип работы. Если системная утилита netstat для работы сканировала всю директорию /proc для получения необходимой информации, то утилита ss построена на базе отдельной подсистемы.
Итак, с помощью утилиты ss, можно быстро и качественно анализировать сетевые соединения системы.
$ ss опции [фильтр_состояния] [фильтр_адреса]
Опции утилиты ss
Для анализа сетевых подключений в Linux с помощью утилиты ss можно использовать следующие опции:
-V — Version показать версию утилиты
-n — Numeric не определять имена служб
-r — Resolve определять сетевые имена адресов с помощью dns
-a — All отобразить все сокеты (открытые соединения)
-l — Listening показать только прослушиваемые сокеты
-o — Options показать информацию таймера
-e — Extended выводить расширенную информацию о сокете
-p — Processes, показать процессы, использующие сокет
-i — Internal, посмотреть внутреннюю информацию TCP
-s — Summary, статистика использования сокета
-D — экспортировать текущее состояние TCP сокетов в файл
-F — работать с информацией, взятой из файла
Можно выводить сокеты только нужного нам протокола:
-4, —ipv4 — только сокеты протокола IP версии 4
-6 —ipv6 — только сокеты протокола IP версии 6
-0, —packet — только PACKET сокеты
-t, —tcp — TCP сокеты
-u, —udp — UDP сокеты
-d, —dhcp — DHCP сокеты
-r, —raw — RAW сокеты
-x, —unix — UNIX сокеты
Также для фильтрации протоколов можно использовать универсальную опцию -f, передав в параметре название протокола.
Примеры использования:
$ ss — запуск команды без ключей выведет все сетевые подключения
$ ss -t — посмотреть только соединения по протоколу tcp
$ ss -x — вывести только unix протоколы
$ ss -ua — выведет все соединения по протоколу udp
$ ss -tr — будет пытаться разрешить имена хостов через днс
$ ss -tn — выведет только прослушиваемые tcp соединения
$ ss -ltp — выведет PID процесса, использующего сокет
Статистика использования:
$ ss -s — выведет статистику по использованию сети
$ ss -tl -f inet4 — выведет статистику только пол ipv4
$ ss -t4 state established — покажет только установленные соединения
$ ss -t4 state time-wait — сокеты в состоянии ожидания
В параметр state можно передать одно из следующих значений:
established
syn-sent
syn-recv
time-wait
closed
close-wait
last-ack
fin-wait-1
fin-wait-2
closing
all — указать все состояния
connected — все кроме прослушиваемых и закрытых
synchronized — все кроме syn-sent
bucket — time-wait и syn-recv
big — все кроме bucket
$ ss -at ‘( dport = :ssh or sport = :ssh )’ — фильтрация по адресу и номеру порта
$ ss -nt ‘( dst :443 or dst :80 )’ — выведет сокеты с портом назначения 80 или 443
$ ss -nt dst 8.8.8.8 — фильтрация по ip
$ ss -nt dst 8.8.8.8:53 — фильтрация по ip и порту
Также можете использовать такие операторы сравнения:
= или ge — больше или ровно порту
== или eq — точное соответствие
!= или ne — не равно
или lt — больше
Источник
Как использовать команду ss в Linux
ss Команда является современной заменой классическому netstat , Вы можете использовать его в Linux для получения статистики о ваших сетевых подключениях. Вот как работать с этим удобным инструментом.
Команда ss против netstat
Замена для устаревших netstat команда, ss дает вам подробную информацию о том, как ваш компьютер взаимодействует с другими компьютерами, сетями и службами.
ss отображает статистику для Протокол управления передачей (ПТС), Протокол пользовательских датаграмм (UDP), Unix (межпроцессный)и необработанные розетки. Сырые розетки работать на сетевой уровень OSIЭто означает, что заголовки TCP и UDP должны обрабатываться прикладным программным обеспечением, а не транспортным уровнем. Протокол управляющих сообщений Интернета (ICMP) сообщения и пинг Утилиты оба используют необработанные сокеты.
Используя сс
Вам не нужно устанавливать ss , так как он уже является частью современного дистрибутива Linux. Его вывод, однако, может быть очень длинным — у нас были результаты, содержащие более 630 строк. Результаты также очень широки.
Из-за этого мы включили текстовые представления результатов, которые мы получили, так как они не помещались бы на скриншоте. Мы обрезали их, чтобы сделать их более управляемыми.
Список сетевых подключений
С помощью ss без параметров командной строки перечисляет сокеты, которые не прослушиваются. То есть в нем перечислены сокеты, которые не находятся в состоянии прослушивания.
Чтобы увидеть это, введите следующее:
- NETIDТип сокета В нашем примере мы имеем «u_str», поток Unix, «udp» и «icmp6», сокет ICMP IP версии 6. Вы можете найти больше описаний Типы сокетов Linux в справочных страницах Linux.
- государство: Состояние, в котором находится сокет.
- Recv-Q: Количество полученных пакетов.
- Send-Q: Количество отправленных пакетов.
- Локальный адрес: портЛокальный адрес и порт (или эквивалентные значения для сокетов Unix).
- Адрес пера: Порт: Удаленный адрес и порт (или эквивалентные значения для сокетов Unix).
Для UDP-сокетов столбец «Состояние» обычно пуст. Для TCP-сокетов это может быть одно из следующего:
- СЛУШАТЬ: Только на стороне сервера. Сокет ожидает запроса на подключение.
- SYN-SENT: Только на стороне клиента. Этот сокет отправил запрос на подключение и ожидает, будет ли он принят.
- SYN-RECEIVED: Только на стороне сервера. Этот сокет ожидает подтверждения подключения после принятия запроса на подключение.
- УСТАНОВИЛ: Сервер и клиенты. Между сервером и клиентом установлено рабочее соединение, позволяющее передавать данные между ними.
- FIN-WAIT-1: Сервер и клиенты. Этот сокет ожидает запроса на завершение соединения от удаленного сокета или подтверждения запроса на прекращение соединения, который был ранее отправлен из этого сокета.
- FIN-WAIT-2: Сервер и клиенты. Этот сокет ожидает запроса на завершение соединения от удаленного сокета.
- CLOSE-WAIT: Сервер и клиент. Этот сокет ожидает запроса на прекращение соединения от локального пользователя.
- ЗАКРЫТИЕ: Сервер и клиенты. Этот сокет ожидает подтверждения запроса на завершение соединения от удаленного сокета.
- LAST-ACK: Сервер и клиент. Этот сокет ожидает подтверждения запроса на завершение соединения, отправленного на удаленный сокет.
- ВРЕМЯ ЖДЕТ: Сервер и клиенты. Этот сокет отправил подтверждение удаленному сокету, чтобы он знал, что получил запрос завершения удаленного сокета. Теперь он ждет, чтобы убедиться, что подтверждение было получено.
- ЗАКРЫТО: Нет соединения, поэтому сокет был прерван.
Список прослушивающих сокетов
Чтобы увидеть сокеты прослушивания, мы добавим -l (прослушивание) вариант, вот так:
Эти розетки все не связаны и слушают. «Rtnl» означает маршрутизацию netlink, которая используется для передачи информации между процессами ядра и пространства пользователя.
Список всех сокетов
Чтобы перечислить все сокеты, вы можете использовать -a (все) опция:
Вывод содержит все сокеты, независимо от состояния.
Перечисление TCP-сокетов
Вы также можете применить фильтр, чтобы отображались только соответствующие гнезда. Мы будем использовать -t (TCP), поэтому будут перечислены только сокеты TCP:
Перечисление UDP-сокетов
-u Параметр (UDP) выполняет тот же тип действия фильтрации. На этот раз мы увидим только UDP-сокеты:
Перечисление Unix-сокетов
Чтобы увидеть только сокеты Unix, вы можете включить -x (Unix) опция, как показано ниже:
Перечисление сырых сокетов
Фильтр для необработанных розеток -w (сырой) вариант:
Перечисление IP версии 4 сокетов
Сокеты с использованием протокола TCP / IP версии 4 могут быть перечислены с помощью -4 (IPV4) опция:
Перечисление IP версии 5 сокетов
Вы можете включить соответствующий фильтр IP версии 6 с помощью -6 (IPV6), например, так:
Список сокетов по состоянию
Вы можете перечислить сокеты по состоянию, в котором они находятся с state вариант. Это работает с установленным, прослушивающим или закрытым состояниями. Мы также будем использовать опцию разрешения ( -r ), который пытается разрешить сетевые адреса для имен и порты для протоколов.
Следующая команда будет искать установленные соединения TCP, и ss постараюсь разрешить имена:
Перечислены четыре соединения, которые находятся в установленном состоянии. Имя хоста, ubuntu20-04, было разрешено, и вместо 22 для SSH-соединения во второй строке отображается «ssh».
Мы можем повторить это, чтобы найти сокеты в состоянии прослушивания:
Список сокетов по протоколу
Вы можете перечислить сокеты, используя определенный протокол с dport и sport параметры, которые представляют порты назначения и источника соответственно.
Мы вводим следующее, чтобы перечислить сокеты, используя протокол HTTPS на established соединение (запишите пробел после открывающей скобки и перед закрывающей):
Мы можем использовать имя протокола или порт, обычно связанный с этим протоколом. Порт по умолчанию для Безопасная оболочка (SSH) — порт 22.
Мы будем использовать имя протокола в одной команде, а затем повторим его, используя номер порта:
Как и ожидалось, мы получаем те же результаты.
Вывод списка соединений на определенный IP-адрес
С dst (пункт назначения), мы можем перечислить подключения к определенному IP-адресу назначения.
Мы вводим следующее:
Идентификация процессов
Чтобы увидеть, какие процессы используют сокеты, вы можете использовать опцию процессов ( -p ), как показано ниже (обратите внимание, вы должны использовать sudo ):
Это показывает нам, что два установленных соединения в сокетах TCP используются демоном SSH и Firefox.
Достойный преемник
ss Команда предоставляет ту же информацию, ранее предоставленную netstat , но более простым и доступным способом. Вы можете проверить справочная страница для больше вариантов и советов.
Источник
Примеры команды Linux «ss»
«Ss» — это встроенная команда Linux, используемая для отображения подробной информации о сетевых сокетах. Вы можете использовать различные параметры этой команды для отображения нужной вам информации. Мы кратко поговорим о некоторых примерах использования команды «ss» в Linux в сегодняшнем руководстве.
Базовый синтаксис команды «ss» и ее справочное руководство
Базовый синтаксис обсуждаемой команды показан ниже:
Существуют различные доступные параметры, которые можно использовать с командой «ss». Вы можете проверить эти параметры, открыв «справку» по «ss» с помощью следующей команды:
Вы можете увидеть справочное руководство по команде «ss» на изображении, показанном ниже:
Примеры команды «ss» в Linux
Примеры команды «ss» в Linux обсуждаются ниже:
Пример 1. Отображение всех подключений.
Если вы хотите вывести список всех подключений вашей системы Linux, вы можете запустить команду «ss» без каких-либо параметров следующим образом:
Все подключения нашей системы Linux показаны на изображении ниже:
Пример 2: Отображение всех портов
Вы можете отобразить все порты независимо от того, прослушивают они или нет, используя следующий вариант команды «ss» в Linux:
Все порты нашей системы Linux показаны ниже:
Пример 3: Отображение только прослушивающих сокетов.
Если вы хотите отобразить только прослушивающие сокеты на терминале, вы можете использовать команду «ss» следующим образом:
Слушающие сокеты нашей системы Linux показаны ниже:
Пример 4: Отображение всех UDP-соединений.
Мы знаем, что у нас есть UDP-соединения или TCP-соединения. Если вы хотите вывести список всех UDP-соединений, вы должны использовать команду «ss» следующим образом:
Все UDP-соединения нашей системы Linux следующие:
Пример 5: Отображение всех прослушиваемых UDP-соединений.
Если вы хотите вывести список только тех UDP-соединений, которые в данный момент прослушиваются, вы можете использовать следующую версию команды «ss»:
Все прослушивающие UDP-соединения нашей системы Linux показаны ниже:
Пример 6: Отображение всех TCP-соединений.
Точно так же вы можете перечислить все TCP-соединения следующим образом:
Все TCP-соединения нашей системы Linux показаны ниже:
Пример 7: Отображение всех прослушивающих TCP-соединений
Прослушивающие TCP-соединения системы Linux можно отобразить с помощью следующей команды:
Результаты выполнения этой команды следующие:
Пример 8: Отображение
Сводки всех подключений Вы можете даже перечислить сводную статистику всех подключений вашей системы, используя команду «ss» следующим образом:
Сводная статистика всех подключений нашей системы Linux показана ниже:
Пример 9: Отображение процессов с использованием сокетов.
Если вы хотите отобразить процессы, соответствующие всем разъемам подключения, вы можете выполнить команду «ss» следующим образом:
Результат этого варианта команды «ss» выглядит следующим образом:
Пример 10: Отображение подключений, соответствующих определенному Интернет-протоколу.
Вы даже можете выбрать отображение всех подключений IPv4 или IPv6. Для отображения только соединений IPv4 вы можете выполнить команду «ss» следующим образом:
Если вы хотите отобразить все соединения IPv6, вы можете заменить «-4» на «-6». Результат этого варианта команды «ss» показан ниже:
Заключение
В этой статье мы рассмотрели почти все примеры использования команды «ss» в Linux. Однако вы можете дополнительно изучить использование этой команды, просмотрев ее Справочное руководство.
Источник