Bất cứ ai biết một cách dễ dàng để yêu cầu Linux "hiển thị mọi gói internet đến/từ google chrome" hoặc "hiển thị mọi gói internet đến/từ quá trình telnet với PID 10275"?Tôi có thể nắm bắt các gói mạng trên mỗi PID bằng cách nào?
Ví dụ telnet không phải là quá hữu ích, vì tôi chỉ có thể sử dụng wireshark hoặc tcpdump để xem tất cả các cuộc hội thoại TCP liên quan đến cổng 23. Điều đó và không ai sử dụng telnet nữa. Nhưng đánh hơi tất cả các gói đến/từ các ứng dụng phức tạp sử dụng nhiều cổng có vẻ giống như một điều hữu ích.
Tôi tìm thấy một số câu trả lời liên quan khám phá những cách khác nhau để chứng thực các cảng và PID (hoặc chương trình tên) và như vậy, nhưng không có gì về gói
- 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?
Có vẻ như ai đó có thể đã sẵn sàng trả tiền cho câu trả lời này trong khi quay lại:
NetHogs rất hữu ích để nhanh chóng nhìn thấy những gì chương trình đang tạo giao thông qua một giao diện, nhưng nó không có một cách để nắm bắt các gói tin.
Hrm, tôi có nên hỏi thay cho serverfault không? –
Điều này có thể thuộc về SuperUser, thực sự. Một câu hỏi thú vị. Bạn có thể sử dụng WireShark để lọc ra các yêu cầu HTTP, nhưng bạn phải móc vào trình điều khiển hạt nhân để lọc các gói dựa trên PID – Bojangles
Đó là một vấn đề phức tạp - ổ cắm không thuộc sở hữu của PID; bạn có thể truyền chúng từ quy trình này sang tiến trình khác. Nếu tiến trình A mở một ổ cắm, nó có thể chuyển nó sang xử lý B sau đó thoát ra - nếu bạn đang lọc PID của tiến trình A, điều gì sẽ xảy ra bây giờ? – bdonlan