linux下有什么办法可以获得进程的udp流量

发布于 2022-09-01 12:21:29 字数 612 浏览 19 评论 0

如题,

我目前可以得到使用tcp协议的进程的流量, 使用netstat 得到一个 localip:port remoteip:port pid 对作为键值,

通过抓包获得localip:port remoteip:port databyte, 然后用抓包获得的localip:port remoteip:port与netstat的做比较, 遇到相同的 就 将databyte归入 该pid下,

但是 使用udp协议的进程 因为netstat无法获得remoteip:port 因此 上面的方法对udp协议无效. ps: 我用nc 使用udp 传送一个文件. netstat是可以看见该pid的. 但是对于QQ.exe 这种的udp , 只是发送一个很小的字节或者接收一个很小的字节. netstat就看不见了.

我也在/proc/pid/net/udp 下找过 也没有收获.

百合曾经告诉过我. 可以通过写内核模块来实现, 我也知道 所有进程的通信, 内核是肯定知道的, 但是我不知道如何 从内核获得这个信息.

如果可以的话. 你们帮我让我做一个伸手党吧 :D,

btw 我尝试用systamtap 可以获得QQ.exe的udp流量. 但是我总不能将systemtap包含进我的程序里面吧 :D

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

思慕 2022-09-08 12:21:29

你可以参考一下,atop作者开发的一个用于监控进程的网络通信的内核模块netatop:
220505_emGr_561214.png
编译安装最新版atop:
http://www.atoptool.nl/downloadatop.php
wget http://www.atoptool.nl/download/atop-2.1-1.tar.gz
tar xzf atop-2.1-1.tar.gz && cd atop-2.1
make && sudo make install
atop
atop交互命令:
t(手动刷新,默认刷新间隔为10秒,i可以修改时间间隔) g(默认输出) d(磁盘) m(内存)
s(调度) v(可变) c(命令行) p(进程统计) u(用户统计) n(网络,需要内核模块netatop支持)
C(按CPU排序) M(按内存MEM排序) D(按磁盘DSK排序) N(按网络NET排序)

编译安装atop的网络内核模块netatop:
http://www.atoptool.nl/downloadnetatop.php
wget http://www.atoptool.nl/download/netatop-0.3.tar.gz
make && sudo make install
sudo service netatop start
atop里按n即可输出网络相关的信息.
模块位置: /lib/modules/uname -r/extra/netatop.ko
服务脚本: /etc/init.d/netatop
调用关系: netatop.ko => netatopd => atop

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文