리눅스 시스템에서 네트워크 관련 정보를 확인하는 데 필요한 도구 중 하나가 netstat
명령어입니다. 이 글에서는 netstat
명령어의 기본 사용법, 다양한 옵션들, 그리고 실제 사례를 통해 이해를 돕고자 합니다. netstat
은 “network statistics”의 줄임말로, 네트워크 연결, 라우팅 테이블, 인터페이스 통계, 마스커레이드 연결, 멀티캐스트 멤버십 등 다양한 네트워크 관련 정보를 제공합니다.
기본 사용법
netstat
명령어는 사용자가 시스템의 네트워크 상태를 살펴보기 위해 사용하는 명령줄 도구입니다. 사용법은 아래와 같습니다.
1 |
netstat [옵션] |
주요 옵션들
-r
(라우팅 테이블 표시) : 시스템의 라우팅 테이블을 표시합니다. 이 테이블은 네트워크 패킷이 최종 목적지까지 도달하기 위해 이동해야 하는 경로 정보를 담고 있습니다.-a
(모든 연결 표시) : 서버에서 실행 중인 모든 소켓(활성 및 수신 대기 중인)을 표시합니다.-t
(TCP 연결 표시) : TCP 프로토콜을 사용하는 연결만 표시합니다.-u
(UDP 연결 표시) : UDP 프로토콜을 사용하는 연결만 표시합니다.-n
(숫자 주소 표시) : 주소와 포트 번호를 숫자로 표시합니다. 도메인 이름 대신 IP 주소가 표시됩니다.-l
(수신 대기 중인 소켓 표시) : 연결 상태가 LISTEN인 소켓만 표시합니다.-p
(프로세스 ID와 이름 표시) : 각 연결에 대한 프로세스 ID와 프로그램 이름을 표시합니다. 이 옵션은 루트 권한으로 실행해야 합니다.
예제 사용법
- 모든 활성 TCP 연결을 확인
1 |
netstat -at |
- 모든 수신 대기 중인 UDP 포트를 확인
1 |
netstat -lu |
- 사용 중인 포트와 해당 프로세스 정보를 확인
1 |
netstat -lntp |
사용 사례
시스템 관리자나 네트워크 관리자가 특정 포트의 상태를 확인하거나, 어떤 서비스가 특정 포트를 사용하고 있는지 파악할 때 netstat
명령어를 유용하게 사용할 수 있습니다. 예를 들어, 웹 서버가 정상적으로 80번 포트에서 수신 대기 중인지 확인하기 위해 아래와 같은 명령을 사용할 수 있습니다.
1 |
netstat -ltnp | grep :80 |