반응형
목차
- ss 명령어란?
- ss 명령어와 netstat의 차이점
- ss 명령어 기본 사용법
- 상황별 ss 명령어 실전 예제
- ss 명령어 출력 항목 해석법
- ss 명령어 고급 옵션
- ss 명령어를 이용한 포트 확인 방법
- ss 명령어와 조합해서 쓰면 좋은 명령어
- ss 명령어 오류 및 해결 방법
- FAQ
- 맞춤형 요약
1. ss 명령어란?
ss는 Socket Statistics의 약자로, 리눅스에서 TCP, UDP, UNIX 소켓의 상태 정보를 출력하는 고성능 네트워크 분석 도구입니다.
기존에 널리 사용되던 netstat 명령어를 대체하기 위해 만들어졌으며, iproute2 패키지에 포함되어 있습니다.
특징
- 빠르고 효율적인 소켓 통계 조회
- 실시간 연결 상태 확인 가능
- 다양한 필터링 옵션 제공
- netstat보다 가볍고 속도 빠름
2. ss 명령어와 netstat의 차이점
| 항목 | ss | netstat |
|---|---|---|
| 속도 | 빠름 | 느림 |
| 지원 | 최신 리눅스 커널 | 구버전 커널 |
| 필터 기능 | 강력함 | 제한적 |
| 유지보수 | 활발 | 중단됨 (비권장) |
| 패키지 | iproute2 | net-tools |
요약하자면, ss는 netstat보다 빠르고, 정확하며, 현대적인 환경에 적합한 도구입니다.
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 |
| 활용 예시 | 포트 점검, 네트워크 상태 확인, 서비스 진단 |
| 대상 사용자 | 시스템 관리자, 보안 담당자, 개발자 등 |
| 주의 사항 | 필터링 없이 사용 시 출력 과다 |
반응형
'전산' 카테고리의 다른 글
| # PostgreSQL에서 Archive 삭제하기: 안전하고 효율적인 방법 정리 (2) | 2025.07.28 |
|---|---|
| # 리눅스 lsof 명령어 사용방법: 열린 파일부터 포트 점검까지 완벽 가이드 (0) | 2025.05.19 |
| # SKT BPFDoor: 리눅스 백도어의 실체와 대응 전략 (0) | 2025.05.19 |
| # NHN 클라우드 Cloud Native 알아보기 (0) | 2025.05.16 |
| # NHN 클라우드 쿠버네티스 리소스 오브젝트 개념 익히기 (0) | 2025.05.16 |