netstat 개요
`netstat`은 시스템의 네트워크 활동에 대한 다양한 정보를 제공합니다. 이는 서버의 특정 포트가 열려 있는지, 어떤 프로세스가 네트워크 연결을 사용하고 있는지, 라우팅 경로가 올바른지 등을 진단하는 데 유용합니다. 그러나 `net-tools` 패키지의 일부로, IPv6 지원이 불완전하고 대규모 시스템에서는 성능 문제가 있을 수 있어 `iproute2` 패키지의 `ss` 명령어로 대체되었습니다.
netstat의 주요 역할
`netstat` 명령어는 주로 다음과 같은 목적으로 사용됩니다:
주요 활용 분야 (과거 및 일부 시스템)
- 활성화된 연결 확인: 현재 설정된 모든 TCP, UDP 연결 및 리스닝 포트를 보여줍니다.
- 라우팅 테이블 확인: IP 패킷이 전송되는 경로를 정의하는 라우팅 테이블을 표시합니다.
- 네트워크 인터페이스 통계: 각 네트워크 인터페이스의 패킷 전송 및 수신 통계를 제공합니다.
- 프로세스-포트 매핑: 어떤 프로세스가 특정 포트를 사용하고 있는지 확인합니다.
`netstat` vs `ss`
`netstat`은 오랫동안 사용되어 왔지만, 현재는 `ss` 명령어가 그 역할을 대체하고 있습니다. 새로운 시스템에서는 `ss` 사용을 습관화하는 것이 좋습니다.
- netstat: 레거시 도구, `/proc` 파일 시스템 기반, 대규모 연결 시 느릴 수 있음, IPv6 지원 불완전.
- ss: 현대적이고 빠르며, 커널의 소켓 통계 직접 접근, IPv6 완벽 지원, 더 많은 필터링 옵션 제공.
netstat 설치 (선택 사항)
일부 최신 Linux 배포판(예: Ubuntu 18.04+부터)에는 기본적으로 `netstat`이 설치되어 있지 않을 수 있습니다. 필요한 경우 `net-tools` 패키지를 설치하여 사용할 수 있습니다.
`netstat` 설치 (Debian/Ubuntu)
sudo apt update
sudo apt install net-tools
Debian 또는 Ubuntu 기반 시스템에서 `netstat`이 포함된 `net-tools` 패키지를 설치하는 명령어입니다.
주요 netstat 명령어 옵션
`netstat` 명령어는 다양한 옵션을 조합하여 원하는 네트워크 정보를 상세하게 필터링하고 표시할 수 있습니다.
1. 연결 및 포트 정보
2. 라우팅 테이블 및 통계
생성된 명령어:
명령어를 조합해 보세요.
설명:
`netstat` 명령어를 실행합니다.
위 옵션들을 조합하여 AI와 함께 가상으로 명령어를 실행해 보세요.
사용 예시
`netstat` 명령어의 다양한 활용 예시들을 통해 시스템의 네트워크 연결 및 통계를 확인하는 방법을 익혀보세요.
모든 활성 TCP 연결 및 리스닝 포트 확인
sudo netstat -tulpn
가장 일반적으로 사용되는 조합으로, TCP 연결과 리스닝 포트를 숫자 주소로 표시하고, 관련된 프로그램 이름과 PID도 함께 보여줍니다.
모든 리스닝(Listening) 포트만 확인
sudo netstat -lntp
현재 시스템에서 외부 연결을 기다리고 있는 모든 포트(TCP, UDP)를 확인합니다. 서버 포트가 제대로 열려 있는지 확인할 때 유용합니다.
라우팅 테이블 확인
netstat -rn
시스템의 IP 라우팅 테이블을 숫자 형식으로 표시합니다. 패킷이 어떤 경로로 전송될지 확인할 수 있습니다.
특정 포트를 사용하는 프로세스 확인
sudo netstat -tulpn | grep :80
포트 `80`을 사용하고 있는 TCP 연결 및 리스닝 포트를 가진 프로세스의 정보를 확인합니다. (웹 서버 진단 시 유용)
네트워크 인터페이스별 통계 확인
netstat -i
각 네트워크 인터페이스(예: `eth0`, `lo`)의 수신(Rx) 및 송신(Tx) 패킷 수, 오류 등을 표시합니다.
전체 네트워크 통계 요약
netstat -s
TCP, UDP, IP 등 각 네트워크 프로토콜에 대한 전체적인 통계 요약을 표시합니다.