본문 바로가기
리눅스

[Linux] 리눅스 네트워크 연결 및 포트 확인: netstat vs ss

by ImirAin 2025. 10. 25.

netstat 명령어는 리눅스 시스템에서 네트워크 연결 상태, 라우팅 테이블, 인터페이스 통계 등 다양한 네트워크 정보를 확인하는 데 사용됩니다. 하지만 최신 리눅스에서는 더 빠르고 효율적인 ss (Socket Statistics) 명령어가 권장됩니다.


1. netstat: 전통적인 네트워크 통계 도구

netstat은 여러 인수를 조합하여 필요한 정보를 필터링하고 표시합니다.

옵션 설명
-r 라우팅 테이블을 표시합니다.
-i 인터페이스 통계 테이블을 표시합니다.
-g 멀티캐스트 그룹 멤버십을 표시합니다.
-s 네트워크 프로토콜별 통계를 표시합니다.
-n 주소와 포트 번호를 이름 대신 정수형(숫자)으로 표시하여 조회를 빠르게 합니다.
-a 모든 소켓 (Listening 및 연결된 소켓 모두)을 표시합니다.
-l 듣기 상태(Listening)인 서버 소켓들만 표시합니다. (서비스 대기 포트 확인)
-t TCP 연결 정보를 표시합니다.
-u UDP 연결 정보를 표시합니다.
-p 소켓을 사용하고 있는 프로그램 이름과 PID (Process ID)를 표시합니다.

2. 옵션 조합 및 활용 예시

netstat의 옵션들은 합쳐서 사용하며, 이를 통해 원하는 정보만 정확하게 조회할 수 있습니다.

조합 의미 용도
netstat -an 모든 소켓숫자로 표시 현재 시스템의 모든 연결 상태(ESTABLISHED, LISTEN 등)를 빠르게 확인.
netstat -tulpn TCP/UDP 리스닝 포트에 바인딩된 프로그램(PID)을 숫자로 확인 서버에서 구동 중인 서비스 포트와 프로세스를 파악하는 데 가장 많이 사용됨.
# 예시 1: 현재 시스템의 모든 연결 및 리스닝 소켓을 숫자로 확인
netstat -an

# 예시 2: 80번 포트가 열려 있는지 확인 (프로그램과 PID 포함)
netstat -tulpn | grep 80

3. 특정 포트 확인을 위한 필터링

특정 포트 번호(예: 80번 포트)가 열려 있는지, 어떤 프로그램이 사용하는지 확인하고 싶을 때 grep 명령어를 사용하여 결과를 필터링합니다.

# 예시: 80번 포트가 열려 있는지 확인
netstat -tulpn | grep 80

4. netstat 대체 명령어 (ss) 사용 팁

최신 리눅스 시스템 관리에서는 ss (Socket Statistics) 명령어는 netstat의 기능을 대체하며, 특히 많은 네트워크 연결이 있는 대규모 서버 환경에서 빠른 처리 속도와 상세한 정보를 제공하여 권장되는 도구입니다.

 4.1. ss 주요 옵션

옵션 설명
-s 각 프로토콜별 통계 정보 (소켓 수, 상태 등)를 요약하여 표시합니다.
-a 모든 소켓 (사용 중인 소켓과 사용 중이 아닌 소켓) 정보를 표시합니다.
-l 접속 대기 상태(Listening)인 소켓만 표시합니다.
-n 네트워크 주소를 이름 대신 숫자로 표시합니다.
-t TCP 소켓 정보를 표시합니다.
-u UDP 소켓 정보를 표시합니다.
-x UNIX 도메인 소켓 정보를 표시합니다.
-p 소켓을 사용 중인 프로세스 정보(PID/이름)를 표시합니다. (netstat과 동일 기능)

 4.2. ss 활용 예시

netstat -tulpn과 유사한 기능은 ss -tulpn으로 대체하여 사용할 수 있습니다.

# 예시: 현재 TCP/UDP로 리스닝 중인 포트와 PID 확인
ss -tulpn

# 예시: TCP 연결 통계 정보 요약
ss -s