어떤 응용 프로그램이 네트워크를 사용하고 있는지 어떻게 알 수 있습니까?


9

Mac을 사용할 때 가끔 인터넷 연결이 느려집니다. Activity Monitor 사용 내 연결이 지원할 수있는 최고 속도로 데이터를 다운로드하고 있기 때문에 발생하는 것을 알 수 있습니다. 여러 가지 (드롭 박스 동기화, 일부 앱은 자동 업데이트를 수행합니다. 가장 최근에는 잊어 버린 브라우저 탭의 비디오 버퍼링)으로 인해 발생할 수 있습니다. 네트워크 사용을 담당하는 앱 OS X에서 그런 일이 가능합니까? 이상적으로는 무료 솔루션을 찾고 있습니다. (명령 줄은 정상입니다.) 차이가 나면 스노우 레오파드에 있습니다.

답변:


6

dtrace하나의 라이너를 사용해보십시오 .

sudo dtrace -n 'syscall::recvfrom:return { @[pid,execname] = sum(arg0); }'

잠시 동안 실행 한 다음 Control-C를 누르십시오. 프로세스간에 분산 된 소켓에서 읽은 바이트 수의 요약을 인쇄합니다. 보다 상세한 뷰를 들어, 교체 sum에 의해 quantize. 아니면 그냥 교체 읽기 소켓의 수를 볼 수 sum에 의해를 count.

면책 조항 : 나는 이것을 Lion에서만 시도했지만 AFAIK는 SL과 Lion간에 dtrace 기능에 큰 변화가 없었습니다.


1
많은 감사합니다! 간단하고 효과적이며 내가 필요한 것을 정확하게 수행합니다. Snow Leopard에서 잘 작동합니다.
Nathaniel

... 실제로 "sum"을 사용하면 숫자가 조금 이상해 보입니다. Chrome은 일반적으로 음수 (!)를받습니다. 그러나 양자화를 사용하면 합리적으로 보입니다.
Nathaniel

음수, 응? 오버플로의 경우 일 수 있습니다. 또는 음수가 작 으면 오류가 발생하면 시스템 호출이 -1을 반환한다는 것을 기억하십시오. 오버플로라면 64 비트 커널을 실행할 때 발생하지 않을 것입니다.
Harald Hanche-Olsen

그들은 중간 크기의 음수입니다. 다음은 일반적인 결과입니다 (Chrome에서이 페이지를 다시로드하는 동안 가져옴). 250 Google Chrome -159; 39 KernelEventAgen 1; 19 mDNSResponder 2240; 'quanitze'를 사용하면 음수 값을 가질 수있는 "value"열과 "count"열이 있습니다. sum 명령은 (value) * (count)의 합계를보고하는 것 같습니다. 음수 값은 들어오는 패킷을 의미합니까?
Nathaniel

아니요, 이것은 들어오는 데이터에 관한 것입니다 ... 소켓에 짧은 시간 초과가 설정된 상태에서 recvfrom을 호출하여 크롬이 자주 폴링을 수행한다고 생각합니다.이 경우 데이터가 없으면 반환 값 -1이 발생합니다. recvfrom에 대해서는 매뉴얼 페이지를 참조하십시오.
Harald Hanche-Olsen

6

방화벽

Little Snitch 또는 HandsOff를 사용할 수 있습니다 . 그것들은 훌륭한 방화벽이며 모두 "네트워크 모니터"기능을 가지고 있습니다.

Little Snitch 에는 모든 수신 및 발신 네트워크 트래픽에 대한 자세한 정보를 보여주는 네트워크 모니터가 포함되어 있습니다.
메뉴 표시 줄의 상태 아이콘은 현재 네트워크 활동에 대한 요약을 제공하며, 새로운 트래픽 이벤트의 경우보다 포괄적 인 정보가있는 모니터 창이 자동으로 나타납니다.

Hands Off 는 네트워크 및 디스크에 대한 응용 프로그램 액세스를 모니터링하고 제어하는 ​​응용 프로그램입니다. 정상적으로 눈에 띄지 않는 활동을 모니터링 할 수 있으면 개인 정보의 전송에 관한 정보에 근거한 결정을 내릴 수 있으므로 기밀 정보 유출을 피할 수 있습니다.

여기에 이미지 설명을 입력하십시오 여기에 이미지 설명을 입력하십시오

네트워크 모니터 : Little Snitch (왼쪽), HandsOff (오른쪽)

넷탑

무료로 제공되는 cli 솔루션 (안타깝게도 Snow Leopard에는 포함되지 않음)은 nettop이 됩니다. nettop은 프로그램 및 포트별로 트래픽을 그룹화하고 다양한 네트워크 통계를 측정합니다.

다른

트래픽을 캡처하고 측정하는 다른 프로그램 ( iftop , wireshark , tcpdump )은 거의 없지만 원래의 pid를 알지 못합니다. 연결하려면 netstat 을 사용해야합니다 .


감사! 나는 이상적으로 무료 솔루션을 찾고 있음을 나타 내기 위해 질문을 편집했습니다 (30 유로는 매우 가끔 사용하는 것에는 너무 많이 사용됩니다).하지만 할 수있는 무료 방법이 없다면 이 답변을 수락하겠습니다.
Nathaniel

미안 내 잘못이야. 무료 대안을 찾으려고 노력하고 답변을 업데이트하겠습니다.
mspasov

하아! nettop나에게 새로운 것이었다. 편리해 보입니다.
Harald Hanche-Olsen

가능하다면이 답변도 받아들입니다. Lion으로 업그레이드하면 nettop이 정말 편리해 보입니다.
Nathaniel

4
sudo fs_usage -f network

모든 응용 프로그램 및 프로세스에 의한 모든 네트워크 액세스를 제공합니다. 일반적으로 많은 트래픽을 생성하는 프로세스는 출력에서 ​​가장 자주 나타나는 프로세스입니다.


1
고마워, 이것은 정말 유용합니다. 이 질문에 대한 많은 도움이 된 답변에 깊은 감명을 받았습니다.
Nathaniel

1

"DTrace book"에는이를위한 스크립트 soconnect.d 가 있습니다.

"Mac OS X"버전을 복사하여 텍스트 파일에 붙여 넣은 다음을 사용하여 터미널에서 실행하십시오 sudo dtrace -s soconnect.d.


그러나 이것이 프로세스가받는 네트워크 트래픽의 양에 대한 개념을 제공하지는 않습니까? 내가 알 수있는 한 연결 만 추적합니다.
Harald Hanche-Olsen

1

활동 모니터에는 10.9 이후로 수신 및 전송 된 바이트에 대한 열이 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.