netstat이란
network statistics의 약자
네트워크 접속, 라우팅 테이블, 네트워크 인터페이스의 통계 정보를 보여주는 도구
netstat 옵션
-a : 현재 다른 PC와 연결(Established)되어 있거나 대기(Listening) 중인 상태
-l (listen) : 연결 가능한 상태
-t (tcp) : tcp
-u (udp) : udp
-p : 프로그램 이름 / PID
-n (number port) : 포트 넘버
netstat field 정보
$ netstat -antplF
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN -
- Proto : 프로토콜 종류. TCP / UDP / RAW
- Recv-Q : 해당 process가 현재 받는 바이트 표기
- Send-Q : 해당 process가 현재 보내는 바이트 표기
- Local Address : 출발지 주소 및 포트
- Foreign Address : 목적지 주소 및 포트
- State : 포트의 상태 표기
netstat State
상태 |
내용 |
LISTEN |
연결 요구를 기다리는 상태. 포트가 열려있음 |
ESTABLISHED |
서로 연결되어 있는 상태 |
SVN_SENT |
클라이언트가 서버에 요구(SYN) 패킷을 보내고 연결을 요청한 상태 |
SVN_RECV |
서버가 클라이언트로부터 접속 요구(SYN)을 받아 클라이언트에게 응답(SYN/ACK)하였지만, 아직 클라이언트에게 확인 메시지(ACK)는 받지 못한 상태 |
FIN_WAIT1 |
클라이언트가 서버에게 연결을 끊고자 요청하는 상태 |
FIN_WAIT2 |
서버가 클라이언트로부터 연결 종료 응답을 기다리는 상태 (서버가 클라이언트로부터 최초로 FIN을 받은 후, 클라이언트에게 ACK를 주었을 때) |
TIME_WAIT |
이미 해당 사이트와 연결이 종료되었거나 다음 연결을 위해 기다리는 상태 |
CLOSE_WAIT |
원격의 연결을 요청을 받고 연결이 종료되길 기다리는 상태 |
LAST_ACK |
연결이 종료되었고 승인을 기다리는 상태 |
CLOSED |
완전히 연결이 종료된 상태 |
UNKNOWN |
소켓의 상테를 알 수 없음 |
자주 사용하는 옵션
- netstat -tnlp
- TCP Listening 상태의 포트와 해당 포트를 사용하는 PID
- netstat -napo
- 연결되었거나 기다리는 목록과 해당 포트를 사용하는 PID + 포트의 timer 정보