Inotify
使用 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: -
Inotify 用於文件系統事件監視,因此除非有代表系統套接字的特殊 FS — 沒辦法。
我建議查看netlink,
NETLINK_INET_DIAG
尤其是它,但我無法確定它是否有相應的設施。**更新:**我已經分享了這個問題答案,並且 Pavel Emelyanov(CRIU的主要開發人員)證實了我的懷疑——您很可能無法通過
netlink
.
更新:您可以使用conntrack-tools跟踪這些事件。