100===Dev Ops/Linux

Netstat 명령어 완벽 가이드 🔍

블로글러 2024. 11. 17. 08:50

안녕하세요! 오늘은 시스템 관리자와 개발자들의 필수 도구인 netstat 명령어에 대해 자세히 알아보겠습니다.

Netstat이 뭔가요? 🤔

네트워크 연결 상태를 보여주는 마법 같은 도구입니다!

  • 실시간으로 네트워크 연결 상태를 모니터링
  • TCP/UDP 연결 정보 확인
  • 네트워크 인터페이스 통계
  • 라우팅 테이블 정보 제공

마치 병원의 심전도 모니터처럼 네트워크의 "건강 상태"를 실시간으로 보여줍니다.

주요 옵션들 🛠️

기본 옵션

-a : 모든 연결과 수신 대기 포트 표시 all
-n : 주소와 포트를 숫자로만 표시 number
-p : 프로세스 ID와 프로그램 이름 표시 process
-t : TCP 연결만 표시
-u : UDP 연결만 표시
-l : Listen 상태의 포트만 표시 listen
-r : 라우팅 테이블 표시 routing

실제 사용 예시

# 모든 TCP 연결 보기
netstat -at

# 포트와 프로세스 정보 자세히 보기
netstat -tunlp

# 특정 포트(예: 80) 사용 확인
netstat -an | grep :80

TCP 상태 이해하기 📊

네트워크 연결 상태를 더 잘 이해하기 위한 주요 상태값들:

  1. LISTEN: 포트가 새 연결을 기다리는 상태

    예) 웹서버가 80포트에서 클라이언트 대기
  2. ESTABLISHED: 현재 연결된 상태

    예) 클라이언트와 서버가 실제 통신 중
  3. TIME_WAIT: 연결이 종료되고 잠시 대기하는 상태

    예) 브라우저가 웹페이지 로딩을 완료한 직후

실전 활용 사례 💡

1. 서버 문제 해결

# 과도한 연결 확인
netstat -an | grep ESTABLISHED | wc -l

# 특정 IP의 연결 수 확인
netstat -an | grep "192.168.1.100"

2. 보안 모니터링

# 의심스러운 연결 찾기
netstat -antp | grep ESTABLISHED

# 알 수 없는 포트 확인
netstat -tulpn | grep LISTEN

3. 성능 최적화

# TIME_WAIT 상태 개수 확인
netstat -an | grep TIME_WAIT | wc -l

유용한 사용 팁 💪

  1. 실시간 모니터링

    watch -n 1 'netstat -an | grep ESTABLISHED'
  2. 연결 통계 보기

    netstat -s
  3. 특정 프로그램의 연결만 보기

    netstat -anp | grep nginx

주의사항 ⚠️

  1. 권한 문제

    • 일부 정보는 root 권한 필요
    • sudo 사용 권장
  2. 출력량 관리

    • 필터링 없이 사용시 매우 많은 정보 출력
    • grep으로 필터링 추천
  3. 성능 영향

    • 너무 자주 실행하면 시스템 부하 가능
    • 적절한 간격 유지 필요

References 📚

  1. Linux man pages - netstat
  2. Red Hat Enterprise Linux 네트워킹 가이드
  3. TCP/IP Illustrated, Volume 1: The Protocols
  4. Unix and Linux System Administration Handbook
728x90