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.