본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

소켓(socket)의 상태와 통계 정보를 출력한다.

  • netstat을 대체하는 도구로, 커널에서 직접 정보를 가져오므로 netstat보다 빠르다.
  • 경로 : /usr/sbin/ss
  • 패키지 : iproute
$ ss [옵션] [필터]
  • -t, --tcp : TCP 소켓을 출력한다.
  • -u, --udp : UDP 소켓을 출력한다.
  • -x, --unix : 유닉스 도메인 소켓을 출력한다.
  • -w, --raw : RAW 소켓을 출력한다.
  • -l, --listening : 연결을 기다리는(LISTEN) 소켓만 출력한다.
  • -a, --all : 대기 중인 소켓과 연결된 소켓을 모두 출력한다.
  • -n, --numeric : 서비스 이름을 포트 번호로 바꾸지 않고 숫자로 출력한다.
  • -r, --resolve : 주소와 포트를 이름으로 변환하여 출력한다.
  • -p, --processes : 소켓을 사용하는 프로세스 이름과 PID를 출력한다. 다른 사용자의 프로세스를 보려면 root 권한이 필요하다.
  • -s, --summary : 소켓 유형별 요약 통계를 출력한다.
  • -e, --extended : 소켓의 UID, inode 등 확장 정보를 출력한다.
  • -o, --options : 타이머 정보를 출력한다.
  • -4, --ipv4 / -6, --ipv6 : IPv4 또는 IPv6 소켓만 출력한다.
  • state 상태 : 소켓 상태로 걸러낸다. established, listening, syn-sent, time-wait, close-wait 등을 쓴다.
  • sport / dport : 출발지·목적지 포트로 걸러낸다. (예: '( dport = :22 or sport = :22 )')
  • src / dst : 출발지·목적지 주소로 걸러낸다.
# 대기 중인 TCP·UDP 포트와 해당 프로세스를 숫자로 출력한다. (가장 많이 쓰는 형태)
# ss -tunlp

# 현재 연결이 성립된(ESTABLISHED) TCP 연결만 출력한다.
$ ss -t state established

# 22번 포트와 관련된 TCP 소켓만 출력한다.
$ ss -tan '( dport = :22 or sport = :22 )'

# 소켓 요약 통계를 출력한다.
$ ss -s

# 80번 포트를 사용 중인 프로세스를 찾는다.
# ss -tlnp | grep ':80 '
  • netstat -tunlp와 같은 옵션 조합(ss -tunlp)으로 열린 포트와 서비스를 확인하는 문제가 자주 나온다.
  • ss는 iproute 패키지, netstat은 net-tools 패키지에 속한다.
  • -p 옵션은 프로세스 정보, -n은 숫자 출력, -l은 LISTEN 상태만이라는 의미를 구분해야 한다.