본문 바로가기

리눅스

netstat 명령어

반응형

netstat 명령어

netstat 명령어는 네트워크 관련 정보를 보여주는 유닉스 및 리눅스 명령어입니다. 주로 네트워크 연결, 라우팅 테이블, 네트워크 인터페이스 상태 등의 정보를 제공합니다. netstat 명령어를 실행하면 다음과 같은 정보를 확인할 수 있습니다.

 

  • 현재 열린 네트워크 연결 정보: TCP, UDP, ICMP 등의 프로토콜을 사용하는 현재 열린 연결 정보를 확인할 수 있습니다. 연결 상태, 로컬 및 원격 주소, 포트 번호, 프로토콜 등의 정보가 표시됩니다.
  • 라우팅 테이블 정보: 현재 시스템의 라우팅 테이블 정보를 확인할 수 있습니다. 라우팅 테이블은 패킷을 전송하는데 사용되는 경로를 나타내며, 라우터 주소, 네트워크 주소, 서브넷 마스크 등의 정보가 표시됩니다.
  • 네트워크 인터페이스 상태: 현재 사용 가능한 네트워크 인터페이스의 상태를 확인할 수 있습니다. 인터페이스 이름, IP 주소, 맥 주소, MTU, 네트워크 상태 등의 정보가 표시됩니다.

기본 구문

netstat [옵션]

주로 사용되는 옵션

  • -a : 모든 연결 정보 표시
  • -n : 주소와 포트 번호를 숫자로 표시
  • -t : TCP 연결 정보만 표시
  • -u : UDP 연결 정보만 표시
  • -r : 라우팅 테이블 정보 표시
  • -i : 네트워크 인터페이스 상태 표시

netstat 명령어에서 표시되는 연결 상태(status)는 다음과 같습니다.

 

  1. ESTABLISHED : 연결이 설정되어 있고 데이터가 전송 중인 상태
  2. SYN_SENT : SYN 요청이 전송되었지만, 상대방의 SYN+ACK 응답을 아직 받지 못한 상태
  3. SYN_RECV : 상대방의 SYN 요청에 대한 응답으로 SYN+ACK를 보냈지만, 아직 상대방의 ACK 응답을 받지 못한 상태
  4. FIN_WAIT1 : FIN 패킷을 보내고 상대방의 ACK 응답을 기다리는 상태
  5. FIN_WAIT2 : 상대방이 보낸 FIN 패킷을 수신하고 ACK 응답을 보내는 상태
  6. TIME_WAIT : 연결을 종료한 후 일정 시간 동안 대기하는 상태. 이 시간 동안 재연결 요청이 들어오면 대응하기 위해 대기하는 것입니다.
  7. CLOSE_WAIT : 연결 종료 요청을 받았으나, 아직 상대방의 종료 요청을 받지 못한 상태
  8. LAST_ACK : 연결 종료 요청을 받고, 상대방의 ACK 응답을 보내고 연결이 종료된 상태
  9. LISTEN : 연결 요청 대기 상태. 서버에서 사용되는 상태입니다.
  10. CLOSING : 상대방의 FIN 패킷을 받고 ACK 응답을 보낸 후, 아직 상대방의 ACK 응답을 받지 못한 상태

위와 같은 상태를 통해 현재 시스템이 어떤 연결 상태인지 파악할 수 있습니다.

728x90

사용 예시

  • 모든 연결 및 소켓 정보 표시
netstat -a
  • TCP 연결 정보만 표시
netstat -at
  • UDP 연결 정보만 표시
netstat -au
  • IP 주소와 포트 번호를 숫자로 표시
netstat -an
  • 라우팅 테이블 표시
netstat -r
  • 프로세스 정보와 함께 연결 정보 표시
netstat -anp
  • 특정 포트의 사용 여부 확인
netstat -an | grep 8080
  • 특정 프로토콜 및 포트를 사용하는 연결 정보 표시
netstat -an | grep -E 'Proto|8080'
  • 현재 시스템에서 "ESTABLISHED" 상태인 TCP 연결의 수를 세는 명령어
netstat -an | grep -v grep | grep ESTABLISHED | wc -l

 

728x90
반응형