2010-10-20 37 views
2

我的机器不断地做udp dns流量请求。 我需要知道的是生成此流量的过程的PID。我如何识别哪个进程在linux上进行UDP通信?

TCP连接的正常方式是使用netstat/lsof并获取与pid关联的进程。

UDP是连接状态,所以,当我打电话给netastat/lsof我可以看到它,只有当UDP套接字打开,它发送流量。

我试过用lsof -i UDP和nestat -anpue,但是我无法找到至极的进程正在做这个请求,因为我需要在发送udp流量的时候调用lsof/netstat,如果我调用lsof/udp数据报发送之前/之后的netstat不可能查看打开的UDP套接字。

正好3/4 udp数据包发送时调用netstat/lsof是不可能的。

我该如何识别臭名昭着的过程? 我已经检查了流量,试图从数据包的内容中识别发送的PID,但无法从流量的角度识别它。

任何人都可以帮助我吗?

我本机FEDORA 12上的Linux根noise.company.lan 2.6.32.16-141.fc12.x86_64#1 SMP星期三07月07日4点49分59秒UTC 2010 x86_64的x86_64的x86_64的GNU/Linux的

编辑:
我问了超级用户平台上的相同问题
更多相关的地方这种类型的问题OFF课程!

Click here, You can find the right answer in the right place

回答

0
netstat -anp |grep -i udp 

的过程是在最后一列

+0

我已经尝试过更多选项,netstat -anpue,其中u代表udp和e代表扩展信息,我也尝试使用-c连续选项。问题是我需要打电话给netstat,当'臭名昭着'的进程使udp流量,并不可能调用它在接触istant它的成就。对于测试我写了一个C循环调用gethostbyname和每10秒我能够通过netstat查看流量,但我错过了很多请求。任何方式有一个历史和一致的udp /流量的方式? – 2010-10-20 12:28:20

1

要你的Fedora箱配置为使用域名服务器,这些UDP DNS请求?只要打开Firefox并转至http://www.google.com将在名称解析发生时生成一个UDP数据包流。在终端窗口中运行tcpdump port 53,打开Firefox并转到某个网站,您会看到我的意思。

+0

运行'tcpdump port 53'并将管道输出到日志文件,这样您将看到发出UDP请求的应用程序端口。通过了解应用程序的端口,您可以找到应用程序本身。 – 2010-10-20 14:44:38

+0

您可以看到src端口为true,但是它是UDP,在OP尝试运行lsof时端口很可能不会被使用。这不是一个有状态的连接。事实上,快速浏览一下我的tcpdump输出,可以看到我在一秒钟内列出了四个不同的源端口。 – mazianni 2010-10-20 14:51:16

+0

马齐亚尼,你已经明白了这一点。 UDP是无状态的,因此当我调用lsof/netstat时,端口不再被使用,因此我无法看到进程的PID。 – 2010-10-21 08:34:54

0

Linux Socket Monitor可以跟踪对网络套接字的更改。当新套接字打开时它应该提醒你。

+0

Linux套接字监控只是一个调用lsof/netstat的bash脚本。通过这种方式,不可能在udp流量生成时正好调用它。 – 2010-10-21 08:35:20

相关问题