使用 inotify 识别 TCP 套接字何时打开

使用 inotify 识别 TCP 套接字何时打开

正如标题所示,是否有一种方法可以使用 inotify/inotify-tools 来通知最近打开的套接字?据我所知,inotify 仅适用于 inode,而具体测试这些 inode 是否是套接字并不是 inotify 实际上能够做到的事情。此外,我似乎找不到套接字 FD 的存储位置。我只能看到它们的文件描述符,它们是符号链接:

# ls -l /proc/29711/fd/10 
lrwx------ 1 root root 64 Mar  6 17:04 /proc/29711/fd/10 -> socket:[750728]

# stat /proc/29711/fd/10
  File: `/proc/29711/fd/10' -> `socket:[750728]'
  Size: 64              Blocks: 0          IO Block: 1024   symbolic link
Device: 3h/3d   Inode: 759700      Links: 1
Access: (0700/lrwx------)  Uid: ( 0/    root)   Gid: ( 0/    root)
Access: 2013-03-06 17:05:22.690411801 +1100
Modify: 2013-03-06 17:04:14.062414880 +1100
Change: 2013-03-06 17:04:14.062414880 +1100
 Birth: -

答案1

Inotify 用于文件系统事件监控,因此除非有特殊的 FS 代表系统套接字——否则没办法。

我建议看看网络链接尤其是它NETLINK_INET_DIAG,但我不能确定它是否有相应的设施。

更新:我有共享这个问题的答案和 Pavel Emelyanov —中央情报局的主要开发人员,证实了我的怀疑——你很可能无法通过 获得这些通知netlink

答案2

更新:您可以使用以下方式跟踪这些事件conntrack 工具

相关内容