잘 알려진 포트 (웰노운포트, Well-Known Port)
업데이트:
포트는 무엇인가?
포트는 TCP 혹은 UDP 통신(OIS 7계층 중 전송 계층)에서 사용하는 개념이다. 하드웨어와 하드웨어를 연결하는 물리 인터페이스(USB포트, LAN 포트 등)를 의미하는 경우도 있으나, 소프트웨어 개발자 관점에서 포트란 이보다는 네트워크 서비스 혹은 프로그램을 구별하는 일종의 단위 개념에 더 가깝다.
이러한 전송 계층 네트워크 서비스 식별 단위를 포트라고 부르며 각각의 포트는 번호로 구별하여 부른다.
따라서 포트 번호는 코딩테스트나 네트워크 통신이 없는 간단한 프로그래밍에서는 알지 못 하더라도 문제가 없는 개념이다. 하지만 웹 서비스 프로젝트를 하고 서버를 다루게 된다면 OIS 7계층과 함께 필수적으로 외워야 하는 일종의 상식이나 다름없다.
포트 번호 종류
포트 번호는 크게 세 그룹으로 나눌 수 있다. 국제 인터넷 주소 관리기구와 인터넷 할당 번호 관리 기관이 분류하였으며 권고안에 가깝기 때문에 강제성을 띄지는 않는다.
- 0 ~ 1023: 잘 알려진 포트 (well-known port)
- 1024 ~ 49151: 등록된 포트 (registered port)
- 49152 ~ 65535: 동적 포트 (dynamic port)
잘 알려진 포트는 SSH, FTP, HTTP 등 널리 사용되는 특정 프로토콜 통신을 할당 한 포트들이며, 등록된 포트는 기업에서 등록하여 사용하고 있는 포트이다. 동적 포트는 특별한 용도가 지정되지 않은 포트이며, 어느 프로그램에서나 사용하는 포트 번호 구간이다.
잘 알려진 포트 목록
다음은 잘 알려진 포트 중에서도 자주 사용되거나 알아두어야 하는 포트 번호와 프로토콜을 정리한 표이다.
포트 번호 | 프로토콜 | TCP/UDP |
---|---|---|
20 | FTP 데이터 | TCP |
21 | FTP 제어 | TCP |
22 | SSH | TCP |
23 | Telnet | TCP |
25 | SMTP(Simple Mail Transfer Protocol) | TCP |
53 | DNS | TCP/UDP |
80 | HTTP | TCP/UDP |
110 | POP3 | TCP |
111 | RPC | TCP/UDP |
139 | 넷바이오스 | TCP |
143 | IMAP4 | TCP |
220 | IMAP3 | TCP |
443 | HTTPS | TCP |
445 | SMB | UDP |
등록된 포트 목록
등록된 포트 목록에서도 알아두어야 할 번호들이 있다. 주로 기업이나 단체에서 제공하는 서비스나 라이브러리, 프레임워크 등에서 사용하는 포트들이다.
포트 번호 | 프로토콜 |
---|---|
3000 | Node.JS |
3306 | MySQL |
3389 | 마이크로소프트 원격 데스크톱 |
8000 | 많은 개발서버의 기본 포트번호 |
8080 | HTTP Alt (80포트 대체), Tomcat |
로컬호스트에서의 포트 번호 사용
IP 주소 127.0.0.1, 호스트명 localhost인 루프백을 이용한 테스트 서버에서는 이러한 포트 번호를 준수해야 할 중요도가 떨어지는 편이다.
그러나 서버 개발을 위해서는 웰노운포트는 어느정도 외우고 있는것이 좋으며 외부 배포용 서버에서는 포트 번호 권고안을 준수하는것이 중요할 것이다.