netstat를 사용하여 포트에서 수신중인 프로세스를 표시하는 방법


27

OS X Mountain Lion 랩톱에 있고 몇 개의 Vagrant 상자가 있습니다. 어떤 프로세스가 포트 8080에서 수신 대기 중인지 알아 내려고 노력 중입니다. 내 변형은 백 라인처럼 생성되지만 특정 포트 번호는 없습니다. 나는 다음과 같은 것을 가정하고있다 :

netstat -XXX | grep 8080

가정 환경이나 전문가 환경에 있습니까?
루카스 카우프만

글쎄, 서버 환경을 로컬로 재생성. 다른 사이트로 이동하려면 괜찮습니다. netstat의 다른 버전은 다른 인수를 지원합니다.
timpone

좋아, 선생님, 모든 것이 여기에 순서대로 보입니다. 계속하고 즐거운 하루를 보내십시오.
루카스 카우프만

답변:


52

불행히도 OSX에서는 BSD가 붙어있어 netstat주어진 포트에 연결된 프로세스 ID를 보여주지 않습니다. 대신해야 할 일은 use lsof입니다. 사용해야 할 구문은 다음과 같습니다.

lsof -i :8080

이것은 당신이 신경 쓰지 않는 정보의 덩어리를 인쇄하지만 필드에는 레이블이 잘 지정되어 있습니다. 예를 들어이 예제 출력을 확인하십시오.

lsof -i :53237
COMMAND   PID  USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
GoogleTal 927 guest   29u  IPv4 0x2c3f7f95244855c3      0t0  TCP localhost:53237 (LISTEN)

이것은 프로세스 ID 927에서 포트 53237을 사용하고 있음을 알려줍니다. COMMAND 필드를 읽을 때이 출력이 잘린다는 사실을 기억하십시오. 실제로 바이너리의 전체 이름은 GoogleTalkPlugin입니다.


thx, 이것은 나에게 훨씬 더 가까워지고, 상당히 일반적인 것입니다 VBoxHeadl-어떤 VirtualBox 인스턴스 (지금 두 개가 있는지)를 볼 수있는 방법이 있습니까? 아니면 너무 많이 묻습니다 (후자). thx
timpone 2

@ timpone : VirtualBox에 대해 충분히 알지 못해 그 길을 밟을 수 없습니다. 프로세스 명령 행을 확인하여 해당 lsof -p PID파일 이 나열되어 있는지 확인하거나 열려있는 파일 목록을 찾을 때까지 사용 하고 찾아 볼 수 있습니다.
Scott Pack

멋진 도움을 들으
timpone

8

이것이 청취 포트의 PID를 찾을 때 사용하고 싶은 것입니다. Linux 용 :netstat -tunlp

  • 네트워크
  • l 청취 포트
  • p 과정
  • t tcp
  • UUDP

추가 정보는 매뉴얼 페이지에서 찾을 수 있습니다.


-p프로그램에 대한 인수를 나열하지 않습니다. 이걸 어떻게 봅니까?
jameshfisher

4
OP는 OSX에 대해 물었습니다. -p는 netstat의 OSX 버전에서 옵션이 아닙니다.
Ted Bigham

-pOSX에서는입니다 port. OSX와 Linux에 대해 다른 주장을하려는 개발자의 결정이 싫습니다 ...
Daniel W.

5

나는 netstat이 기능을 제공하기 위해 OS X에서 수정하는 과정에 있었고 -v소켓과 관련된 pid를 제공 한다는 사실에 우연히 발견되었습니다 .


-v상세 레벨 이 증가하고 문서화됩니다. developer.apple.com/library/mac/documentation/Darwin/Reference/...
Leathe

1
죄송하지만 PID를 인쇄한다는 사실은 문서화되어 있지 않으며 옵션이 존재하지 않는다는 것을 의미했습니다.
Sean Hamilton

4

나에게 다음 두 줄은 청취 포트가 열려있는 앱을 표시하는 데 가장 효과적이며 lsof는 완전히 크로스 플랫폼입니다.

netstat -Watn | grep LISTEN
lsof -Pnl +M -i -cmd | grep LISTEN

1

netstat 명령 아래에서 특정 포트 사용을 찾으려면

  netstat -an | grep ':8080'

3
OP는 프로세스 받기에 대해 물었습니다. 프로세스 ID는 표시되지 않습니다.
Ted Bigham

1

남자 netstat에서

-p, --program 각 소켓이 속하는 프로그램의 PID 및 이름을 표시합니다.

나는 보통 이것을한다 : netstat -antup | 그렙 8080


흠 ...이 내가 좋아했던 것과 같은 소리 그러나 이것은 -p 나에게 OS X에서 다른 옵션을주고있다-p protocol Show statistics about protocol, which is either a well-known name
timpone

@timpone : -pPID를 표시하는 것은 GNU netstat 명령이고 OSX는 BSD netstat를 사용합니다.
Scott Pack

-p프로그램에 대한 인수를 나열하지 않습니다. 이걸 어떻게 봅니까?
jameshfisher

1
OP는 OSX에 대해 물었습니다. -p는 netstat의 OSX 버전에서 옵션이 아닙니다.
Ted Bigham

-pOSX에서는입니다 port. OSX와 Linux에 대해 다른 주장을하려는 개발자의 결정이 싫습니다 ...
Daniel W.

0

아래 명령은 연결을 보여줍니다.

netstat -antop | grep :8080

전체 흐름을 실시간으로 보려면 다음을 사용할 수 있습니다 watch.

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