리눅스 포트 확인 방법 ss, netstat, lsof
리눅스 서버 운영 중 가장 자주 확인해야 하는 작업 중 하나가 특정 포트가 열려 있는지, 어떤 프로세스가 해당 포트를 사용하고 있는지 파악하는 일입니다. 특히 서비스 접속 오류나 방화벽 문제를 점검할 때 필수적으로 수행됩니다. 이 글에서는 ss
, netstat
, lsof
명령어를 활용하여 포트 상태를 확인하는 방법을 상세히 다루겠습니다.
1. ss 명령어로 포트 확인
ss
는 최신 리눅스 배포판에서 권장되는 네트워크 상태 확인 도구입니다. 속도가 빠르고 출력이 직관적입니다.
열린 포트 전체 확인
ss -tuln
- -t
: TCP 연결
- -u
: UDP 연결
- -l
: LISTEN 상태
- -n
: 도메인 대신 숫자로 출력
특정 포트 검색
ss -lntp | grep 8080
위 명령어는 8080 포트가 열려 있는지와 해당 포트를 점유한 프로세스를 함께 확인합니다. 서비스 동작 여부를 빠르게 파악할 수 있습니다.
2. netstat 명령어로 포트 확인
netstat
은 오래된 명령어지만 여전히 많이 사용됩니다. 일부 배포판에서는 별도의 패키지 설치가 필요할 수 있습니다.
전체 포트 확인
netstat -tuln
옵션 의미는 ss
와 유사하며, TCP/UDP 연결 상태를 확인할 수 있습니다.
프로세스와 함께 확인
netstat -tulnp | grep 22
22번 포트를 사용하는 프로세스를 확인할 수 있습니다. 보안 점검 시 유용합니다.
3. lsof 명령어로 포트 확인
lsof
는 파일과 프로세스의 관계를 확인하는 도구이지만, 포트 점유 프로세스를 확인하는 데도 자주 사용됩니다.
특정 포트 확인
lsof -i :3306
위 예시는 3306번 포트를 사용하는 프로세스를 출력합니다. 주로 데이터베이스 서버 점검 시 활용됩니다.
4. 실전 활용
웹 서버 접속이 되지 않는 상황을 가정해봅니다. 먼저 ss -lntp | grep 80
명령으로 80번 포트가 열려 있는지 확인합니다. 열려 있지 않다면 웹 서버 서비스가 비정상 종료된 경우일 수 있으며, 이때 systemctl status httpd
또는 systemctl status nginx
를 확인해야 합니다. 만약 포트가 열려 있는데도 접속이 안 된다면 방화벽 설정을 점검해야 하며, firewall-cmd --list-all
명령어로 규칙을 확인할 수 있습니다.
리눅스 서버에서 포트 확인은 문제 해결의 출발점입니다. ss
는 빠르고 직관적인 최신 명령어이며, netstat
과 lsof
는 상황에 따라 여전히 유용합니다. 서버 관리자는 세 가지 방법을 모두 익혀두는 것이 안정적인 운영에 큰 도움이 됩니다.