Как проверить, включен ли сетевой протокол в Linux

LinuxLinuxBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии (лабораторной работе) вы узнаете, как проверить, включен ли сетеевой протокол и активно ли он используется в Linux. Мы рассмотрим три различных метода для достижения этой цели.

Во - первых, вы будете использовать команду netstat -s, чтобы просмотреть подробную статистику различных сетевых протоколов, таких как TCP, UDP и ICMP, и получить представление о их активности. Затем вы изучите каталог /proc/net, который предоставляет доступ к информации о сетевом ядре, чтобы проверить наличие и состояние протоколов. Наконец, вы будете использовать команду ss -s, современную альтернативу netstat, для проверки использования протоколов и просмотра статистики. По окончании этого практического занятия вы получите практические навыки для диагностики активности сетевых протоколов в своей системе Linux.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/RemoteAccessandNetworkingGroup(["Remote Access and Networking"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/RemoteAccessandNetworkingGroup -.-> linux/netstat("Network Monitoring") subgraph Lab Skills linux/ls -.-> lab-558740{{"Как проверить, включен ли сетевой протокол в Linux"}} linux/cat -.-> lab-558740{{"Как проверить, включен ли сетевой протокол в Linux"}} linux/netstat -.-> lab-558740{{"Как проверить, включен ли сетевой протокол в Linux"}} end

Проверка статистики протоколов с помощью netstat -s

На этом этапе мы рассмотрим, как проверить статистику сетевых протоколов с использованием команды netstat. netstat - это утилита командной строки, которая отображает сетевые соединения, таблицы маршрутизации, статистику интерфейсов, маскирующие соединения и членство в мультикаст-группах.

Опция -s в команде netstat показывает статистику по каждому протоколу. Это может быть очень полезно для понимания сетевой активности в вашей системе и диагностики возможных сетевых проблем.

Если терминал еще не открыт, откройте его. Для этого нажмите на значок Xfce Terminal слева на рабочем столе.

Теперь введите следующую команду и нажмите Enter:

netstat -s

Вы увидите вывод, похожий на следующий (точные числа и протоколы могут отличаться в зависимости от активности вашей системы):

Ip:
    Forwarding: 1
    ... (различные статистические данные IP)
Icmp:
    ... (различные статистические данные ICMP)
IcmpMsg:
    ... (различные статистические данные сообщений ICMP)
Tcp:
    Active connections openings: 123
    Passive connection openings: 45
    ... (различные статистические данные TCP)
Udp:
    InDatagrams: 678
    OutDatagrams: 901
    ... (различные статистические данные UDP)
UdpLite:
    ... (различные статистические данные UDPLite)

Этот вывод представляет собой сводку статистики различных сетевых протоколов, таких как IP, ICMP, TCP и UDP. Например, в разделе Tcp: вы можете увидеть количество активных и пассивных установок соединений. В разделе Udp: вы можете увидеть количество входящих и исходящих датаграмм.

Понимание этих статистических данных поможет вам определить, испытывает ли определенный протокол высокую нагрузку или ошибки.

Отведите немного времени, чтобы просмотреть вывод и увидеть, какие протоколы перечислены и какие статистические данные предоставлены для каждого из них.

Нажмите Продолжить, чтобы перейти к следующему шагу.

Проверка протоколов в /proc/net

На предыдущем этапе мы использовали команду netstat -s для просмотра статистики протоколов. Теперь давайте посмотрим, откуда в файловой системе Linux берутся некоторые из этих данных.

Linux предоставляет виртуальную файловую систему /proc, которая содержит информацию о процессах и системной конфигурации. Внутри /proc каталог /proc/net хранит информацию о сетевом стеке.

Мы можем использовать команду ls для вывода содержимого каталога /proc/net. Введите следующую команду в терминале и нажмите Enter:

ls /proc/net

Вы увидите список файлов и каталогов, которые представляют различную информацию, связанную с сетью. Вывод будет выглядеть приблизительно так:

arp         dev_mcast  ip_mr_vif  netlink  psched  tcp6   udp6
dev         if_inet6   ip_tables  netstat  rpc     udplite  unix
dev_snmp6   ip_mr_cache  ipv6_route  packet   route   udplite6

Многие из этих файлов содержат подробную информацию о сетевых протоколах и соединениях. Например:

  • tcp: Содержит информацию об активных TCP - соединениях.
  • udp: Содержит информацию об активных UDP - соединениях.
  • netstat: Содержит различную сетевую статистику, аналогичную тому, что показывает команда netstat -s.

Давайте посмотрим на содержимое файла netstat в каталоге /proc/net. Мы можем использовать команду cat для вывода содержимого файла.

Введите следующую команду и нажмите Enter:

cat /proc/net/netstat

Вывод будет представлять собой необработанный дамп сетевой статистики. Вначале он может показаться немного запутанным, так как не отформатирован для удобного чтения человеком, как вывод команды netstat -s.

TcpExt: SyncookiesSent SyncookiesRecv SyncookiesFailed EmbryonicRsts PruneCalled RcvPruned OfoPruned ...
IpExt: InNoRoutes InTruncatedPkts InEZHeadroomOutMcasts InBcastPktsOutBcastPkts InOctets OutOctets ...

Этот файл содержит исходные данные, которые инструменты типа netstat -s обрабатывают и форматируют. Исследование файлов в /proc/net может быть полезно для продвинутой сетевой отладки и понимания сетевого состояния ядра.

Пока просто зафиксируйте наличие и содержимое этих файлов, чтобы понять, что сетевые статистики доступны через файловую систему /proc.

Нажмите Продолжить, чтобы перейти к следующему шагу.

Проверка использования протоколов с помощью ss -s

На этом этапе мы будем использовать команду ss, которая является утилитой для исследования сокетов. Часто ее считают заменой для netstat, так как она может отображать больше информации о TCP и состояниях соединений.

Как и команда netstat, команда ss также имеет опцию -s, которая позволяет отобразить сводную статистику для различных типов сокетов. Это даст вам быстрый обзор количества открытых соединений и сокетов для разных протоколов.

Если терминал еще не открыт, откройте его.

Введите следующую команду и нажмите Enter:

ss -s

Вы увидите вывод, в котором суммируется количество сокетов в различных состояниях и для разных протоколов. Вывод может выглядеть так:

Total: 1234 (kernel 5678)
TCP:   90 (estab 50, closed 20, orphaned 5, synrecv 3, timewait 10, ...)
UDP:   15
RAW:   0
UNK:   0

TCP:
ESTAB      50
TIME-WAIT  10
... (other TCP states)

Разберем вывод:

  • Total: Показывает общее количество сокетов.
  • TCP: Предоставляет сводку по TCP - сокетам, включая общее количество и количество в различных состояниях, таких как estab (установленное соединение), closed (закрытое соединение), timewait и т.д.
  • UDP: Показывает общее количество UDP - сокетов.
  • RAW: Показывает общее количество "сырых" (raw) сокетов.
  • UNK: Показывает количество неизвестных типов сокетов.

Под сводными строками ss -s часто предоставляет более подробный разбор состояний TCP.

Сравнивая выводы netstat -s и ss -s, вы, возможно, заметите, что ss -s больше фокусируется на состояниях сокетов, что может быть очень полезно для диагностики проблем с соединениями. Например, большое количество сокетов в состоянии TIME - WAIT может указывать на проблемы с эффективным закрытием соединений.

Использование ss -s дает другую перспективу на сетевую активность по сравнению с netstat -s. Обе команды являются ценными инструментами для мониторинга и отладки сетей в Linux.

Теперь вы узнали, как использовать netstat -s, исследовать /proc/net и использовать ss -s для проверки статистики сетевых протоколов. Это фундаментальные навыки для понимания сетевой активности в системе Linux.

Нажмите Продолжить, чтобы завершить этот практический урок.

Резюме

В этом практическом уроке мы научились проверять, включен ли сетевой протокол в системе Linux, анализируя сетевую статистику и системные файлы. Мы начали с использования команды netstat -s для отображения статистики по каждому протоколу для различных сетевых протоколов, таких как IP, ICMP, TCP и UDP. Это помогает понять сетевую активность и диагностировать проблемы. Затем мы изучили, как проверить информацию о протоколах, просматривая файлы в каталоге /proc/net, который позволяет увидеть состояние сетевого стека ядра. Наконец, мы использовали команду ss -s для проверки использования протоколов, которая представляет собой еще один способ просмотра сводной статистики по разным протоколам. Эти методы дают ценную информацию о сетевых протоколах, активных в системе Linux.