어떤 애플리케이션이 어떤 포트를 사용하고 있는지 어떻게 알 수 있나요?

어떤 애플리케이션이 어떤 포트를 사용하고 있는지 어떻게 알 수 있나요?

netstatMacBook에서 출력을 살펴보았습니다 . 일부 응용 프로그램에서는 사용할 포트를 지정할 수 있습니다. 예를 들어, utorrent그렇게 할 수 있습니다. 포트 55743을 선택하고 실행했는데 netstat | grep 55743결과는 다음과 같습니다.

udp6       0      0  *.55743                *.*
udp4       0      0  *.55743                *.*

종료하면 utorrent포트가 해제됩니다. 하지만 포트 번호를 모른다면 어떤 애플리케이션이 어떤 포트를 사용하고 있는지 어떻게 알 수 있습니까? 그리고 일부 애플리케이션이 비밀리에 포트를 사용하여 외부 서버 장치와 통신하는 것이 가능합니까?

답변1

David Houde가 언급했듯이 lsof -i친구가 현재 소켓 연결/작업에 대한 스냅샷을 제공합니다. 아쉽게도 OS X에서는 netstat이 기능을 지원하지 않습니다.

기타 옵션은 다음과 같습니다.

Activity Monitor.app응용 프로그램에서 열려 있는 파일과 포트를 볼 수 있습니다. 프로세스를 두 번 클릭하고 "파일 및 포트 열기" 탭을 열면 됩니다.

Dtrace - 확인해 보세요soconnect종료(control+c)할 때까지 네트워크 작업에 대한 지속적인 정보를 제공하는 스크립트입니다. 예제 출력:

sudo /tmp/soconnect.d 
PID    PROCESS          FAM ADDRESS          PORT   LAT(us) RESULT
8211   X-Lite           2   192.168.1.109    5060        25 Success
4112   Google Chrome    2   173.194.34.134   443         53 In progress
8211   X-Lite           2   192.168.1.109    5060        30 Success

제가 개인적으로 아주 좋아하는 응용 프로그램 중 하나는 little snitch이지만 상용 소프트웨어입니다. 이는 데스크톱 방화벽 소프트웨어이지만 사용자가 관심을 가질 수 있는 여러 가지 기능을 갖추고 있습니다.

  • 어떤 응용 프로그램이 어디에 연결되어 있는지 알려주는 네트워크 모니터(soconnect.d 출력과 유사한 방식)
  • 애플리케이션당 네트워크 트래픽을 캡처합니다(즉, Wireshark와 유사하며 네트워크 트래픽을 볼 수 있지만 특정 애플리케이션으로만 제한합니다).

두 번째 질문에 대답하자면, 그렇습니다. 기존 운영 체제(예: OS X, Windows)에서 응용 프로그램은 다양한 방법으로 타사 시스템에 연결하고 무엇이든 보낼 수 있습니다. 많은 데스크톱 방화벽은 각 애플리케이션이 연결할 수 있는 위치를 지정하여 일종의 화이트리스트를 제공함으로써 이 문제를 해결하려고 합니다. 보안의 다른 모든 것과 마찬가지로 이 접근 방식에도 함정이 없지는 않습니다.

추신. 저는 데스크탑 방화벽 소프트웨어 공급업체와 아무런 관련이 없습니다 :)

답변2

더 많은 netstat 인수를 사용하거나 lsof를 사용하여 이를 수행할 수 있습니다.

netstat -lp
lsof -i udp:55743

관련 정보