Команда ss с примерами: отображение информации о сети/сокете TCP/UDP в Linux

Команда ss с примерами: отображение информации о сети/сокете TCP/UDP в Linux

Рубрики:

Сети Linux

Метки:

, , , , , , , , , ,

Команда ss используется для отображения статистики сокетов. Она может отображать статистику для сокетов: PACKET, TCP, UDP, DCCP, RAW, сокетов Unix и т.д. Также она позволяет отображать информацию, аналогичную команде netstat. Команда ss может отображать наибольшее количество информации о TCP по сравнению с другими инструментами. Это новый, невероятно полезный и быстрый (по сравнению с netstat) инструмент для отслеживания TCP-соединений и сокетов. SS может предоставить информацию о:

  • Всех сокетах TCP.
  • Всех сокетах UDP.
  • Всех установленных соединениях ssh/ftp/http/https.
  • Всех локальных процессах, подключенных к X-серверу.
  • Всех сокетах tcp в состоянии FIN-WAIT-1
  • Может выполнять фильтрацию по состоянию подключенных и синхронизированных, SYN-RECV, SYN-SENT, TIME-WAIT адресов и портов.

Некоторые дистрибутивы Linux считали команду nestat устаревшей и поэтому должны быть поэтапно отменить её в пользу более современных решений, таких как команда ss. Сейчас большинство дистрибутивов Linux поставляется уже с предустановленным ss. Знакомство с этим инструментом помогает улучшить понимание того, что происходит в системных сокетах, и позволяет найти возможные причины проблемы производительности.

 

Как отобразить сводки с помощью команды ss?

Список установленных в настоящее время, закрытых, потерянных и ожидающих сокетов TCP, введите:

 

 

Пример вывода:

 

ss

 

Как отобразить все открытые сетевые порты с помощью команды ss в Linux?

 

 

Пример вывода:

 

ss

 

Введите следующую команду, чтобы просмотреть имя процесса с использованием открытого сокета:
bash][# ss -pl[/bash]

 

 

Узнайте, кто отвечает за открытие сокета на port 4949:

 

 

Пример вывода:

 

munin-node (PID # 3772) отвечает за открытие порта 4949. Вы можете получить дополнительную информацию об этом процессе (например, о памяти, пользователях, текущей рабочей директории и т. д.), посетив каталог /proc/3772:

 

 

Показать все TCP-сокеты

 

 

Показать все UDP-сокеты

 

 

Показать все RAW сокеты

 

 

Показать все UNIX-сокеты

 

 

Примеры вывода:

 

Показать все установленные соединения SMTP

 

Показать все установленные HTTP-соединения

 

Найти все локальные процессы, подключенные к X-серверу

 

 

Вывести список всех сокетов TCP в состоянии FIN-WAIT-1

Выведите все сокеты TCP в состоянии -FIN-WAIT-1 для нашего httpd в сети 202.54.1/24 и посмотрите на их таймеры:

 

 

Как фильтровать сокеты с использованием состояний TCP?

Синтаксис выглядит следующим образом:

 

Где FILTER-NAME-HERE может быть любым из приведенных ниже:

  1. established
  2. syn-sent
  3. syn-recv
  4. fin-wait-1
  5. fin-wait-2
  6. time-wait
  7. closed
  8. close-wait
  9. last-ack
  10. listen
  11. closing
  12. all : все вышеперечисленные состояния
  13. connected : все состояния, за исключением прослушивания и закрытия
  14. synchronized : все подключенные состояния, за исключением syn-sent
  15. bucket : gоказывать состояния, которые поддерживаются как мини-сокеты, т.е. время ожидания и syn-recv.
  16. big : Противоположно состоянию bucket.

 

Примеры команды ss

Введите следующую команду, чтобы увидеть закрывающие сокеты:

 

 

Как сопоставить ip удаленных адресов и портов?

Используйте следующий синтаксис:

 

Узнайте о подключении удаленного клиента с  123.1.2.100:http к нашим локальным виртуальным серверам:

 

 

Примеры вывода:

 

Как мне сравнить локальный адрес и номера портов?

 

Как сравнить локальный и/или удаленный порт с номером?

Используйте следующий синтаксис:

 

Где OP может быть одним из следующих:

  1. <= или le : меньше или равно порту
  2. >= или ge : больше или равно порту
  3. == или eq : равно порту
  4. != или ne : не равно порту
  5. < или gt : меньше, чем порт
  6. > или lt : больше, чем порт

Примечание: le, gt, eq, ne и т.д. также используются в оболочке unix.

Пример:

 

 

Флаги для команды ss:

-h, —help                           это сообщение
-V, —version                      вывод информации о версии
-n, —numeric                     запрет имён служб
-r, —resolve                       разрешения имён хостов
-a, —all                              отображение всех сокетов
-l, —listening                     показать сокеты для прослушивания
-o, —options                     показывает информацию таймера
-e, —extend                      показать подробную информацию о сокетах
-m, —memory                   показать использование памяти сокета
-p, —processes                  показать процесс с помощью сокета
-i, —info                             показать внутреннюю информацию TCP
-s, -summary                     показать итоги использования сокета

-4, —ipv4                           отображает только сокеты IP версии 4
-6, -ipv6                            отображает только сокеты IP версии 6
-0, —packet display           пакетные сокеты
-t, —tcp                             отображать только TCP-сокеты
-u, —udp                           отображать только UDP-сокеты
-d, —dccp                          отображать только сокеты DCCP
-w, -raw                             отображать только RAW-сокеты
-x, —unix                           отображать только сокеты Unix домена
-f, —family=FAMILY          отображать сокеты типа FAMILY

-A, —query = QUERY, —socket = QUERY
QUERY: = {all | inet | tcp | udp | raw | unix | packet | netlink} [, QUERY]

-D, —diag = FILE               дамп исходной информации о сокетах TCP для FILE
-F, —filter = FILE               считывать информацию о фильтрах из FILE
FILTER: = [state TCP-STATE] [EXPRESSION]

 

Сравнение скорости работы команды ss с netstat

Используйте команду time для запуска обеих программ и сравните выводы по использованию ресурсов системы. Введите команду netstat следующим образом:

 

 

Пример вывода:

 

Теперь попробуйте выполнить команду ss:

 

 

Пример вывода:

 

Примечание. Оба вывода берутся с ускоренного прокси-сервера, работающего на RHEL v6.x amd64. Для получения дополнительной информации см. страницу ss command man:

 

 

Спасибо за уделенное время на прочтение статьи!

Если возникли вопросы, задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Ciscoкурсы по кибербезопасности,  полный курс по кибербезопасностикурсы DevNet (программируемые сети) от Академии Ciscoкурсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!

Спешите подать заявку! Группы стартуют 25 января, 26 февраля, 22 марта, 26 апреля, 24 мая, 21 июня, 26 июля, 23 августа, 20 сентября, 25 октября, 22 ноября, 20 декабря.
Что Вы получите?
  • Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
  • Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проведем вечерние онлайн-лекции на нашей платформе.
  • Согласуем с вами удобное время для практик.
  • Если хотите индивидуальный график — обсудим и реализуем.
  • Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
  • Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
А еще поможем Вам:
  • отредактировать или создать с нуля резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco, Linux LPI, кибербезопасность, DevOps / DevNet, Python, подайте заявку или получите бесплатную консультацию.

Рубрики:

Сети Linux

Метки:

, , , , , , , , , ,

Больше похожих постов

1 комментарий. Оставить новый

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения


Поиск по сайту
Лучшее
Популярное
Рубрики
Меню