본문 바로가기
IT노트/Windows 10

[Windows 10] netstat 명령으로 네트워크 상태 확인 하는 방법

by OHNOTE 2024. 4. 12.

netstat 명령

컴퓨터를 사용하다 보면 어떤 아이피가 어떤 포트를 사용하는지, 통신이 잘되고 있는지 등 확인이 필요할 때가 있습니다. 이럴 때 유용하게 쓸 수 있는 netstat(Network Statistics) 명령어를 공유드립니다.

목차

반응형

netstat 이란?

netstat(Network Statistics)은 라우팅 테이블, 통계 정보, 전송 제어 프로토콜, 네트워크 상태를 확인할 수 있는 CMD 명령입니다.

netstat 사용법

netstat [옵션]

netstat 상태정보

LISTEN:  서버의 데몬이 떠 있어서 클라이언트의 접속 요청을 기다리고 있는 상태
CLOSED : 완전히 연결이 종료된 상태
CLOSING : 흔하지 않으나 주로 확인 메시지가 전송 도중 유실된 상태
CLOSE_WAIT TCP : 연결이 상위 응용프로그램 레벨로부터 연결 종료를 기다리는 상태
ESTABLISHED : 서버와 클라이언트 간에 세션 연결이 되어 통신되는 상태
SYN_SENT : 클라이언트가 서버에게 연결을 요청한 상태
SYN_RECEIVED : 서버가 클라이언트로부터 접속 요구(SYN)를 받아 클라이언트에게 응답(SYN/ACK)                              하였지만, 아직 클라이언트에게 확인 메시지(ACK)는 받지 못한 상태
TIME_WAIT : 연결은 종결되었지만 당분간 소켓을 열어 놓은 상태, 약 1분 정도이며 시간이 지나면 사라짐
UNKNOWN  : 소켓의 상태를 알 수 없음
FIN_WAIT1 : 클라이언트가 서버에게 연결을 끊고자 요청하는 상태
FIN_WAIT2 : 서버가 클라이언트로부터 연결 종료 응답을 기다리는 상태
LAST_ACK : 호스트가 원격지 호스트의 연결 종료 요구 승인을 기다리는 상태

netstat 사용예시

이글에서는 자주 사용할법한 몇 가지만 테스트해 보았습니다.
1. netstat -ano :  현재 모든 네트워크 연결 상태 확인
* -an을 많이 사용하지만 -ano 옵션으로 PID까지 확인 을 하면 어떤 프로세스가 어떤 포트를 사용 중인지 파악하기 좋습니다.

* netstat -ano 명령은 일반적으로 특정 포트를 찾고 상태를 확인할 때 자주 사용 합니다.
특정 포트를 찾을 때는  netstat -ano | findstr 포트번호 명령을 사용해서 많은 리스트 중 찾는 포트를 쉽게 찾을 수 있습니다.

2. netstat -p tcp, netstat -p udp : TCP, UDP를 사용하는 연결을 확인할 수 있습니다.

netstat 명령어 옵션

-a            모든 연결 및 수신 대기 포트를 표시합니다.
-b            각 연결 또는 수신 대기 포트 생성과 관련된 실행 파일을 표시합니다.
               잘 알려진 실행 파일이 여러 독립 구성 요소를 호스팅할 경우 연결 또는 수신 대기 포트 생성과 관련된
               구성 요소의 시퀀스가 표시됩니다. 이러한 경우에는 실행 파일 이름이 아래 [] 안에 표시되고 위에는 
               TCP/IP에 도달할 때까지 호출된 구성 요소가 표시됩니다. 이 옵션은 시간이 오래 걸릴 수 있으며
               사용 권한이 없으면 실패합니다.
-e           이더넷 통계를 표시합니다. 이 옵션은 -s 옵션과 함께 사용할 수 있습니다.
-f            외부 주소의 FQDN(정규화된 도메인 이름)을 표시합니다.
-n            주소 및 포트 번호를 숫자 형식으로 표시합니다.
-o            각 연결의 소유자 프로세스 ID를 표시합니다.
-p proto   proto로 지정한 프로토콜의 연결을 표시합니다.
               proto는 TCP, UDP, TCPv6 또는 UDPv6 중 하나입니다. -s 옵션과 함께 사용하여 프로토콜별 통계를
              표시할 경우 proto는 IP, IPv6, ICMP, ICMPv6, TCP, TCPv6, UDP 또는 UDPv6 중 하나입니다.
-q           모든 연결, 수신 대기 포트 및 바인딩된 비수신 대기 TCP포트를 표시합니다.
              바인딩된 비수신 대기 포트는 활성 연결과 연결되거나 연결되지 않을 수도 있습니다.
-r            라우팅 테이블을 표시합니다.
-s           프로토콜별 통계를 표시합니다. 기본적으로 IP, IPv6, ICMP,ICMPv6, TCP, TCPv6, UDP 및 UDPv6에 대한
              통계를 표시합니다.
              -p 옵션을 사용하여 기본값의 일부 집합에 대한 통계만 지정할 수 있습니다.
-t            현재 연결 오프로드 상태를 표시합니다.
-x            NetworkDirect 연결, 수신기 및 공유 끝점을 표시합니다.
-y            모든 연결에 대한 TCP 연결 템플릿을 표시합니다.
               다른 옵션과 함께 사용할 수 없습니다.

마무리

netstat 명령어는 일반적으로 가정보다는 회사에서 많이 사용되고 있을 듯합니다. 사용 중인 PC나 서버에서 방화벽이 막혀 통신이 안될 때 또는 특정 포트를 사용 중인 프로세스를 찾아야 할 때 netstat 명령어를 사용하여 확인해보시길 바랍니다.