본문 바로가기
OS/Linux

[Linux] netstat 명령어

by diaryDev 2024. 10. 14.
728x90

netstat

▶ 네트워크 연결 상태, 라우팅 테이블, 인터페이스 상태 등을 보여주는 명령어

 

▶ 다음과 같이 "Active Internet connections"(인터넷 연결상태) 부분과 "Active UNIX domain sockets"(도메인 소켓 연결 상태)으로 나뉘어져서 표시된다.

 

명칭 설명
Proto(Protocol) 프로토콜 종류
Recv-Q 받는 큐 (받는 패킷의 socket buffer size)
Send-Q 보내는 큐 (보내는 패킷의 socket buffer size)
Local Address 내부주소 (ip주소 : 포트번호)
현재 열려있거나 LISTEN 중인 IP와 PORT
0.0.0.0 이라면, 모든 IP를 다 받을 수 있게 다 열어두었다는 뜻
127.0.0.01 이라면, loopback이여서 자기자신만 받을 수 있다는 뜻
Foreign Address 외부주소
State 상태정보(LISTEN, ESTABLISHED, TIME_WAIT, CLOSED)
PID 프로세스ID / 프로그램이름 (P옵션 적용)

 

Active Internet connections 항목

프로토콜, 수신큐와 송신큐 그리고 각각의 IP, Port 정보 표시(TCP의 경우 State 정보도 표시)

 

Active UNIX domain sockets 항목의 TCP state

LISTEN 서버의 데몬이 떠서 접속 요청을 기다리는 상태
SYS-SENT 로컬의 클라이언트 어플리케이션이 원격호스트에 연결을 요청한 상태
SYN_RECEIVED 서버가 원격 클라이언트로부터 접속 요구를 받아 클라이언트에게 응답을 하였지만 아직 클라이언트에게 확인 메시지는 받지 않은 상태
ESTABLISHED 3 Way-Handshaking이 완료된 후 서로 연결된 상태
FIN-WAIT1,2
CLOSE-WAIT
서버에서 연결을 종료하기 위해 클라이언트에게 종결을 요청하고 회신을 받아 종료하는 과정의 상태
CLOSING 흔하지 않지만 주로 확인 메시지가 전송도중 분실된 상태
TIME-WAIT 연결은 종료되었지만 분실되었을지 모를 느린 세그먼트를 위해 당분간 소켓을 열어두고 있는 상태
CLOSED 완전히 종료

 

Active UNIX domain sockets 항목

  프로토콜이 unix로 표시되며, RefCnt로 해당 소켓을 프로세스가 참조한 횟수를 표시
  Flags는 일반적으로 ACC상태로 표시되는데 ACC는 소켓이 연결이 되어 있지 않는 상태를 나타내며, 소켓이 연결이 되어 있는 경우 공백으로 표시된다.
  Type은 보통 “DGRAM(Datagram)”과 “STREAM”으로 표시된다.
  State와 I-node, 소켓 파일의 절대 경로를 표시해 준다.

 

Active UNIX domain sockets 항목의 도메인 소켓 연결 상태

FREE                        소켓이 할당되지 않았음
LISTENING              소켓이 연결 요청을 기다리는 중
CONNECTING         소켓 연결이 활성화되어 짐 
CONNECTED           소켓이 연결되어 있음
DISCONNECTING    소켓 연결이 종료됨 
공백   소켓이 어떠한 프로세스와도 연결되어 있지 않음
UNKNOWN             이 상태는 발생하지 않는다.


옵션

-a  모든 네트워크 상태 출력
-c   현재 실행 명령을 매 초마다 실행
-e  확장된 정보 출력
-g  멀티캐스트에 대한 그룹별 정보 출력
-i  인터페이스별 통계값 출력
-l  LINTEN 상태인 서비스 포트 출력
-n  도메인 주소를 숫자로 출력
-o  연결 대기 시간 출력
-p  해당 포트를 사용하는 프로그램명과 프로세스ID(PID) 출력
-r   라우팅 테이블 출력
-s  프로토콜별(IP
-t  TCP 프로토콜만 출력
-u  UDP 프로토콜만 출력
-v  버전 출력
-w  RAW 프로토콜만 출력
-a  프로토콜별로 출력
-M  마스커레이딩 정보 출력

 

 

netstat -na   현재 시스템의 모든 네트워크 연결 목록 표시
netstat -nap   LISTEN 상태인 포트만 출력(열려있는 모든 포트 출력)
netstat -anp | grep 1.1.1.1   IP로 검색
netstat -anp | grep 8080   port로 검색
netstat -nat   TCP 프로토콜의 네트워크 연결상태 확인
netstat -nau   UDP 프로토콜의 네트워크 연결상태 확인
netstat -rn   라우팅 정보 연결상태 확인
netstat -i   네트워크 인터페이스 정보 출력
netstat -s   프로토콜별 네트워크 정보 출력
netstat -lnp   LISTEN 포트 확인
netstat -np   연결된 포트 확인

 

netstat -tnlp | grep -v 127.0.0.1 | sed 's/:::/0 /g' | sed 's/[:\/]/ /g' | awk '{print $5"\t"$10}' | sort -ug

각각의 포트 번호에 연결된 프로세스 정보만 확인

sed 명령어

awk 명령어

 

 


 

 

참고

https://cafe24.zendesk.com/hc/ko/articles/9801441063449-LINUX-netstat-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%83%81%EC%84%B8-%EC%84%A4%EB%AA%85

https://websecurity.tistory.com/103

https://velog.io/@rbdus96/%EB%A6%AC%EB%88%85%EC%8A%A4-%EB%AA%85%EB%A0%B9%EC%96%B4-netstat

https://pearlluck.tistory.com/130

728x90

'OS > Linux' 카테고리의 다른 글

[Linux] awk 명령어  (0) 2024.10.18
[Linux] sed 명령어  (0) 2024.10.16
[Linux] more 명령어  (0) 2024.10.11
[Linux] ps 명령어  (0) 2024.10.09
[Linux] 현재 쉘(shell) 확인 방법  (0) 2024.10.07