1

我正在寻找某种方法来确定 sk_buff 指向哪个进程。我知道没有直接的方法可以做到这一点。要获得sk_buff我正在使用netif_rx notifier. 我不得不使用通知程序而不是NETFILTER,因为NETFILTER 在中断上下文中工作(但是,如果NETFILTER 在这种情况下可以以任何方式更有用,我可以切换)。
到目前为止我已经尝试过:
struct pid *sk_peer_pid. 与每个任务的打开文件描述符 进行比较。这太重了。 网络命名空间。这是无用的,因为所有进程都使用相同的命名空间,并且默认情况下设备上未启用此功能。struct sock *
struct file *struct files_struct


我的最后一个想法是将数据包中的目标端口与进程正在侦听的端口进行比较。有没有办法做到这一点?从数据包中获取所需的端口号,然后查找它,看看哪个进程正在监听它?

4

0 回答 0