Проверка деталей сокетов в каталоге /proc/net
На этом этапе вы будете изучать каталог /proc/net
, который предоставляет подробную информацию о сетевом стеке и сетевых протоколах в ядре Linux. Именно отсюда команды типа ss
и netstat
получают свои данные.
Файловая система /proc
представляет собой виртуальную файловую систему, которая предоставляет информацию о процессах и другой системной информации. Это мощный способ проверить внутреннее состояние ядра.
Внутри /proc/net
вы найдете файлы, содержащие необработанные данные о сетевых соединениях. Например, файлы tcp
, udp
, tcp6
и udp6
содержат информацию о активных TCP - и UDP - сокетах (соответственно для IPv4 и IPv6).
Давайте посмотрим на содержимое файла tcp
. Введите следующую команду в терминале и нажмите Enter:
cat /proc/net/tcp
Вы увидите вывод, похожий на следующий:
sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode ref pointer drops
0: 0100007F:0019 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 12345 1 0000000000000000 0
1: 00000000:0016 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 67890 1 0000000000000000 0
... (more lines)
Этот вывод менее удобочитаем, чем вывод ss
или netstat
, так как это необработанные данные ядра. Каждая строка представляет TCP - сокет и содержит различные поля, в том числе:
sl
: Индекс в списке сокетов.
local_address
: Локальный IP - адрес и порт в шестнадцатеричном формате. 0100007F
- это шестнадцатеричное представление 127.0.0.1
(адрес петли обратной связи), а 0019
- шестнадцатеричное представление порта 25.
rem_address
: Удаленный IP - адрес и порт в шестнадцатеричном формате.
st
: Состояние сокета (например, 0A
представляет состояние LISTEN
).
tx_queue
: Размер очереди передачи.
rx_queue
: Размер очереди приема.
uid
: Идентификатор пользователя, владеющего сокетом.
inode
: Номер inode сокета.
Вы также можете просмотреть UDP - сокеты, посмотрев содержимое файла /proc/net/udp
:
cat /proc/net/udp
Для IPv6 - сокетов вы можете проверить файлы /proc/net/tcp6
и /proc/net/udp6
.
Хотя обычно вы не будете напрямую разбирать эти файлы в повседневной работе, понимание того, откуда берутся сетевые данные, дает более глубокое представление о том, как Linux управляет сетевыми соединениями. Команды типа ss
и netstat
по сути считывают и форматируют данные из этих файлов для более легкого понимания.
Теперь вы изучили необработанную информацию о сокетах, доступную в файловой системе /proc/net
.
Нажмите Продолжить, чтобы завершить лабораторную работу.