macOS의 netstat 명령은 컴퓨터의 네트워크 통신에 대한 자세한 정보를 표시하는 터미널 명령입니다. 네트워크 통신에는 모든 포트 및 모든 응용 프로그램에서 Mac이 외부 세계와 대화하는 모든 방법이 포함됩니다. netstat 정복 컴퓨터의 연결과 그 이유를 이해하는 데 도움이 될 수 있습니다.
Netstat 실행
netstat 명령은 기본적으로 Mac에서 사용할 수 있습니다. 다운로드하거나 설치할 필요가 없습니다.
netstat를 실행하려면 다음 위치에서 터미널 창을여십시오. 어플리케이션 > 유틸리티 > 단말기. 유형 NETSTAT 키를 누릅니다 엔터 버튼 명령을 실행합니다.
wakila / 게티 이미지
엄청난 양의 텍스트가 화면에서 스크롤되기 시작합니다. 사용 가능한 플래그를 사용하지 않는 경우 (아래 참조), NETSTAT Mac의 모든 활성 네트워크 연결을보고합니다. 최신 네트워크 장치가 수행하는 기능의 수를 고려하면 목록이 길어질 것으로 예상 할 수 있습니다. 표준 보고서는 1000 줄 이상을 실행할 수 있습니다.
netstat의 출력을 필터링하는 것은 Mac의 활성 포트에서 일어나는 일을 이해하는 데 필수적입니다. 내장 플래그를 사용하면 옵션을 설정하여 명령의 범위를 제한 할 수 있습니다.
Netstat 플래그 및 옵션
netstat의 사용 가능한 옵션을 모두 보려면 다음을 입력하십시오. 남자 netstat 명령 프롬프트에서 netstat의 man 페이지를 표시합니다. netstat의 man 페이지의 온라인 버전을 볼 수도 있습니다.
"Man"은 "manual"의 줄임말입니다.
통사론
netstat에 플래그 및 옵션을 추가하려면 다음 구문을 사용하십시오.
netstat [-AabdgiLlmnqrRsSvWx] [-c queue] [-f address_family] [-I 인터페이스] [-p 프로토콜] [-w wait]
Netstat macOS에서는 Windows 및 Linux의 netstat와 동일한 방식으로 작동하지 않습니다. 이러한 netstat 구현의 플래그 또는 구문을 사용하면 예상 한 동작이 발생하지 않을 수 있습니다.
위의 속기가 완전히 이해할 수없는 것처럼 보이면 명령 구문을 읽는 방법을 배우십시오.
유용한 플래그
다음은 가장 일반적으로 사용되는 플래그입니다.
- -a 기본 출력에 포함되지 않은 netstat의 출력에 서버 포트를 포함합니다.
- -g 멀티 캐스트 연결과 관련된 정보를 표시합니다.
- -I interface는 지정된 인터페이스에 대한 패킷 데이터를 제공합니다. 사용 가능한 모든 인터페이스는 -i 깃발이지만 en0 일반적으로 기본 발신 네트워크 인터페이스입니다. (소문자에 유의하십시오.)
- -n 이름이있는 원격 주소의 레이블을 억제합니다. 이것은 제한된 정보만을 희생시키면서 netstat의 출력 속도를 크게 향상시킵니다.
- -p 프로토콜은 특정 네트워킹 프로토콜과 관련된 트래픽을 나열합니다. 전체 프로토콜 목록은 / etc / protocols,하지만 가장 중요한 것은 udp 와 TCP.
- -r 네트워크에서 패킷이 라우팅되는 방식을 보여주는 라우팅 테이블을 표시합니다.
- -s 활성 여부에 관계없이 모든 프로토콜에 대한 네트워크 통계를 표시합니다.
- -v 특히 각 열린 포트와 연관된 프로세스 ID (PID)를 표시하는 열을 추가하여 자세한 정보를 제공합니다.
Netstat 예
다음 예를 고려하십시오.
netstat -apv TCP
이 명령은 열린 포트 및 활성 포트를 포함하여 Mac의 TCP 연결 만 반환합니다. 또한 자세한 출력을 사용하여 각 연결과 관련된 PID를 나열합니다.
netstat -a | grep -i "듣기"
이 조합 NETSTAT 와 GREP 열린 포트 (메시지를 수신하는 포트)를 표시합니다. 파이프 캐릭터 | 한 명령의 출력을 다른 명령으로 보냅니다. 여기에서 NETSTAT 파이프 GREP, 키워드 "듣기"를 검색하고 결과를 찾을 수 있습니다.
네트워크 유틸리티를 통해 Netstat에 액세스
또한 다음 중 일부에 액세스 할 수 있습니다. 넷 스타트 네트워크 유틸리티 앱을 통해 체계 > 도서관 > 핵심 서비스 > 어플리케이션.
클릭 Netstat 탭을 클릭하여 그래픽 인터페이스에 액세스하십시오.
네트워크 유틸리티 내의 옵션은 명령 줄을 통해 사용할 수있는 옵션보다 훨씬 제한적입니다. XNUMX 개의 라디오 버튼 선택은 각각 사전 설정된 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의 man 페이지를 확인하거나 다음을 실행하십시오. 남자 lsof 터미널 프롬프트에서.
- -i 열려있는 모든 네트워크 연결과 연결을 사용하는 프로세스의 이름을 표시합니다. 추가 4에서와 같이 -i4, IPv4 연결 만 표시됩니다. 추가 6 대신 (-i6)는 IPv6 연결 만 표시합니다.
- 그리고, -i 플래그를 확장하여 추가 세부 정보를 지정할 수도 있습니다. -iTCP 또는 -iUDP는 TCP 및 UDP 연결 만 반환합니다. -iTCP : 25는 포트 25에서 TCP 연결 만 반환합니다. -iTCP : 25-50과 같이 대시로 포트 범위를 지정할 수 있습니다.
- [email protected]를 사용하면 IPv4 주소 1.2.3.4에 대한 연결 만 반환됩니다. IPv6 주소는 동일한 방식으로 지정할 수 있습니다. @ 전구체를 사용하여 같은 방식으로 호스트 이름을 지정할 수도 있지만 원격 IP 주소와 호스트 이름을 동시에 사용할 수는 없습니다.
- -s 일반적으로 lsof가 파일 크기를 표시하도록합니다. 하지만 -i 깃발, -s 다르게 작동합니다. 대신 사용자가 반환 할 명령에 대한 프로토콜 및 상태를 지정할 수 있습니다.
- -p lsof를 특정 프로세스 ID (PID)로 제한합니다. -p 123,456,789와 같은 공통을 사용하여 여러 PID를 설정할 수 있습니다. 프로세스 ID는 특히 PID 123을 제외하는 456, ^ 456과 같이 ^를 사용하여 제외 할 수 있습니다.
- -P 포트 번호를 포트 이름으로 변환하지 못하도록하여 출력 속도를 높입니다.
- -n 네트워크 번호를 호스트 이름으로 변환하지 않습니다. 함께 사용할 때 -P 위의 경우 lsof의 출력 속도를 크게 높일 수 있습니다.
- -u user는 명명 된 사용자가 소유 한 명령 만 반환합니다.
lsof 예
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가 있습니다.