Linux / 명령어 / ss - 열린 포트와 소켓 연결 상태 확인
ss는 TCP·UDP 소켓의 수신 대기 포트와 연결 상태를 보여 줍니다. 서비스가 어느 주소에서 듣고 있는지, 연결이 실제로 성립했는지 조사할 때 사용합니다.
ss 명령어란?
옵션 없이 실행하면 일반적으로 연결된 비수신 소켓이 표시됩니다. 서버 포트 점검에는 -l로 수신 소켓을 포함하고, -t·-u로 프로토콜을 제한합니다. -p는 연결 프로세스 정보를 표시하지만 다른 사용자의 정보에는 권한이 필요할 수 있습니다.
기본 문법
ss [옵션] [필터]
설치된 구현과 옵션은 배포판에 따라 다를 수 있습니다. man ss으로 현재 시스템의 설명을 확인하세요.
사용 예제
TCP 수신 포트
숫자 주소·포트로 서비스의 대기 상태를 확인합니다.
ss -ltn
TCP·UDP 수신 포트와 프로세스
어떤 프로세스가 포트를 사용하는지 확인합니다. 필요한 경우 sudo를 사용합니다.
sudo ss -ltnup
특정 포트의 연결
예시 포트 22에 해당하는 연결을 필터링합니다.
ss -tn '( sport = :22 or dport = :22 )'
리스닝 소켓을 어떻게 읽을까?
ss -ltn은 TCP(-t)에서 연결을 기다리는(-l) 소켓을 숫자 주소·포트(-n)로 보여줍니다.
ss -ltn
예시 출력의 일부(주소와 큐 크기는 환경마다 다름):
State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 0.0.0.0:22 0.0.0.0:*
0.0.0.0:22는 모든 IPv4 로컬 주소의 22번 포트에서 기다린다는 뜻입니다. 소켓이 리스닝 중이라는 사실만으로 방화벽이나 외부 네트워크에서 접속할 수 있다고 결론 내릴 수는 없습니다. 프로세스 이름은 -p로 볼 수 있지만 권한에 따라 일부가 숨겨집니다.
127.0.0.1:포트에만 바인딩된 서비스는 같은 컴퓨터에서는 접속되더라도 외부 인터페이스에서 바로 접근할 수 없습니다. 0.0.0.0에 바인딩됐더라도 방화벽이나 보안 그룹이 차단할 수 있습니다. 포트 충돌을 조사할 때는 권한이 허용되면 ss -ltnp로 소유 프로세스를 확인하세요.
주요 옵션과 형식
| 옵션·형식 | 설명 |
|---|---|
-l |
수신 대기 소켓을 표시합니다. |
-t / -u |
TCP 또는 UDP 소켓을 선택합니다. |
-n |
주소와 포트를 숫자로 표시합니다. |
-p |
소켓을 사용하는 프로세스 정보를 표시합니다. |
-a |
수신·비수신 소켓을 모두 포함합니다. |
-s |
프로토콜별 소켓 요약을 표시합니다. |
사용할 때 주의할 점
서비스가 127.0.0.1에서만 듣는다면 외부에서 연결할 수 없고, 0.0.0.0에서 듣는다고 방화벽까지 열렸다는 뜻도 아닙니다. UDP는 TCP 같은 연결 상태가 없습니다. -p의 프로세스 정보가 비면 권한을 확인하세요.
자주 묻는 질문
ss에 포트가 보이는데 외부에서 접속이 안 되는 이유는?
수신 주소가 루프백인지, 방화벽·라우팅·클라우드 보안 규칙이 허용하는지 별도로 확인해야 합니다.
공식 문서
옵션의 정확한 동작과 구현별 차이는 ss 관련 공식 문서에서 확인할 수 있습니다.









