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

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

Table of Contents


netstat 명령이란?

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

기본 사용법

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

1
netstat [옵션]

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


주요 옵션 설명

1. -a : 모든 소켓 표시

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

1
netstat -a

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

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

1
netstat -an

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

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

1
netstat -t

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

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

1
netstat -u

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

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

1
netstat -l

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

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

1
sudo netstat -p

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

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

1
netstat -r

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

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

1
netstat -i

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

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

1
netstat -s

실전 사용 예시

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

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

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

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

1
ss -tuln

마무리

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