기술 · 출처 기반 답변
587 포트가 열려 있는지 확인하는 방법
telnet, netcat, PowerShell 같은 명령줄 도구로 SMTP 서버에 연결을 시도하면 587 포트가 열려 있는지 확인할 수 있습니다. 연결에 성공하면 서버는 보통 220 인사 코드로 응답하며, 이는 포트가 열려 있고 메일 제출 연결을 받아들이고 있음을 뜻합니다.
Telnet으로 연결 테스트하기
Telnet은 TCP 연결을 테스트하는 표준 도구입니다. 터미널에서 telnet smtp.example.com 587 명령을 실행하세요. 화면이 비어 있거나 서버 인사말이 표시되면 포트가 열려 있는 것입니다. 연결 거부 또는 타임아웃 오류가 나오면 포트가 닫혀 있거나 방화벽에 차단된 것입니다. Windows에서는 사용하기 전에 Windows 기능에서 telnet을 활성화해야 할 수 있습니다.
Linux와 macOS에서 Netcat(nc) 사용하기
Netcat은 네트워크 디버깅을 위한 강력한 유틸리티입니다. nc -zv smtp.example.com 587 명령을 사용하세요. z 플래그는 데이터를 보내지 않고 수신 대기 중인 데몬이 있는지 스캔하도록 하고, v 플래그는 상세 출력을 활성화합니다. 성공하면 해당 포트에 대한 연결이 성공했다고 명시적으로 출력되고, 실패하면 연결 타임아웃이나 거부가 표시됩니다.
Windows에서 PowerShell 사용하기
telnet이 없는 Windows 사용자는 PowerShell의 Test-NetConnection cmdlet을 사용할 수 있습니다. Test-NetConnection -ComputerName smtp.example.com -Port 587을 실행하세요. 출력에는 TcpTestSucceeded의 불리언 값이 포함됩니다. 이 값이 True이면 587 포트가 열려 있습니다. 이 방법은 네트워크 경로에 대한 상세한 진단 정보를 제공하므로 최신 Windows 환경에서 권장됩니다.
차단된 포트 문제 해결
587 포트가 닫혀 있다면 로컬 방화벽 설정과 ISP 제한을 확인하세요. 많은 가정용 ISP는 스팸을 막기 위해 발신 메일 포트를 차단합니다. SendHQ 또는 무료 도구(https://sendhq.cc/tools)로 외부 구성을 확인해 메일 서버가 공용 인터넷에서 접근 가능한지 점검할 수 있습니다. 클라우드 제공업체의 보안 그룹이 TCP 587 발신 트래픽을 허용하는지도 확인하세요.
587 포트와 STARTTLS 이해하기
587 포트는 메일 제출을 위한 표준 포트입니다. 암시적 TLS를 사용하는 465 포트와 달리 587 포트는 평문 연결로 시작해 STARTTLS 명령으로 보안 연결로 업그레이드합니다. 그래서 단순한 TCP 확인으로는 포트가 열려 있다는 것만 알 수 있고, 암호화가 제대로 작동하는지 확인하려면 전체 SMTP 핸드셰이크가 필요합니다.
팀에서 자주 묻는 질문
25번 포트와 587번 포트의 차이는 무엇인가요?
25번 포트는 주로 서버 간 릴레이에 사용하고, 587번 포트는 클라이언트에서 서버로의 메일 제출을 위해 지정된 포트입니다.
587 포트에서 연결이 타임아웃되는 이유는 무엇인가요?
타임아웃은 보통 방화벽이 패킷을 버리고 있다는 뜻입니다. 로컬 OS 방화벽, 네트워크 라우터, 클라우드 보안 그룹 규칙을 확인하세요.
telnet 연결에 성공하면 이메일이 발송된다는 뜻인가요?
아니요. TCP 포트가 열려 있다는 것만 확인할 뿐입니다. 이메일을 성공적으로 보내려면 유효한 인증과 올바른 SMTP 명령이 여전히 필요합니다.
587 포트는 안전한가요?
587 포트는 STARTTLS와 함께 사용하면 안전합니다. STARTTLS는 최초 연결이 이루어진 후 통신을 암호화합니다.
1차 출처
- 서비스 이름 및 전송 프로토콜 포트 번호 레지스트리 — IANA
- RFC 3207: 전송 계층 보안(TLS) 기반 보안 SMTP를 위한 SMTP 서비스 확장 — RFC Editor
- RFC 8314: SMTP 이후 이메일 프로토콜의 평문 관련 고려 사항 — RFC Editor