NETSTAT 이란?

네트워크 상태를 확인하는 명령어 입니다.
어떠한 포트가 열려 있고, 사용하는중인지 알 수 있습니다.

 

명령어의 종류

NETSTAT 

[-a] : 모든 연결 및 수신 대기 포트를 표시합니다.

[-b] : 각 열결 또는 수신 대기 포트 생성과 관련된 실행 파일을 표시합니다
	TCP/IP에 도달할 때까지 호출된 구성 요소가 표시합니다.
	[-b] 옵션은 시간이 오래 걸릴 수 있으며, 실행권한이 없으면 실패합니다.

[-e] : 이더넷 통계를 표시합니다.([-s] 옵션과 같이 사용 가능)

[-f] : 외부 주소의 FQDN(정규화된 도메인 이름)을 표시합니다.

[-n] : 주소 및 포트 번호를 숫자 형식으로 표시합니다.

[-o] : 각 연결의 소유자 프로세스ID를 표시합니다.

[-p proto] : proto로 지정한 프로토콜의 연결을 표시합니다.
	     proto는 TCP, UDP, TCPv6, UDPv6중 하나입니다.
	     [-s]과 같이 사용하여 프로토콜별 통계를 표시하면 
	     IP, IPv6, ICMP, ICMPv6, TCP, TCPv6, UDP 또는 UDPv6중 하나입니다.

[-r] :  라우팅 테이블을 표시합니다.

[-s] : 프로토콜별 통계를 표시합니다.
       기본적으로 IP, IPv6, ICMP, ICMPv6, TCP, TCPv6, UDP 및 UDPv6에 대한 통계를 표시합니다.
       [-p] 옵션을 사용하여 기본값의 일부 집합에 대한 통계만 지정할 수 있습니다.

[-t] : 현재 연결 오프로드 상태를 표시합니다.

[-x] : NetworkDirect 연결, 수신기 및 공유 끝점을 표시합니다.

[-y] : 모든 연결에 대한 TCP 연결 템플릿을 표시합니다.
	   다른 옵션과 함께 사용할 수 없습니다.

[interval] : 다음 화면으로 이동하기 전에 지정한 시간(초) 동안 선택한 통계를 다시 표시합니다.
			 통계 다시 표시를 중시하려면 [CTRL + C]를 누르면 됩니다.
			 이 값을 생략하면 현재 구성 정보가 한 번만 출력됩니다.

 

연결상태 종류

1. LISTENING : 포트가 열려 있으며, 연결 요구를 기다리는 상태.

2. ESTABLISHED : 서로 연결되어 있는 상태.

3. SVN_SENT : 클라이언트(Client)가 서버(Server)에 SYN 패킷을 보내고 연결을 요청한 상태

4. SVN_RECV : 서버가 클라이언트의 SYN패킷으로 요청을 받은 후 응답으로 SYN/ACK 패킷을 보내고 
클라이언트에게 ACK를 받기 위해 기다리는 상태

5. TIME_WAIT : 종료 요청을 한 후 Fin/Ack를 수신하고, 종료하기 위해 대기 중 상태.
(2MSL 후에 강제 종료)

6. CLOSED_WAIT : 종료 요청을 받은 후에 Ack를 송신하고, 종료하는 과정을 진행 중인 상태.
(종료 준비가 되면 LAST_ACK 상태로 전환)

7. LAST_ACK : 연결이 종료되었으며 결과를 기다리는 상태

8. CLOSED : 완전히 연결이 종료된 상태

 

자주 사용하는 형태

1. netstat -an

 

2. netstat -ano |findstr "포트번호 및 원하는단어"

 

3. netstat -e

[인터페이스의 패킷량과 에러, Collision등 확인할 수 있음]

 

4. netstat -p tcp

[tcp만 보여줌]

 

5. netstat -rn

[라우팅 테이블 출력]