2010-10-20 57 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

相關問題