Skip to main content

Mac에서 Netstat 명령을 사용하는 방법

시놀로지 나스로 웹사이트 운영하기 - ssh 접속 | 맥 & 윈도우 환경에서 접속 방법 | 자주쓰는 터미널 명령어 4가지 (할 수있다 2024)

시놀로지 나스로 웹사이트 운영하기 - ssh 접속 | 맥 & 윈도우 환경에서 접속 방법 | 자주쓰는 터미널 명령어 4가지 (할 수있다 2024)
Anonim

macOS의 netstat 명령은 Mac의 네트워크 통신에 대한 자세한 정보를 표시하는 데 사용되는 터미널 명령입니다. 네트워크 통신은 Mac이 모든 포트 및 모든 애플리케이션에서 외부 세계와 대화하는 모든 방식을 포함합니다. netstat을 마스터 한 후 Mac 사용자는 컴퓨터가 어떤 연결을 만들고 있는지, 왜 그 연결이되는지 빨리 이해할 수 있습니다.

Netstat 실행

netstat 명령은 기본적으로 Mac에서 사용할 수 있습니다. 다운로드하거나 설치할 필요가 없습니다.

netstat를 실행하려면 터미널 창을 엽니 다. 터미널에 익숙하지 않다면 /Applications/Utilities/Terminal.app에 있습니다. 유형 netstat Enter를 눌러 명령을 실행하십시오.

엄청난 양의 숨겨진 텍스트가 화면에서 스크롤되기 시작할 것입니다. 이는 정상적이고 예상됩니다. 추가 옵션이 없으면 netstat은 Mac의 모든 활성 네트워크 연결을보고합니다. 현대 네트워크 장치가 수행하는 기능의 수를 고려하면 목록이 길어질 것으로 기대할 수 있습니다. 표준 netstat 보고서는 1000 개가 넘는 라인에서 잘 실행됩니다.

netstat의 출력을 필터링하는 것은 Mac의 활성 포트에서 일어나는 일을 이해하는 데 필수적입니다. netstat의 출력을 내장 플래그로 필터링 할 수 있습니다. 이 플래그를 사용하여 옵션을 설정하고 netstat의 범위와 출력을 제한 할 수 있습니다.

Netstat 플래그 및 옵션

netstat의 사용 가능한 모든 옵션을 보려면 명령 프롬프트에서 man netstat을 입력하십시오. 그러면 netstat의 man 페이지가 나타납니다. netstat 매뉴얼 페이지의 온라인 버전을 볼 수도 있습니다.

netstat -AabdgiLlmnqrRsSvWx -기음 -에프 주소 _ 가족 -나는 인터페이스 -피 실험 계획안 -w 기다림

macOS의 Netstat은 Windows의 netstat 또는 Linux의 netstat와 같은 방식으로 작동하지 않습니다. netstat의 구현에서 플래그 또는 구문을 사용하면 예상되는 동작이 수행되지 않을 수 있습니다.

: 위의 속기가 완전히 이해할 수없는 것처럼 보이면 명령 구문을 읽는 법을 배웁니다.

-아르 자형 패킷이 네트워크를 통해 라우팅되는 방법을 보여주는 라우팅 테이블을 표시합니다.

-피 실험 계획안 특정 네트워킹 프로토콜과 관련된 트래픽을 나열합니다. 프로토콜의 전체 목록은 / etc / protocols에서 찾을 수 있지만 더 중요한 프로토콜은 udp 및 tcp입니다.

-V 특히 열려있는 각 포트와 연관된 프로세스 ID (PID)를 나타내는 열을 추가하여 자세한 정보를 표시합니다.

-나는 인터페이스 지정된 인터페이스에 대한 패킷 데이터를 제공합니다. 사용 가능한 모든 인터페이스는 -i 플래그로 볼 수 있지만 일반적으로 en0는 기본 나가는 네트워크 인터페이스입니다. 소문자에 유의하십시오.

-지 멀티 캐스트 연결과 관련된 정보를 표시합니다.

-에스 활성 상태인지 여부에 관계없이 모든 프로토콜에 대한 네트워크 통계를 보여줍니다.

-엔 이름이있는 원격 주소의 레이블을 표시하지 않습니다. 이것은 극적으로 제한된 정보 만 희생하면서 netstat의 출력 속도를 극대화합니다.

-에이 netstat의 출력에 서버 포트가 포함되어 있으며 기본 출력에는 포함되지 않습니다.

Netstat 예제

이해를 돕기 위해 몇 가지 netstat 예제를 살펴 보겠습니다.

netstat -apv TCP

이 명령은 열린 포트 및 활성 포트를 포함하여 Mac에서 TCP 연결 만 반환합니다. 또한 각 연결과 관련된 PID를 나열하는 자세한 출력을 사용합니다.

netstat -a | grep -i "listen"

netstat와 grep의 조합은 Mac에서 열린 포트를 나타낼 것입니다. 열린 포트는 메시지를 수신하는 포트입니다. 구문에 익숙하지 않은 경우 파이프 문자 | 한 명령의 출력을 다른 명령으로 보내는 데 사용됩니다. 우리는 grest에 netstat의 출력을 파이프함으로써 키워드 "listen"을 검색하고 결과를 찾을 수 있습니다.

네트워크 유틸리티를 통해 netstat에 액세스하기

터미널 명령 행 인터페이스를 통한 완전한 기능 외에도 netstat의 기능 중 일부는 Network Utility 응용 프로그램을 통해 액세스 할 수도 있습니다. 이 내장 macOS 응용 프로그램은 / Applications / Utilities / Network Utility.app에서 찾을 수 있습니다. 앱을 열고 다음을 클릭합니다. Netstat 탭을 사용하여 netstat의 그래픽 인터페이스에 액세스하십시오.

네트워크 유틸리티의 옵션은 명령 줄을 통해 사용 가능한 것보다 훨씬 명확합니다. 네 개의 라디오 버튼 선택은 미리 설정된 netstat 명령을 실행하고 출력을 아래 화면에 표시합니다.

각 라디오 버튼에 대한 netstat 명령은 다음과 같습니다.

  • 라우팅 테이블 정보 표시 netstat -r을 실행합니다.
  • 각 프로토콜에 대한 포괄적 인 네트워크 통계 표시 netstat -s를 실행합니다.
  • 멀티 캐스트 정보 표시 netstat -g를 실행합니다.
  • 모든 현재 소켓 연결의 상태를 표시합니다. netstat을 실행합니다.

lsof로 netstat 보충하기

사실, netstat의 macOS 구현에는 사용자가 기대하고 필요로하는 많은 기능이 포함되어 있지 않습니다. 그것이 사용하는 동안, netstat은 Windows와 마찬가지로 macOS에서 유용하지 않습니다. 다른 명령 인 lsof는 누락 된 기능의 상당 부분을 대체 할 수 있습니다.

lsof는 현재 모든 응용 프로그램에서 열려있는 파일을 표시합니다. 또한 앱과 연결된 열린 포트를 검사하는데도 사용할 수 있습니다. lsof -i를 실행하면 인터넷을 통해 통신하는 모든 응용 프로그램 목록이 표시됩니다. 이는 일반적으로 Windows 시스템에서 netstat을 사용할 때의 목표입니다. 그러나 macOS에서이 작업을 수행하는 유일한 의미있는 방법은 netstat가 아니라 lsof를 사용하는 것입니다.

열려있는 모든 파일 또는 인터넷 연결을 표시하는 것은 종종 압도적으로 장황합니다.이것이 lsof가 특정 기준으로 결과를 제한하기위한 여러 가지 플래그와 함께 제공되는 이유입니다. 명령의 유틸리티를 확장하는 유용한 플래그가 많이 있습니다. 가장 중요한 것들은 아래와 같습니다. 더 많은 플래그와 각 플래그의 구현에 대한 기술적 설명을 포함한 추가 정보는 lsof의 매뉴얼 페이지를 확인하거나 실행하십시오. 남자 lsof 터미널 프롬프트에서.

lsof 플래그 및 옵션

-나는 열려있는 모든 네트워크 연결과 연결을 사용하고있는 프로세스의 이름을 표시합니다. 다음과 같이 4를 추가합니다. -i4는 IPv4 연결 만 표시합니다. 대신 6 추가 (-i6)는 IPv6 연결 만 표시합니다.

그만큼 -나는 플래그를 확장하여 세부 사항을 더 지정할 수도 있습니다. -iTCP 또는 -iUDP는 TCP 및 UDP 연결 만 반환합니다. -iTCP : 25는 포트 25에서 TCP 연결 만 리턴합니다. 포트 범위는 -iTCP : 25-50과 같이 대시로 지정할 수 있습니다.

[email protected]를 사용하면 IPv4 주소 1.2.3.4에 대한 연결 만 반환됩니다. IPv6 주소는 동일한 방식으로 지정할 수 있습니다. @ 선구자는 같은 방식으로 호스트 이름을 지정하는 데 사용할 수도 있지만 원격 IP 주소와 호스트 이름을 동시에 사용할 수는 없습니다.

-에스 일반적으로 lsof가 파일 크기를 표시하게합니다. 그러나 -나는 깃발, -에스 다르게 작동합니다. 대신 사용자가 반환 할 명령의 프로토콜과 상태를 지정할 수 있습니다.

-피 lsof를 특정 프로세스 ID (PID)로 제한합니다. 여러 PID는 -p 123,456,789와 같은 공유를 사용하여 설정할 수 있습니다. 프로세스 ID는 123, ^ 456과 같이 ^를 사용하여 제외 할 수도 있습니다. 이는 PID 456을 제외합니다.

-피 포트 번호를 포트 이름으로 변환 할 수 없으므로 출력 속도가 빨라집니다.

-엔 네트워크 번호를 호스트 이름으로 변환 할 수 없게합니다. 와 함께 사용할 때 -피 lsof의 출력 속도를 크게 높일 수 있습니다.

- 사용자 명명 된 사용자가 소유 한 명령 만 반환합니다.

예시

netstat처럼 lsof의 몇 가지 예제를 보면 우리의 이해를 실천하는 데 도움이됩니다.

lsof -nP [email protected] : 513

이 복잡한 명령은 호스트 이름이있는 모든 TCP 연결을 나열합니다 lsof.itap 와 항구 513. IP 주소와 포트에 이름을 연결하지 않고도 lsof를 실행하므로 명령이 눈에 띄게 빨리 실행됩니다.

lsof -iTCP -sTCP : LISTEN

그러면 모든 TCP 연결이 상태와 함께 반환됩니다. 들리다. 이렇게하면 Mac의 모든 열린 TCP 포트가 나타납니다. 또한 열린 포트와 관련된 프로세스를 나열합니다. 이것은 netstat보다 중요한 업그레이드이며, PID는 대부분 나열됩니다.

sudo lsof -i -u ^ $ (whoami)

모든 연결을 반환합니다. 아니 현재 로그인 한 사용자가 소유하고 있습니다. 이 명령은 다른 명령과 약간 다르므로 자세히 설명하겠습니다.

캐럿 ^은 부정에 사용됩니다. 캐럿 이후의 텍스트와 일치하는 항목은 결과에서 제거됩니다. 우리는 현재 로그인 한 사용자의 이름을 Whoami lsof 명령 내에서 $() lsof가 텍스트로 출력에 액세스하도록합니다. sudo로 실행하면 자신이 소유하지 않은 작업을 볼 수 있습니다. sudo없이이 명령을 실행하면 빈 목록이 리턴됩니다.

기타 네트워킹 명령

네트워크 검사에 관심이있는 다른 터미널 네트워킹 명령에는 arp, ping 및 ipconfig가 있습니다.