개발/network

[netstat] 네트워크 상태 확인 (window 10)

smile-haha 2022. 12. 22. 01:26
반응형

프로토콜 통계와 현재 TCP/IP 네트워크 연결을 표시

 

🎈사용 방법

netstat [option] [| find "텍스트"]

 

💡자주 사용할 것 같은 옵션

netstat -nao | find "LISTEN" // LISTEN 상태인 연결 표시

netstat -nao | find "[ip]:[port]" // 특정 ip에 특정 port 연결 상태 표시

 

🎈option

-a 모든 연결 및 수신 대기 포트를 표시합니다.
-b 각 연결 또는 수신 대기 포트 생성과 관련된 실행 파일을 표시합니다.

잘 알려진 실행 파일이 여러 독립 구성 요소를 호스팅할 경우 연결 또는 수신 대기 포트 생성과 관련된구성 요소의 시퀀스가 표시됩니다.
이러한 경우에는 실행 파일 이름이 아래 [] 안에 표시되고 위에는 TCP/IP에 도달할 때까지 호출된 구성 요소가 표시됩니다. 이 옵션은 시간이 오래 걸릴 수 있으며 사용 권한이 없으면 실패합니다.
-e 이더넷 통계를 표시합니다.

이 옵션은 -s 옵션과 함께 사용할 수 있습니다.
-f 외부 주소의 FQDN(정규화된 도메인 이름)을 표시합니다.
※-n 옵션이랑 사용 x
-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 연결 템플릿을 표시합니다.
다른 옵션과 함께 사용할 수 없습니다.
interval 다음 화면으로 이동하기 전에 지정한 시간(초) 동안 선택한 통계를 다시 표시합니다.
통계 다시 표시를 중지하려면 <Ctrl+C>를 누르세요.
이 값을 생략하면 현재 구성 정보가 한 번만 출력됩니다.

 

🎈netstat 상태 값

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

💡0.0.0.0과  ::의 의미

모든 local address를 받을 수 있다는 의미, any의 표기 법

 - 0.0.0.0은 IPv4에서의 any의 의미

 - ::은 IPv6에서의 any의 의미

 

여기서 상태값을 이해하기 위해서는 서버-클라이언트간 세션 연결/종료를 위한 절차 TCP 3 way - handshaking과 TCP 4 way - handshaking을 알아야 한다. 해당 내용은 아래 게시글로 분리한다.

https://smile-haha.tistory.com/44

 

[TCP] TCP 세션 연결/해제 과정(TCP 3/4-way handshaking)

🎈TCP 3-way handshaking TCP/IP프로토콜을 이용해서 통신을 하는 응용프로그램이 데이터를 전송하기 전에 먼저 정확한 전송을 보장하기 위해 상대방 컴퓨터와 사전에 세션을 수립하는 과정. TCP의 연

smile-haha.tistory.com

 

 

반응형