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


netstat 명령어

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

사용법

netstat [옵션] [| grep 포트 번호 or 서비스 명]

option:

  • -l (listen) : 연결 가능한 상태
  • -n (number port) : 포트 넘버
  • -t (tcp) : tcp
  • -u (udp) : udp
  • -p (Program name / PID) : 프로그램 이름 / PID. 어떤 프로세스에서 해당 통신을 사용하고 있는 지를 보여준다.
  • -a (all) : 모두. ESTABLISHED 뿐만 아닌 모든 State에 대한 소켓들의 정보를 보여준다

예시:

$ netstat
Active Internet connections
Proto Recv-Q Send-Q  Local Address          Foreign Address        (state)    
tcp4       0      0  192.168.0.1.62123      111.111.11.111.https   ESTABLISHED
  • Proto : 해당 통신이 사용하는 프로토콜을 나타낸다.
  • Recv-Q , Send-Q : 해당 통신이 사용할 때 소켓 사이즈 버퍼를 의미하며 Recv-Q의 경우 recv()를 - 통해 처리 받지 못한 데이터를 의미하며 Send-Q의 경우 send()를 통해 보냈지만 아직 완전하게 외부로 보내지지 않은 데이터의 크기를 의미한다.
  • Local Address, Foreign Address : 말 그대로 해당 통신에서 나가는 내 주소와 목적지에 해당하는 주소를 의미한다.
  • (state) : ESTABLISHED, LISTEN과 같은 상태를 나타낸다.

NOTE

포트

서버에 열린 문을 의미하며 숫자로 표현된다. IP를 타고 서버에 접속할 때 서버에 여러 포트가 있다.

TCP와 UDP

TCP: 속도↓, 상호 통신(신뢰성↑), 질의응답 o, stream
UDP: 속도↑, 일방 통신(신뢰성↓), 질의응답 x, datagram(dgram)

netstat 옵션은 주로 -lntup를 쓴다.

그 외에 -antup, -ltup, -atup 등을 쓴다.

/etc/services는 서비스 명 및 포트 정의 파일이고 포트 넘버를 확인 가능하다.