본문 바로가기

전산

# 리눅스 ss 명령어 사용방법: netstat을 대체하는 고속 네트워크 진단 도구

반응형

목차

  1. ss 명령어란?
  2. ss 명령어와 netstat의 차이점
  3. ss 명령어 기본 사용법
  4. 상황별 ss 명령어 실전 예제
  5. ss 명령어 출력 항목 해석법
  6. ss 명령어 고급 옵션
  7. ss 명령어를 이용한 포트 확인 방법
  8. ss 명령어와 조합해서 쓰면 좋은 명령어
  9. ss 명령어 오류 및 해결 방법
  10. FAQ
  11. 맞춤형 요약

1. ss 명령어란?

ssSocket Statistics의 약자로, 리눅스에서 TCP, UDP, UNIX 소켓의 상태 정보를 출력하는 고성능 네트워크 분석 도구입니다.

기존에 널리 사용되던 netstat 명령어를 대체하기 위해 만들어졌으며, iproute2 패키지에 포함되어 있습니다.

특징

  • 빠르고 효율적인 소켓 통계 조회
  • 실시간 연결 상태 확인 가능
  • 다양한 필터링 옵션 제공
  • netstat보다 가볍고 속도 빠름

2. ss 명령어와 netstat의 차이점

항목 ss netstat
속도 빠름 느림
지원 최신 리눅스 커널 구버전 커널
필터 기능 강력함 제한적
유지보수 활발 중단됨 (비권장)
패키지 iproute2 net-tools

요약하자면, ssnetstat보다 빠르고, 정확하며, 현대적인 환경에 적합한 도구입니다.


3. ss 명령어 기본 사용법

ss [옵션]

가장 기본적인 사용 예

ss

기본적으로 시스템의 모든 연결 상태를 간략하게 보여줍니다.

TCP 연결 보기

ss -t

UDP 연결 보기

ss -u

LISTEN 중인 소켓 보기

ss -l

모든 소켓 상세히 보기

ss -a

4. 상황별 ss 명령어 실전 예제

4.1 현재 열려 있는 포트와 프로그램 확인

ss -tulnp
  • -t: TCP
  • -u: UDP
  • -l: Listen
  • -n: 포트 번호를 숫자로 표시
  • -p: 프로세스 정보 표시

4.2 특정 포트 사용 여부 확인

ss -ltn 'sport = :80'

=> 80 포트가 리슨 상태인지 확인

4.3 원격 IP와 연결된 소켓 보기

ss -o state established '( dport = :22 )'

=> 22번 포트(SSH)에 연결된 세션 확인

4.4 특정 PID의 네트워크 연결 추적

ss -p | grep 1234

=> PID가 1234인 프로세스의 소켓 조회


5. ss 명령어 출력 항목 해석법

State     Recv-Q    Send-Q     Local Address:Port     Peer Address:Port
ESTAB     0         0          192.168.0.2:ssh         192.168.0.10:57344
항목 설명
State 연결 상태 (ESTAB, LISTEN, TIME-WAIT 등)
Recv-Q 수신 큐 대기 데이터
Send-Q 송신 큐 대기 데이터
Local Address 로컬 IP 주소 및 포트
Peer Address 원격지 IP 주소 및 포트

6. ss 명령어 고급 옵션

특정 상태만 필터링

ss -o state TIME-WAIT

IPv6 연결만 보기

ss -6

TCP 연결 중 지연 시간 확인

ss -ti

소켓 통계 요약

ss -s

7. ss 명령어를 이용한 포트 확인 방법

특정 포트가 열려 있는지 확인 (예: 3306)

ss -ltn | grep ':3306'

어떤 프로세스가 포트를 사용 중인지 확인

ss -ltnp | grep 3306

MySQL, Apache, Nginx 등의 서비스 점검 시 유용하게 사용됩니다.


8. ss 명령어와 조합해서 쓰면 좋은 명령어

명령어 용도
grep 출력 필터링
awk 포맷 변환 및 통계
watch 실시간 모니터링
lsof -i 파일 단위 소켓 분석
netstat 보조 확인용 (구식)
tcpdump 패킷 캡처와 병행 사용

예: 특정 IP로 들어오는 연결 모니터링

watch -n 1 "ss -tuna | grep 203.0.113.10"

9. ss 명령어 오류 및 해결 방법

증상 원인 해결 방법
ss: command not found iproute2 미설치 sudo apt install iproute2 또는 yum install iproute
포트가 안 보임 루트 권한 부족 sudo ss로 실행
PID가 안 나옴 -p 옵션 누락 ss -p 추가
너무 많은 결과 출력 필터 미사용 grep, awk, state 등 필터링 사용

10. FAQ

Q1. ss 명령어는 모든 리눅스에서 지원되나요?

A. 대부분의 최신 리눅스 배포판(Ubuntu, CentOS, Debian 등)에서 기본 지원됩니다. 다만, 구형 시스템에서는 설치가 필요할 수 있습니다.

Q2. ss 명령어와 netstat 중 무엇을 써야 하나요?

A. netstat는 더 이상 권장되지 않습니다. ss 명령어가 훨씬 빠르고 정확합니다.

Q3. ss 명령어로 방화벽 상태를 확인할 수 있나요?

A. 직접적으로는 확인할 수 없지만, 방화벽에 의해 포트가 열리지 않은 상태는 ss 명령어를 통해 간접적으로 추정할 수 있습니다.

Q4. GUI 환경에서도 ss 명령어를 사용할 수 있나요?

A. 네, 터미널에서만 실행되는 CLI 도구이지만, Gnome Terminal, KDE Konsole 등 GUI 환경에서도 활용 가능합니다.


11. 맞춤형 요약

항목 내용
명령어 이름 ss (socket statistics)
기능 TCP/UDP/UNIX 소켓 상태 확인
장점 빠름, netstat 대체, 필터링 기능 우수
설치 위치 iproute2 패키지
주요 옵션 -tulnp, -a, -s, -p, -o state
활용 예시 포트 점검, 네트워크 상태 확인, 서비스 진단
대상 사용자 시스템 관리자, 보안 담당자, 개발자 등
주의 사항 필터링 없이 사용 시 출력 과다
반응형