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 관련 공식 문서에서 확인할 수 있습니다.

같은 카테고리의 다른 글
Linux / 명령어 / screen - 터미널 세션 유지와 관리

Linux / 명령어 / screen - 터미널 세션 유지와 관리

Linux screen 명령어로 원격 터미널 세션을 분리하고 다시 연결하는 방법을 설명합니다. 세션·창 관리, 로그 기록, 문제 해결과 nohup·tmux·systemd의 차이를 정리합니다.

Linux 강좌 / 사용자·그룹과 파일 소유권 이해하기

Linux 강좌 / 사용자·그룹과 파일 소유권 이해하기

UID, GID, 기본·추가 그룹과 파일 소유권의 의미를 설명합니다. id, groups, getent, ls, stat으로 현재 계정과 파일의 소유 정보를 안전하게 확인합니다.

Linux / 명령어 / man - 명령어 매뉴얼 확인

Linux / 명령어 / man - 명령어 매뉴얼 확인

man 명령어로 리눅스 매뉴얼을 읽고 검색하는 방법을 설명합니다. 매뉴얼 섹션, 화면 이동, 키워드 검색, 셸 내장 명령 확인과 문서가 없을 때의 해결 방법을 함께 정리합니다.

Linux / 명령어 / paste - 파일의 행을 가로로 결합

Linux / 명령어 / paste - 파일의 행을 가로로 결합

Linux paste 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.

Linux / 명령어 / basename - 경로에서 마지막 이름 추출

Linux / 명령어 / basename - 경로에서 마지막 이름 추출

Linux basename 명령어로 경로에서 마지막 파일명이나 디렉터리 이름을 추출하고 접미사를 제거하는 방법을 설명합니다. 여러 경로와 안전한 셸 스크립트 처리 방법도 정리합니다.

Linux 강좌 / 프로세스 확인·일시정지·종료하기

Linux 강좌 / 프로세스 확인·일시정지·종료하기

ps, top, pgrep으로 프로세스의 상태와 자원 사용량을 확인합니다. 실습 프로세스에 STOP, CONT, TERM을 보내고 셸 작업과 서비스의 차이를 익힙니다.

Linux / 명령어 / umount - 파일 시스템을 안전하게 분리

Linux / 명령어 / umount - 파일 시스템을 안전하게 분리

Linux umount 명령어의 기능과 기본 문법을 설명합니다. 실제 사용 예제, 주요 옵션과 작업 전 확인할 점을 알아봅니다.

Linux 강좌 / 파일 시스템 이해하기 - 절대·상대 경로와 주요 디렉터리

Linux 강좌 / 파일 시스템 이해하기 - 절대·상대 경로와 주요 디렉터리

리눅스 파일 시스템의 트리 구조와 절대·상대 경로를 이해하고, /home·/etc·/var 등 주요 디렉터리의 역할과 경로를 읽는 방법을 익힙니다.

Linux / 명령어 / resolvectl - systemd DNS 설정과 이름 조회 상태 확인

Linux / 명령어 / resolvectl - systemd DNS 설정과 이름 조회 상태 확인

Linux resolvectl 명령어의 기능과 기본 문법을 설명합니다. 실제 사용 예제, 주요 옵션과 작업 전 확인할 점을 알아봅니다.

Linux / 명령어 / bg - 중지된 셸 작업을 백그라운드에서 재개

Linux / 명령어 / bg - 중지된 셸 작업을 백그라운드에서 재개

Linux bg 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.