[Linux] netstat 명령어 옵션 및 주요 사용법

2024. 1. 26. 14:33IT 공부/배경지식

netstat

- 전송 제어 프로토콜, 라우팅 테이블, 네트워크 인터페이스 (NIC), 네트워크 프로토콜 통계를 위한 네트워크 연결을 보여주는 명령줄 도구

- OS X, 리눅스, 솔라리스, BSD를 포함한 유닉스 계열 운영 체제와 윈도우 XP, 윈도우 비스타, 윈도우7, 윈도우 9, 윈도우 10을 포함한 윈도우 NT 기반 운영 체제에서 이용 가능

 

참고 : https://ko.wikipedia.org/wiki/Netstat

 

옵션

-r : 라우팅 테이블 확인

-I (대문자) 또는 -i : 이더넷 카드별 정상/에러/드랍 송수신 패킷 수 확인

-g : 멀티캐스트(multicast) 그룹 표시

-s (소문자) : 프로토콜별 네트워크 통계 표시 (IP, ICMP, TCP, UDP)

-n : 포트 번호 표시 (옵션 없을 경우 호스트명, 포트명으로 표시됨)

-p : 프로그램 PID, 프로그램 이름 표시

-l : 연결 가능한 상태(listening)만 표시

-t : TCP

-u : UDP

-c : 1초마다 표시

 

주로 사용하는 옵션

netstat -nlptu

▶ 현재 TCP, UDP로 열려있는 포트와 프로그램 이름을 표시

 

TCP 소켓 상태값

CLOSED : 연결이 종료된 상태. 

CLOSED_WAIT : 연결 종료를 기다리는 상태

CLOSING : 확인 메세지가 전송 도중 유실된 상태

ESTABLISHED : 서버-클라이언트 간 셔션 연결이 성립되어 통신이 가능한 상태

FIN_WAIT1 : 클라이언트가 FIN 신호를 보내고 연결을 끊는 요청을 한 상태

FIN_WAIT2 : 클라이언트가 FIN 신호에 대한 서버의 ACK 응답을 받고 연결 종료 응답을 기다리는 상태

LAST_ACK : 서버가 FIN 응답을 보내고 클라이언트의 ACK 신호를 기다리는 상태

LISTEN : 서버에 데몬이 실행 중이며 클라이언트의 접속을 기다리는 상태

SYN_RECV : 서버가 클라이언트로부터 접속요청(SYN)을 받고 응답(SYN/ACK)한 뒤, 클라이언트의 확인 메세지 (ACK)는 받지 못한 상태

SYN_SENT : 클라이언트가 서버에게 접속요청(SYN)을 보낸 상태

TIME_WAIT : 클라이언트에서 연결 종료 후 지연되서 도착하는 메세지를 수신하기 위해 잠시 소켓을 열어둔 상태

UNKNOWN : 소켓 상태 알 수 없음

 

서버의 대기 소켓 상태

CLOSEDLISTEN 

 

서버의 대기 소켓이 LISTEN 상태일 때 신규 생성되는 소켓

클라이언트의 SYN 신호 수신(접속요청) → SYN_RECV → 클라이언트에게 SYN/ACK 신호 응답 → 클라이언트로부터 ACK 신호 수신 → ESTABLISHED → FIN 신호 수신 → ACK 신호 응답 → CLOSE_WAIT → closesocket 함수 호출 → 클라이언트에게 FIN 신호 전송 → LASK_ACK → 클라이언트의 ACK 신호 수신 → CLOSED

 

클라이언트의 소켓 상태

CLOSED → 서버에 SYN 신호 전송 → SYN_SENT → 서버로부터 SYN/ACK 신호를 받고 ACK 신호 전송 → ESTABLISHED → closesocket 함수 호출 → FIN 신호 전송 → FIN_WAIT1 →  서버의 ACK 신호 수신 → FIN_WAIT2 → 서버의 FIN 신호 수신 → ACK 신호 응답 → TIME_WAIT → 2MSL 이후 CLOSED

 

※ MSL (Maximum Segment Lifetime) : IP datagram이 네트워크에 존재할 수 있는 시간으로 30초~2분으로 정해진다. 

 



참고 :

https://study-melody.tistory.com/39

https://blog.skills.kro.kr/9

https://blog.voidmainvoid.net/201

https://cafe24.zendesk.com/hc/ko/articles/9801441063449-LINUX-netstat-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%83%81%EC%84%B8-%EC%84%A4%EB%AA%85

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=senrjql44&logNo=40052293245

https://lazymankook.tistory.com/6

반응형

'IT 공부 > 배경지식' 카테고리의 다른 글

[Linux] RHEL8 RSA 변경점  (0) 2022.09.25
Wips / 무선침입방지시스템  (0) 2022.09.09