본문 바로가기

Linux

[리눅스 네트워크 관련 명령어]netstat

반응형

💡netstat

network statistics로 다양한 네트워크 설정 사항이나 네트워크 인터페이스나 프로토콜 상에서의 통계 정보를 확인하는 데 사용된다.

네트워크 상의 문제점을 파악할 때 사용할 수 있다.

 

 

옵션

  • -a(-all): 모든 소켓들에 대한 정보
  • -r(--route): 라우팅 테이블 출력
  • -n(--numeric): 주소를 호스트명(도메인) 아닌 숫자(ip)로 출력
  • -l(--listening): 연결 가능한 상태의 대기중인 네트워크 정보
  • -t(--tcp): TCP만 출력
  • -u(--udp): UDP만 출력
  • -p(--programs): PID와 사용중인 프로그램 이름 출력
  • -i(--interfaces): 인터페이스 테이블 출력
  • -s(--statistics): 네트워킹 통계 정보 출력

 

상태 정보

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

💡사용

 

특정 프로토콜 관련 정보만 출력하기

# TCP 정보만 모두 확인하기
netstat -at


# UDP 정보만 모두 확인하기
netstat -au

 

netstat -at 실행 결과
netstat -au 실행 결과

 

  • Proto: 사용하는 프로토콜
  • Recv - Q: 받는 패킷의 Socket buffer size
  • Send - Q: 보내는 패킷의 Socket buffer size
  • Local Address: 내 주소(0.0.0.0: port number -> 해당 포트는 모든 ip로부터 수신 가능)
  • Foreign Address: 목적지 주소
  • State: 상태 정보
  • (-p 옵션 적용 시)PID: PID와 사용중인 프로그램 이름

 

 

n 옵션을 붙이는 것과 안 붙이는 것의 차이?

netstat -at

netstat -nat

 

-at 옵션을 준 경우와 -nat 옵션을 준 경우

 

n 옵션을 추가하면, 도메인 이름이 IP 주소로 변경되고, 포트 번호의 표기도 실제 포트 번호 숫자로 변경된다.

즉, 모두 숫자 방식으로 표기하는 옵션이다.

 

 

열려있는 포트와 프로그램 이름 출력해보기

netstat -nap

 

일부만 캡쳐

 

 

특정 포트번호의 연결 상태와 프로그램 이름 출력해보기

# 프로그램 이름까지 출력
netstat -nap | grep [port number]

# 프로그램 이름 제외하고 출력
netstat -an | grep [port number]

 

 

 

 

LISTEN 상태인 포트 정보 출력하기

netstat -nap | grep LISTEN

LISTEN 상태인 포트 확인 가능

 

 

 

LISTEN 상태인 TCP 포트와 프로그램 

netstat -nltp

 

udp 옵션까지 추가하는 것도 가능

 

 

 

* 사용한 운영체제: Ubuntu 20.04


 

참고 자료

 

https://blog.naver.com/ncloud24/221388026417

 

netstat 명령어를 통한 네트워크 상태 확인 방법

netstat - 네트워크 접속, 라우팅 테이블, 네트워크 인터페이스의 통계 정보를 보여주는 도구사용 방...

blog.naver.com

https://websecurity.tistory.com/103

 

리눅스(Linux) netstat 명령어 사용법, 네트워크 상태 확인하기

netstat네트워크 연결상태, 라우팅테이블, 인터페이스 상태등을 보여주는 명령어[사용법]#> netstat [옵션] [옵션]옵션 설명-a모든 네트워크 상태 출력 [-all]-c현재 실행 명령을 매 초마다 실행 [--continu

websecurity.tistory.com

 

https://www.devkuma.com/docs/linux/netstat/

 

Linux 명령어 | 네트워크 | netstat 네트워크 상태 확인

netstat 명령어 network statistics의 줄임말로 네트워크 인터페이스나 프로토콜 상에서의 통계를 보여주는 소프트웨어 혹은 도구이다. 대체로 네트워크의 상태 및 성능을 측정하고 네트워크 상의 문

www.devkuma.com

 

https://pearlluck.tistory.com/130

 

[Linux 명령어] netstat : 네트워크 상태확인

netstat (network statistics) 네트워크 연결 상태확인 명령어 옵션 -a all, 모든 소켓정보 -r 라우팅 정보 -n 호스트명 대신 ip주소로 출력 -i 모든 네트워크 인터페이스 정보 출력 -p 프로세스id(PID)와 프로

pearlluck.tistory.com

 

https://www.youtube.com/watch?v=Ebm_20-Byhg

 

 

반응형