우분투(Ubuntu)에서 현재 열려 있는 포트를 사용하는 프로그램(프로세스)을 확인하는 방법

우분투(Ubuntu)에서 현재 열려 있는 포트를 사용하는 프로그램(프로세스)을 확인하는 방법은 여러 가지가 있습니다. 목적에 따라 간단하게 볼 수도 있고, 상세히 추적할 수도 있습니다. 아래는 대표적인 접근 방식입니다.

❏ ss 명령어
sudo ss -tulnp

옵션 설명:

  • -t : TCP 포트
  • -u : UDP 포트
  • -l : Listening 상태의 포트만 표시
  • -n : 포트 번호를 숫자로 표시 (서비스 이름 대신)
  • -p : 해당 포트를 사용하는 프로세스 정보 표시

예시 출력:

Netid  State   Local Address:Port  Peer Address:Port  Process
tcp    LISTEN  0.0.0.0:22          0.0.0.0:*          users:(("sshd",pid=1010,fd=3))
tcp    LISTEN  127.0.0.1:3306      0.0.0.0:*          users:(("mysqld",pid=2045,fd=10))

※ 여기서 pid=1010과 mysqld 등의 정보로 어떤 프로그램이 어떤 포트를 쓰는지 바로 알 수 있습니다.

포트

❏ lsof 명령어
sudo lsof -i -P -n

주요 옵션:

  • -i : 네트워크 관련 파일(즉, 포트 사용)만 표시
  • -P : 포트 번호를 그대로 표시 (서비스 이름으로 변환 안 함)
  • -n : IP를 도메인으로 변환하지 않음

특정 포트만 확인:

sudo lsof -i :80

※ 80번 포트를 사용하는 프로세스가 어떤 것인지 바로 알 수 있습니다.

PORT

❏ netstat (구버전)
sudo netstat -tulnp

이 명령어는 ss와 거의 동일한 역할을 하지만, 최신 Ubuntu에서는 기본으로 설치되어 있지 않을 수 있습니다. 필요 시 다음으로 설치 가능합니다.

sudo apt install net-tools

▣ 추가: 포트/프로세스 추적 예시

특정 포트 번호로 PID를 찾고, 어떤 서비스인지 구체적으로 확인하고 싶다면:

sudo ss -ltnp | grep ':8080'

출력 예:

LISTEN 0 128 0.0.0.0:8080  0.0.0.0:*  users:(("nginx",pid=1523,fd=6))

이후 상세 정보:

ps -p 1523 -o pid,cmd

출력:

PID   CMD
1523  nginx: master process /usr/sbin/nginx -g daemon off;

▣ 정리
목적명령어비고
빠르게 전체 포트 확인sudo ss -tulnp최신 시스템 권장
특정 포트 점검sudo lsof -i :포트번호포트 기반 검색
상세 프로세스 확인ps -p PID -o pid,cmdss/lsof와 병행
구버전 호환sudo netstat -tulnp별도 설치 필요