
서버에서 포트가 열려 있는지 확인할 때 예전에는 netstat을 자주 썼다.
나도 거의 습관처럼 아래 명령어를 썼다.
netstat -tulnp
그런데 요즘 리눅스 서버에서는 netstat이 아예 설치되어 있지 않은 경우가 꽤 있다.
netstat: command not found
처음 보면 순간 당황한다.
포트 확인해야 하는데 왜 명령어가 없지 싶다.
이때 대신 쓰는 명령어가 ss다.
역할은 거의 비슷하다.
서버에서 열려 있는 포트, 연결된 TCP 세션, 어떤 프로세스가 포트를 사용 중인지 확인할 때 쓴다.
netstat은 오래된 방식
netstat은 예전부터 많이 쓰이던 네트워크 상태 확인 명령어다.
보통 net-tools 패키지에 포함되어 있다.
netstat -tulnp
옵션은 대략 이런 의미다.
-t : TCP
-u : UDP
-l : LISTEN 상태
-n : 주소와 포트를 숫자로 표시
-p : 프로세스 정보 표시
예를 들어 8080 포트가 열려 있는지 보고 싶으면 이렇게 확인할 수 있다.
netstat -tulnp | grep 8080
운영 문서나 예전 블로그 글을 보면 아직도 netstat 기준으로 설명된 경우가 많다.
그래서 아예 모를 필요는 없다.
다만 최신 리눅스 환경에서는 기본 설치가 안 되어 있을 수 있다.
ss는 요즘 더 많이 쓰는 방식
ss는 socket statistics의 줄임말로 보면 된다.
현재 서버의 소켓 상태를 확인하는 명령어다.
요즘 리눅스에서는 iproute2 패키지에 포함되어 있고, 대부분 기본으로 설치되어 있다.
netstat으로 보던 내용은 보통 ss로도 확인할 수 있다.
ss -tulnp
열려 있는 TCP 포트만 보고 싶으면 이렇게 쓴다.
ss -ltn
현재 연결된 TCP 세션을 보고 싶으면 아래처럼 쓴다.
ss -tan state established
웹소켓처럼 연결이 계속 유지되는 서버라면 이 명령어를 자주 보게 된다.
ss -tan state established | grep ':8080'
연결 개수만 보고 싶으면 wc -l을 붙이면 된다.
ss -tan state established | grep ':8080' | wc -l
netstat과 ss 차이
| 구분 | netstat | ss |
| 포함 패키지 | net-tools | iproute2 |
| 사용 시기 | 예전부터 많이 사용 | 요즘 리눅스에서 주로 사용 |
| 기본 설치 | 없는 경우 있음 | 대부분 기본 설치 |
| 속도 | 연결이 많으면 느릴 수 있음 | 상대적으로 빠름 |
| 용도 | 포트, 연결 상태 확인 | 포트, 연결 상태 확인 |
둘 다 목적은 비슷하다.
다만 새로 익힌다면 ss를 먼저 보는 게 낫다.
특히 운영 서버에서 연결 수가 많거나, 웹소켓처럼 오래 유지되는 연결을 확인할 때는 ss가 더 편하다.
자주 쓰는 명령어 정리
열려 있는 TCP 포트 확인:
ss -ltn
TCP/UDP 포트와 프로세스 확인:
sudo ss -tulnp
특정 포트 확인:
sudo ss -tulnp | grep 8080
현재 연결된 TCP 세션 확인:
ss -tan state established
특정 포트에 연결된 세션 확인:
ss -tan state established | grep ':8080'
특정 포트 연결 개수 확인:
ss -tan state established | grep ':8080' | wc -l
예전 방식으로는 이렇게 썼다.
netstat -tulnp
netstat -ant | grep ESTABLISHED
요즘은 아래처럼 바꿔 쓰면 된다.
ss -tulnp
ss -tan state established
netstat과 ss는 둘 다 서버의 네트워크 상태를 확인하는 명령어다.
예전 글이나 운영 문서에서는 netstat을 많이 볼 수 있고, 최신 리눅스 서버에서는 ss를 더 자주 쓰게 된다.
ss -ltn
ss -tan state established
sudo ss -tulnp
서버를 운영하다 보면 이런 명령어가 은근히 자주 필요하다.
복잡한 장애 분석까지는 아니어도, “지금 포트가 열려 있나?”, “연결이 붙어 있나?” 정도를 빠르게 확인하는 데는 ss가 꽤 편하다.
'Infra' 카테고리의 다른 글
| RabbitMQ를 이해해보자, 메시지 큐를 왜 쓰는 걸까? (1) (0) | 2026.05.09 |
|---|---|
| HAProxy로 무중단 배포를 이해해보기 (0) | 2026.05.08 |
| Redis Sentinel 정리, Failover와 Redis Cluster 차이 이해하기 (2) (0) | 2026.05.04 |
| Redis Sentinel 정리, Master 장애를 자동으로 복구하는 구조 이해하기 (1) (0) | 2026.05.04 |
| Redis Cluster 정리, Predixy 역할과 필요한 경우 이해하기 (4) (0) | 2026.05.02 |