任何人都知道一個簡單的方法來要求Linux「顯示每個互聯網數據包到/從谷歌瀏覽器」或「顯示每個互聯網數據包到/從遠程登錄過程與PID 10275」?如何捕獲每個PID的網絡數據包?
telnet示例不太有用,因爲我只能使用wireshark或tcpdump來查看涉及端口23的所有TCP對話。那個和沒有人使用telnet了。但是,從所有使用多個端口的複雜應用程序中嗅探所有數據包似乎是一件有用的事情。
我發現了一些相關的答案,探索不同的方式來證實端口和的PID(或程序名)等,但隻字未提包
- How to tie a network connection to a PID without using lsof or netstat?
- How I can get ports associated to the application that opened them?
- How to do like "netstat -p", but faster?
看起來有人可能願意爲此答覆付費:
NetHogs是快速看到哪些程序創建一個多接口的流量是有用的,但它並沒有辦法來捕獲數據包。
hrm,我應該問serverfault嗎? –
這實際上可能屬於超級用戶。一個有趣的問題。你可以使用WireShark來過濾HTTP請求,但你必須掛鉤內核驅動程序來過濾基於PID的數據包。 – Bojangles
這是一個複雜的問題 - 套接字不屬於PID;你可以將它們從一個進程傳遞給另一個進程。如果進程A打開一個套接字,它可以將它傳遞給進程B然後退出 - 如果你正在過濾進程A的PID,現在會發生什麼? – bdonlan