netstat 명령어
netstat은 네트워크 상태(Network Statistics)를 확인하는 대표적인 유닉스/리눅스 명령어입니다. TCP/UDP 연결 현황부터 라우팅 테이블, 인터페이스 상태까지 시스템의 네트워크 전반을 실시간으로 점검할 수 있어 네트워크 진단 및 보안 점검 시 유용하게 활용됩니다.
netstat로 확인할 수 있는 정보
연결 정보 : 현재 열려 있는 TCP/UDP 연결 목록을 표시. 각 연결의 상태, 로컬 및 원격 주소, 포트 확인 가능
라우팅 테이블 : 패킷의 목적지에 따라 어디로 전달할지 결정하는 경로 테이블을 보여줌
네트워크 인터페이스 : 시스템에 설치된 네트워크 장치들의 상태 (IP, MAC, 전송량 등) 표시
netstat 설치
Debian/Ubuntu
sudo apt install net-tools
CentOS/RHEL
sudo yum install net-tools
기본 사용법
netstat [옵션]
자주 사용하는 옵션 정리
- -a 모든 연결(리슨 포함) 및 소켓 정보 표시
- -n 도메인명 대신 IP와 포트를 숫자로 출력
- -t TCP 연결 정보만 표시
- -u UDP 연결 정보만 표시
- -r 현재 라우팅 테이블 표시
- -i 네트워크 인터페이스 상태 표시
- -p 각 연결에 관련된 프로세스 정보 표시 (root 권한 필요)
연결 상태 설명(TCP 상태)
ESTABLISHED : 연결이 정상적으로 설정되어 데이터 송수신 중
SYN_SENT : 연결 요청을 보냈지만 응답 대기 중
SYN_RECV : 연결 요청 수신 후 응답을 보낸 상태
FIN_WAIT1 : 연결 종료 요청(FIN) 후 ACK 대기 중
FIN_WAIT2 : 상대의 FIN 수신 후 종료 대기
TIME_WAIT : 종료 후 일정 시간 대기 (재충돌 방지)
CLOSE_WAIT : 상대방 종료 요청 수신 후 본인 종료 준비 중
LAST_ACK : 본인도 종료 요청을 보내고 ACK 대기 중
LISTEN : 연결 요청을 수신 대기 중 (서버 상태)
CLOSING : FIN 수신 후 ACK 전송, 상대 ACK 응답 대기 중
실전 예제
모든 연결 및 소켓 정보 출력
netstat -a
TCP 연결 정보만 보기
netstat -at
UDP 연결 정보만 보기
netstat -au
IP 및 포트를 숫자로 출력
netstat -an
라우팅 테이블 보기
netstat -r
프로세스 정보까지 함께 출력 (root 권한 필요)
netstat -anp
특정 포트(8080) 사용 여부 확인
netstat -an | grep 8080
"ESTABLISHED" 상태인 TCP 연결 수 확인
netstat -an | grep ESTABLISHED | wc -l
netstat는 단순히 네트워크 연결을 보여주는 도구가 아니라, 보안 침해 탐지, 서버 트래픽 분석, 애플리케이션 상태 점검 등 다양한 상황에서 유용한 필수 명령어입니다.
'리눅스' 카테고리의 다른 글
리눅스에서 메모리 캐시를 삭제하는 방법(cache flush) (0) | 2013.11.28 |
---|---|
리눅스(Fedora)와 다른 운영체제 듀얼 부팅 시 GRUB2 부트로더에서 부팅 순서를 바꾸는 방법 (0) | 2013.11.26 |
dd 명령어 (2) | 2013.11.15 |
[zimbra] 짐브라(zimbra) 설치 (0) | 2013.11.15 |
SSH 접속 시 RSA 공개키(ECDSA) 충돌 문제를 해결하는 방법 (0) | 2013.11.14 |