Назад | Перейти на главную страницу

Определите, находится ли сокет TCP в пространстве ядра

У меня нет проблем с тем, чтобы узнать, принадлежит ли сокет пользовательскому пространству - я просто просматриваю / proc /, чтобы узнать, какой PID владеет [сокетом]. Но с открытыми сокетами TCP в пространстве ядра нет записи в / proc / (поскольку ядро ​​не имеет PID). Я предполагаю, что небезопасно предполагать, что только потому, что сокет не был найден в / proc, он был инициирован ядром. Я подумал о 7 недокументированных столбцах / proc / net / tcp в конце. Может быть, кто-то из них может подсказать, что это тоже происхождение сокета? Я не мог расшифровать исходный код ядра, чтобы понять, что представляют собой эти 7 полей.

Не мог бы кто-нибудь помочь мне, пожалуйста.

Пытаться netstat с дополнительными аргументами:

sudo netstat -wtpeav

В sudo там, чтобы убедиться, что вы запускаете его как root, иначе он не покажет вам все.

Возможные варианты:

-w, --raw
    Show raw sockets.

-t, --tcp
    Show TCP protocol sockets.

-p, --program
    Show the PID and name of the program to which each socket
    belongs.

-e, --extend
    Display additional information. Use this option twice for
    maximum detail.

-a, --all
    Show both listening and non-listening sockets. With the
    --interfaces option, show interfaces that are not up

--verbose , -v
   Tell the user what is going on by being verbose. Especially
   print some useful informa‐ tion about unconfigured address
   families.

Кроме того, столбцы в конце /proc/net/tcp задокументированы в дереве исходных текстов ядра в Документация / сеть / proc_net_tcp.txt. Конечные поля:

1000        0 54165785 4 cd1e6040 25 4 27 3 -1
 |          |    |     |    |     |  | |  | |--> slow start size threshold, 
 |          |    |     |    |     |  | |  |      or -1 if the threshold
 |          |    |     |    |     |  | |  |      is >= 0xFFFF
 |          |    |     |    |     |  | |  |----> sending congestion window
 |          |    |     |    |     |  | |-------> (ack.quick<<1)|ack.pingpong
 |          |    |     |    |     |  |---------> Predicted tick of soft clock
 |          |    |     |    |     |              (delayed ACK control data)
 |          |    |     |    |     |------------> retransmit timeout
 |          |    |     |    |------------------> location of socket in memory
 |          |    |     |-----------------------> socket reference count
 |          |    |-----------------------------> inode
 |          |----------------------------------> unanswered 0-window probes
 |---------------------------------------------> uid