본문 바로가기

Ubuntu/linux Command

Linux System Command (netstat) - network statistics

728x90

전송 제어 프로토콜, 라우팅 테이블, 수많은 네트워크 인터페이스(네트워크 인터페이스 컨트롤러 또는 소프트웨어 정의 네트워크 인터페이스), 네트워크 프로토콜 통계를 위한 네트워크 연결을 보여주는 명령 줄 도구이다. 네트워크의 문제를 찾아내고 성능 측정으로서 네트워크 상의 트래픽의 양을 결정하기 위해 사용된다. 최근에 배포된 linux 에서는 netstat 대신 ss (socket statistic) 을 사용하라고 권고하고 있다.

note) window 10 의 WSL 에 설치한 ubuntu 20.04.00 에서는 명령어가 동작하지 않았다.

netstat -a -n | grep LISTEN  : windows 10 

 

option

 

옵션 설명
-a 현재다른PC와 연결(Established)되어 있거나 대기(Listening)중인 모든 포트 번호를 확인 (--all)
-c 현재상테의 명령을 초마다 실행 (--continuous)
-e 확장된 정보 표시 (--extend)
-g 멀티캐스트에 대한 group 별 정보 출력 (--group)
-i  인터페이스별 통계값 출력 (-interfaces)
-L 대기중인 네트워크 (-Listning)
-n 현재 다른PC와 연결되어 있는 주소,포트번호를 확인 (--numeric)
-p PID 와 사용중인 프로그램 출력 (--program)
-r 라우팅 테이블 확인 및 커넥션되어 있는 포트번호를 확인  (--route)
-s IP, ICMP, UDP프로토콜별의 통계 정보 (--statistic)

 

용례1 : netstat -at

 TCP 만 출력하기. (t 는 TCP 를 의미함, a 는 모든 port 번호)

 

  - Proto : 프로토콜 종류. TCP / UDP / RAW

  - Recv-Q : 해당 process가 현재 받는 바이트 표기

  - Send-Q : 해당 process가 현재 보내는 바이트 표기

  - Local Address : 출발지 주소 및 포트. 자신의 주소 및 포트

  - Foreign Address : 목적지 주소 및 포트

  - State : 포트의 상태 표기.

    => CLOSED

    => CLOSED_WAIT

    => CLOSING

    => ESTABLISHED : 연결 완료

    => FIN_WAIT1

    => FIN_WAIT2

    => LAST_ACK

    => LISTEN :  대기 포트. 포트 open

    => SYN_RECV

    => SYN_SENT

    => TIME_WAIT 

    => UNKNOWN

 

Local Address column은 현재 열려있거나 혹은 리스닝하고있는 ip, port를 나타낸다. 만약 해당 ip가 0.0.0.0이라면 all interface를 받는 다는 뜻이며 모든 ip에 대해서 열려있다는 뜻이다. 반대로 127.0.0.1 or localhost로 되어있다면 loopback이라는 뜻으로 자기자신만 호출가능한 상태를 의미한다.

 

용례2 : netstat -au

UDP 만 출력하기. (u는 UDT를 의미함)

 

 

용례3 : netstat -antup

  listening 소켓 정보 상세 보기

 

 

용례4 : netstat -nr

  현재 시스템의 커널 라우팅 정보

 

 

occupied port 정보

sudo ss -lntu  // 사용하는 port 정보를 나타낸다.

sudo netstat -lntp

netstat -tulpen   // port usage 정보를 알수 있다.