포트 확인 — 서버 접속이 막힐 때 먼저 보는 3가지 - Tooly 가이드

2026. 03. 22

포트 확인 — 서버 접속이 막힐 때 먼저 보는 3가지

SSH, 메일, 데이터베이스 접속이 안 될 때 포트가 실제로 열려 있는지 외부에서 확인하는 방법을 정리했습니다. 22, 80, 443, 3306처럼 자주 쓰는 포트와 AWS·GCP·VPS 방화벽 점검 순서까지 확인하세요.


서버는 살아 있는데 SSH가 안 붙고, 웹사이트는 열리는데 데이터베이스 접속만 실패할 때가 있습니다. 이럴 때 먼저 확인할 것은 프로그램 자체보다 포트가 외부에서 열려 있는지입니다.

포트 개방 확인 도구 바로 사용하기 →

포트는 같은 서버 안의 서비스를 구분하는 번호입니다. IP 주소가 건물 주소라면 포트는 방 번호에 가깝습니다. 웹은 보통 80번과 443번, SSH는 22번, MySQL은 3306번을 씁니다. 번호 범위는 0~65535이고, 그중 0~1023번은 잘 알려진 서비스용으로 많이 예약되어 있습니다.

포트 확인이 필요한 상황

가장 흔한 경우는 원격 접속 실패입니다. 예를 들어 VPS를 새로 만들었는데 ssh user@example.com이 계속 시간 초과된다면 22번 포트가 막혔을 수 있습니다. 웹서버를 설치했는데 브라우저에서 열리지 않는다면 80번 또는 443번을 봐야 합니다. 회사 메일 발송이 안 된다면 SMTP 포트인 25, 465, 587번을 확인합니다.

결과 해석은 세 가지로 나눌 수 있습니다.

결과 의미 다음 점검
열림 외부에서 연결 가능 서비스 설정과 로그인 정보를 확인
닫힘 서버가 연결을 거부 해당 서비스가 실행 중인지 확인
시간 초과 방화벽이나 네트워크에서 차단 클라우드 보안 그룹과 OS 방화벽 확인

클라우드와 서버에서 보는 순서

포트는 한 곳만 열어서는 부족합니다. AWS EC2라면 보안 그룹의 인바운드 규칙을 먼저 보고, 그다음 서버 안의 ufwfirewalld를 봅니다. GCP는 VPC 방화벽 규칙과 인스턴스 태그가 맞는지 확인해야 합니다. 국내에서 많이 쓰는 VPS나 호스팅 서버도 운영체제 방화벽을 따로 켜 둔 경우가 많습니다.

리눅스 서버 안에서는 다음 순서가 실용적입니다.

sudo ss -tulpn
sudo ufw status
sudo systemctl status nginx

첫 명령은 실제로 수신 대기 중인 포트를 보여 줍니다. 두 번째는 방화벽 규칙을 확인합니다. 세 번째는 웹서버 같은 서비스가 실행 중인지 보는 예입니다.

보안에서 중요한 원칙

모든 포트를 열어 두는 것은 문제 해결이 아니라 위험을 키우는 일입니다. 80번과 443번처럼 공개가 필요한 포트는 전체 허용이 자연스럽지만, 22번 SSH나 3306번 MySQL은 가능한 한 내 사무실 IP처럼 특정 주소만 허용하는 편이 안전합니다.

특히 0.0.0.0/0은 전 세계 어디서나 접근 가능하다는 뜻입니다. 개발 중 잠깐 열어 둔 규칙이 그대로 남아 있으면 자동 스캐너가 계속 접속을 시도합니다. 포트 확인 도구로 열림을 확인한 뒤에는 “누구에게 열 것인가”까지 같이 정리해야 합니다.

Tooly로 따라하기

도구 화면은 영어로 표시되지만 손댈 곳은 두 칸과 버튼 하나입니다.

  1. 맨 위 Host / Domain(호스트/도메인) 칸에 확인할 주소를 넣습니다. example.com 같은 도메인이나 192.168.1.1 같은 IP 주소를 그대로 적으면 됩니다. 안내 문구(placeholder)에도 같은 예시가 흐리게 적혀 있습니다.
  2. 그 아래 Port Number(포트 번호) 칸에 확인할 번호를 넣습니다. 숫자만 받는 칸이고 1~65535 사이여야 합니다.
  3. 번호가 헷갈리면 아래 Common Ports(자주 쓰는 포트) 목록에서 골라도 됩니다. 22 SSH, 443 HTTPS, 3306 MySQL 같은 칩(작은 상자)을 누르면 포트 번호 칸이 자동으로 채워집니다.
  4. Check Port(포트 확인) 버튼을 누릅니다. 확인하는 동안 버튼 글자가 잠깐 Checking...(확인 중)으로 바뀝니다.
  5. 결과 줄을 읽습니다. Port 22 is open on example.com처럼 나오며, 열려 있으면 초록색 open 배지와 함께 Response Time(응답 시간)이 밀리초(ms) 단위로 표시됩니다. 닫혀 있으면 빨간색 closed 배지가 뜹니다.

내 PC에서 접속이 안 될 때 여기서 open으로 나오면 서버는 외부에 열려 있고 내 네트워크나 접속 설정 문제일 가능성이 큽니다. 반대로 여기서도 closed면 서버 방화벽, 클라우드 보안 그룹(클라우드가 서버 앞단에서 관리하는 방화벽 규칙), 서비스 실행 상태를 차례대로 확인하세요.

여기서 막히면

closed가 나왔는데 서버는 분명히 켜져 있다면, 그 서버에서 해당 프로그램이 실제로 실행 중이 아닌 경우가 많습니다. 예를 들어 3306번이 닫혀 있으면 MySQL이 아직 시작되지 않았거나 외부 접속을 막아 둔 설정일 수 있습니다. 프로그램 실행 상태부터 확인하세요.

주소는 맞게 넣었는데 계속 closed만 나온다면, 그 도메인이 지금 올바른 서버를 가리키고 있는지부터 봐야 합니다. DNS 조회 도구로 A 레코드(도메인을 IPv4 주소로 연결하는 값)가 내가 확인하려는 서버 IP와 같은지 대조해 보세요. 도메인이 엉뚱한 IP를 가리키면 포트가 열려 있어도 닫힘으로 보입니다.

사이트 자체가 죽은 것인지부터 가리고 싶다면 웹사이트 상태 확인 도구로 먼저 접속 여부를 보고, 특정 포트만 따로 확인하는 편이 순서상 편합니다.

자주 묻는 질문

포트 번호를 모르면 어떻게 하나요? 화면의 Common Ports(자주 쓰는 포트) 목록을 쓰면 됩니다. SSH 원격 접속은 22, 웹은 80(HTTP)과 443(HTTPS), 데이터베이스는 MySQL 3306처럼 서비스별로 정해진 번호가 있습니다. 칩을 누르면 번호 칸이 자동으로 채워지니 외울 필요가 없습니다.

여기서 open이면 내 컴퓨터에서도 무조건 접속되나요? 그렇지는 않습니다. 이 도구는 Tooly 서버에서 외부 접속을 시도한 결과입니다. 여기서는 열려 있어도 내 회사·집 네트워크가 그 포트를 막고 있으면 내 PC에서는 안 될 수 있습니다. 이 경우 서버가 아니라 내 쪽 방화벽이나 회선을 확인해야 합니다.

내 서버의 포트가 열려 있는지 미리 확인해도 되나요? 됩니다. 다만 열려 있다고 끝이 아니라 "누구에게 열 것인가"까지 정리하는 편이 안전합니다. 22번(SSH)이나 3306번(MySQL)처럼 관리용 포트는 전 세계에 여는 대신 내 사무실 IP 같은 특정 주소만 허용하는 것이 좋습니다.

관련해서 사이트 자체가 죽은 것인지 확인해야 한다면 사이트 접속 안 될 때 확인법도 함께 보면 좋습니다.

목록