일정 기간(과거 또는 미래) 동안 네트워크 활동이 있는 모든 Linux 프로세스를 나열하는 방법은 무엇입니까?

일정 기간(과거 또는 미래) 동안 네트워크 활동이 있는 모든 Linux 프로세스를 나열하는 방법은 무엇입니까?

어떤 프로세스가 네트워크를 사용하는지 알고 싶습니다.

  1. 네트워크를 사용하는 시스템에 알려지지 않은(그리고 잠재적으로 악성인) 프로그램이 있는지 확인하십시오.
  2. 프로세스별 네트워크 트래픽을 이해하고 프로토콜 HTTP, TCP, UDP, ICMP 및 수신/발신 트래픽별로 세분화합니다.

답변1

topCPU 사용량과 마찬가지로 네트워크 iftop사용량도 마찬가지입니다.

답변2

질문하신 내용이 좀 광범위해서 일반적인 용어로 설명하겠습니다. 즉, 시간 경과에 따른 프로세스 및 프로토콜별로 분류된 네트워크 사용량을 이해하려고 합니다.

가정용으로는 ntop을 사용해 보세요. 아마도 필요한 것보다 더 많은 일을 할 것이며 무엇보다도 기록 그래프를 표시할 것입니다.

http://www.ntop.org/products/traffic-analytic/ntop/

현재 작업에 적합한 도구가 있습니다. 무슨 일이 일어나고 있는지에 대한 일반적인 아이디어를 얻기 위해 nethogs는 네트워크의 애플리케이션 사용량을 잘 분석합니다.

http://nethogs.sourceforge.net

"NetHogs는 작은 '네트워크 상위' 도구입니다. 대부분의 도구처럼 프로토콜이나 서브넷별로 트래픽을 나누는 대신 프로세스별로 대역폭을 그룹화합니다."

또한 dtrace4linux 및 sysdig를 사용할 수도 있습니다. 이는 서버 사용의 거의 모든 측면에 대한 통계로 정말 놀라운 작업을 수행할 수 있습니다. Brendan Gregg는 "System Performance: Enterprise and Cloud"라는 dtrace에 관한 매우 흥미로운 책을 가지고 있습니다.

트래픽 사용량에 대한 전역 통계를 보려면 ifconfig를 샘플링하거나 proc에서 rx/tx가 전송한 바이트를 샘플링할 수 있습니다. 여러 서버를 관리하는 경우 NMS 및 SNMP를 사용하는 것이 가장 좋습니다.

서버 네트워크를 관리하는 경우 라우터에서 iptables 계정을 수행하거나 방화벽이나 라우터에서 Netflow를 설정하고 데이터를 수신하여 데이터베이스에 저장해야 할 수 있습니다. nfSen은 이러한 상황을 시각화하는 데 특히 유용합니다.

IDS는 보안 관련 공격에 있어 매우 흥미로운 기술입니다. Snort를 상자에서 실행할 수 있지만 일반적으로 트래픽을 수신할 수 있는 상자에서 실행됩니다.

답변3

netstat -p활성 연결이 있는 프로세스 목록을 가져오는 데 사용할 수 있습니다.

관련 정보