리눅스에서 netstat 명령어 사용법

오늘은 리눅스에서 네트워크 상태를 모니터링하고 다양한 네트워크 관련 정보를 확인할 수 있는 유용한 명령어, netstat에 대해 알아보겠습니다. 네트워크 문제 해결이나 서버 상태 모니터링에 자주 사용되는데요, netstat의 주요 옵션과 함께 활용법을 차근차근 설명해드릴게요.


netstat 명령이란?

netstat는 네트워크 연결 상태, 라우팅 테이블, 인터페이스 통계 등 네트워크 관련 정보를 한눈에 확인할 수 있게 해주는 명령입니다. netstat을 사용하면 현재 어떤 포트가 열려 있는지, 어떤 프로세스가 특정 포트를 사용 중인지, 네트워크 인터페이스가 어떻게 구성되어 있는지 등을 쉽게 파악할 수 있습니다.

기본 사용법

우선 netstat의 기본 사용법은 다음과 같습니다.

netstat [옵션]

명령어에 옵션을 붙여 실행하면 다양한 정보가 출력됩니다.


주요 옵션 설명

1. -a : 모든 소켓 표시

-a 옵션은 현재 시스템에서 사용 중인 모든 소켓을 표시해줍니다. 여기에는 Listening 상태와 Non-listening 상태의 소켓이 모두 포함됩니다. 즉, 서버가 들어오는 연결을 대기 중인 포트와 클라이언트로 연결된 포트를 모두 확인할 수 있습니다.

netstat -a

2. -n : IP 주소와 포트를 숫자로 표시

-n 옵션을 사용하면 IP 주소와 포트를 숫자로 표시합니다. 기본적으로 netstat은 도메인 이름을 확인하려고 시도하는데, -n 옵션을 사용하면 DNS 조회 과정을 건너뛰기 때문에 속도가 빨라집니다.

netstat -an

3. -t : TCP 프로토콜만 표시

TCP 연결 상태만 보고 싶을 때는 -t 옵션을 사용합니다. TCP는 주로 웹서버나 데이터베이스와 같은 연결에 사용되기 때문에, 특정 서비스의 상태를 확인할 때 유용합니다.

netstat -t

4. -u : UDP 프로토콜만 표시

UDP 프로토콜은 TCP와 달리 연결을 설정하지 않는 프로토콜로, 실시간 스트리밍이나 게임 등에서 많이 사용됩니다. -u 옵션으로 UDP 연결 상태만 확인할 수 있습니다.

netstat -u

5. -l : Listening 상태의 포트만 표시

서버가 대기 중인 포트만 확인하고 싶을 때 -l 옵션을 사용하면 됩니다. 현재 열려 있고 외부 연결을 기다리는 포트만 표시되기 때문에 보안 설정이나 서비스 상태 확인에 유용합니다.

netstat -l

6. -p : 프로세스 ID와 이름 표시

특정 포트를 사용 중인 프로세스가 무엇인지 알고 싶다면 -p 옵션을 사용할 수 있습니다. 이 옵션은 해당 연결을 사용하는 프로세스의 ID(PID)와 이름을 함께 출력해줍니다. 다만, 이 옵션은 관리자 권한이 필요할 수 있습니다.

sudo netstat -p

7. -r : 라우팅 테이블 표시

-r 옵션은 라우팅 테이블을 확인할 때 사용합니다. 이 옵션을 통해 현재 시스템이 어떤 경로로 네트워크 패킷을 전송하고 있는지 확인할 수 있습니다.

netstat -r

8. -i : 네트워크 인터페이스 상태 확인

현재 시스템의 네트워크 인터페이스(예: 이더넷, Wi-Fi 등) 상태를 보고 싶다면 -i 옵션을 사용할 수 있습니다. 각 인터페이스의 데이터 송수신 상태와 같은 통계 정보를 표시합니다.

netstat -i

9. -s : 프로토콜별 통계 확인

-s 옵션을 사용하면 각 프로토콜(TCP, UDP, ICMP 등)별 통계를 확인할 수 있습니다. 네트워크 성능을 분석하거나 문제 해결에 도움을 줄 수 있는 중요한 옵션입니다.

netstat -s

실전 사용 예시

netstat 명령어를 여러 옵션과 함께 조합해 사용하면 필욯나 정보를 더 정확하게 확인할 수 있습니다. 다음은 실전에서 사용하는 조합 예시들입니다.

  • TCP의 Listening 포트만 숫자로 표시하고, PID를 포함하여 출력하기
    sudo netstat -tlpn
    
  • 모든 네트워크 연결 상태를 숫자로 확인하기
    sudo netstat -an
    
  • 라우팅 테이블 확인하기
    sudo netstat -r
    

ss 명령어로 대체할 수 있는 경우

리눅스에서는 최신 배포판에서 netstat 대신 ss 명령어를 권장하는 경우가 많습니다. ssnetstat와 유사한 기능을 제공하면서도 더 빠르고 가벼운 장점이 있습니다. ss 명령어의 사용법도 거의 비슷하기 때문에 netstat이 설치되어 있지 않은 경우 ss로 대체해서 사용할 수 있습니다.

ss -tuln

마무리

오늘은 이렇게 리눅스에서 netstat 명령어를 사용하는 방법과 주요 옵션을 알아보았습니다. 네트워크 모니터링이나 문제 해결에 netstat은 필수적인 도구이지, 자주 사용하면서 익숙해져 보시길 바랍니다.