
sudo ss -tulpn (또는 netstat)으로 현재 열려있는 포트 확인netstat에 비해 ss가 더 빠르고 강력한 최신 표준(Modern Standard)이라고 합니다.
대부분 라즈베리 파이 최신 OS를 포함한 대부분의 배포판에서 netstat은 Deprecated(사용 중단 예정) 상태이며, ss가 기본입니다.
| 특징 | netstat (구형) | ss (신형) |
|---|---|---|
| 소속 패키지 | net-tools (더 이상 업데이트 안 됨) | iproute2 (현재 리눅스 표준) |
| 데이터 출처 | /proc 파일 시스템 읽기 | Netlink API (커널 직접 통신) |
| 속도 | 연결이 많으면 엄청 느려짐 (텍스트 파싱) | 연결이 수만 개여도 빠름 (바이너리 통신) |
| 정보량 | 기본적인 TCP/IP 정보 | TCP 타이머, 큐(Queue) 상태, 메모리 사용량 등 상세 정보 |
ss인가?netstat은 /proc/net/tcp 같은 텍스트 파일을 열어서 한 줄씩 읽습니다. 연결이 많으면 이 파일을 만드는 커널도 힘들고, 읽는 netstat도 힘듭니다.
반면 ss는 커널 내부의 소켓 정보를 Netlink라는 고속 인터페이스로 직접 긁어옵니다.
netstat 과 ss 의 옵션이 거의 똑같기 때문에 netstat 자리에 ss 만 넣으면 대부분은 호환됩니다.
netstat -antpss -antpa: All (전체)n: Numeric (이름 말고 숫자로 포트 표시)t: TCP만p: Process (어떤 프로그램이 쓰는지 표시 - sudo 필요)netstat -lntpss -lntpl: Listening (열려있는 포트만)ss -amtpm: 소켓이 사용하는 메모리 양을 보여줍니다. (메모리 누수 잡을 때 유용).ss만의 강력한 필터링 기능grep을 안 써도 자체 필터링이 가능하다고 합니다.
# 목적지 포트가 22번(SSH)인 것만 보여줘
ss -at '( dport = :22 )'
# 상태가 ESTABLISHED(연결됨)인 것만 보여줘
ss -t state established
netstat 명령어가 없어서 당황할 수 있지만, sudo apt install net-tools 를 통해 설치할 수 있습니다.netstat 대신 ss에 익숙해지는게 좋다고 합니다.