서버를 공부하다 보면 IP 주소와 함께 포트 번호라는 용어를 자주 접하게 됩니다. 처음 서버와 네트워크를 접하는 사람에게는 IP 주소도 낯선데 포트 번호까지 등장하면 더욱 어렵게 느껴질 수 있습니다.
하지만 서버 포트의 개념은 생각보다 간단합니다.
IP 주소가 네트워크에서 특정 서버를 찾기 위한 주소라면, 포트 번호는 해당 서버에서 어떤 서비스와 통신할 것인지 구분하기 위한 번호라고 이해하면 됩니다.
예를 들어 하나의 서버에서 웹사이트, 데이터베이스, 파일 전송 등의 여러 서비스를 동시에 운영할 수 있습니다. 이때 각각의 서비스를 구분하기 위해 포트 번호가 사용됩니다.
이번 글에서는 서버 포트란 무엇인지 알아보고, 포트 번호가 필요한 이유, 80번 포트와 443번 포트의 차이, 22번 포트와 같은 대표적인 서버 포트, 포트를 열고 닫는다는 의미, 방화벽과 포트의 관계까지 서버를 처음 공부하는 사람도 이해하기 쉽게 설명해 보겠습니다.
서버 포트란 무엇인가?
서버 포트는 네트워크를 통해 특정 서비스를 구분하기 위해 사용하는 번호입니다.
컴퓨터 한 대에는 여러 가지 네트워크 프로그램이나 서비스가 실행될 수 있습니다. 예를 들어 하나의 서버에서 웹사이트를 운영하면서 동시에 원격 접속 서비스나 데이터베이스 서비스를 실행할 수도 있습니다.
이때 사용자의 요청이 어떤 서비스로 전달되어야 하는지 구분할 필요가 있습니다.
IP 주소가 서버 자체를 찾는 역할을 한다면 포트 번호는 서버 안에서 특정 서비스를 찾는 역할을 한다고 생각하면 쉽습니다.
예를 들어 다음과 같이 생각할 수 있습니다.
IP 주소 = 건물 주소
포트 번호 = 건물 안의 특정 창구
사용자가 특정 서버에 접속하려면 먼저 어느 서버에 접속할 것인지 IP 주소를 확인해야 합니다. 그리고 해당 서버에서 어떤 서비스와 통신할 것인지 포트 번호를 이용해 구분하게 됩니다.
따라서 서버 네트워크를 이해하기 위해서는 IP 주소와 포트 번호를 함께 이해하는 것이 중요합니다.
IP 주소와 포트 번호의 관계
IP 주소와 포트 번호는 서로 다른 역할을 담당합니다.
예를 들어 다음과 같은 주소가 있다고 가정해 보겠습니다.
192.0.2.10:80
여기에서 192.0.2.10은 IP 주소이고 80은 포트 번호입니다.
IP 주소를 통해 어느 서버와 통신할 것인지 확인하고, 포트 번호를 통해 해당 서버의 어떤 네트워크 서비스와 통신할 것인지 구분할 수 있습니다.
따라서 서버에 접근할 때는 단순히 IP 주소만 알고 있다고 해서 모든 서비스에 접근할 수 있는 것은 아닙니다.
서버에서 특정 포트가 열려 있고 해당 포트에서 서비스가 정상적으로 실행되고 있어야 통신이 가능합니다.
포트 번호는 어떻게 구성될까?
일반적으로 TCP와 UDP에서는 0부터 65535까지의 포트 번호를 사용할 수 있습니다.
포트 번호는 크게 여러 범위로 나누어 생각할 수 있습니다.
0번부터 1023번까지는 잘 알려진 포트 번호로 사용되는 경우가 많습니다.
1024번부터 49151번까지는 등록된 포트 번호 영역으로 볼 수 있습니다.
49152번부터 65535번까지는 동적 또는 사설 용도로 사용되는 포트 영역입니다.
다만 실제 시스템에서 포트를 사용하는 방식은 운영체제와 프로그램, 네트워크 환경에 따라 달라질 수 있습니다.
서버를 처음 공부할 때는 모든 포트 번호를 외우려고 하기보다는 대표적으로 사용되는 포트의 용도부터 이해하는 것이 좋습니다.
80번 포트란 무엇인가?
서버 포트 중에서 가장 많이 들어본 번호 중 하나가 80번 포트입니다.
80번 포트는 일반적으로 HTTP 통신에 사용되는 기본 포트입니다.
HTTP는 웹브라우저와 웹서버가 웹페이지 등의 데이터를 주고받기 위해 사용하는 프로토콜입니다.
사용자가 웹사이트 주소를 입력하면 브라우저는 웹서버와 통신하여 필요한 데이터를 요청합니다.
HTTP를 기본 방식으로 사용하는 경우 일반적으로 80번 포트가 사용됩니다.
예를 들어 다음과 같이 생각할 수 있습니다.
http://example.com
이 경우 기본적으로 HTTP의 80번 포트를 이용하여 통신하게 됩니다.
물론 웹서버를 반드시 80번 포트에서 실행해야 하는 것은 아닙니다. 서버 설정에 따라 다른 포트 번호를 사용할 수도 있습니다.
하지만 HTTP의 기본 포트가 80번이라는 점은 서버와 네트워크를 공부할 때 알아두면 좋은 기본 지식입니다.
443번 포트란 무엇인가?
443번 포트는 HTTPS 통신에서 일반적으로 사용되는 기본 포트입니다.
HTTPS는 HTTP에 보안 기능을 적용한 웹 통신 방식입니다.
오늘날 대부분의 웹사이트에서는 HTTPS를 사용하는 것이 일반적입니다.
사용자가 웹브라우저에서 HTTPS 방식으로 웹사이트에 접속하면 일반적으로 443번 포트를 이용하여 서버와 통신합니다.
예를 들어 다음과 같은 주소를 생각할 수 있습니다.
HTTPS에서는 TLS를 이용하여 통신 내용을 보호합니다.
따라서 HTTP와 HTTPS의 가장 큰 차이 중 하나는 데이터 전송 과정에서 보안 기능을 제공한다는 점입니다.
웹사이트 주소창에 자물쇠 아이콘이 표시되는 것도 HTTPS 연결과 관련이 있습니다.
결론적으로 80번 포트는 일반적으로 HTTP에 사용되고, 443번 포트는 일반적으로 HTTPS에 사용된다고 이해하면 됩니다.
80번 포트와 443번 포트의 차이
80번 포트와 443번 포트는 웹서버에서 매우 자주 사용되는 포트입니다.
가장 간단하게 정리하면 다음과 같습니다.
80번 포트 = HTTP
443번 포트 = HTTPS
HTTP는 기본적으로 암호화되지 않은 웹 통신 방식입니다.
반면 HTTPS는 TLS를 이용하여 통신 내용을 보호합니다.
따라서 로그인, 결제, 회원가입 등 중요한 정보를 처리하는 웹사이트에서는 HTTPS 사용이 중요합니다.
최근에는 일반적인 웹사이트에서도 HTTPS를 사용하는 경우가 매우 많기 때문에 서버를 구축하거나 웹사이트를 운영한다면 443번 포트와 HTTPS의 관계를 이해하는 것이 중요합니다.
22번 포트는 무엇인가?
서버를 공부할 때 22번 포트도 자주 등장합니다.
22번 포트는 일반적으로 SSH 통신에 사용됩니다.
SSH는 Secure Shell의 약자로 원격으로 서버에 접속하고 명령을 실행할 수 있도록 해주는 프로토콜입니다.
예를 들어 서버 관리자가 자신의 컴퓨터에서 원격 서버에 접속하여 명령어를 실행하거나 서버 상태를 확인할 때 SSH를 사용할 수 있습니다.
Linux 서버를 관리할 때 SSH는 매우 중요한 도구 중 하나입니다.
다만 외부 인터넷에 SSH 서비스를 공개할 때는 보안 설정을 적절하게 구성하는 것이 중요합니다.
강력한 인증 방법을 사용하고 불필요한 외부 접근을 제한하는 등의 보안 조치가 필요합니다.
53번 포트는 무엇인가?
53번 포트는 DNS와 관련된 대표적인 포트입니다.
DNS는 도메인 이름과 IP 주소 등의 정보를 조회하는 데 사용되는 시스템입니다.
일반적으로 DNS에서는 UDP 53번 포트가 많이 사용되며, 상황에 따라 TCP 53번 포트도 사용될 수 있습니다.
예를 들어 사용자가 웹브라우저에서 특정 도메인을 입력하면 해당 도메인에 대한 IP 주소를 확인하는 과정에서 DNS가 사용됩니다.
따라서 DNS와 포트의 관계를 이해하면 인터넷에서 도메인이 서버로 연결되는 과정을 이해하는 데 도움이 됩니다.
3306번 포트는 무엇인가?
3306번 포트는 MySQL이나 MariaDB 환경에서 자주 언급되는 포트입니다.
데이터베이스 서버가 특정 포트에서 연결을 받을 수 있도록 설정되어 있을 때 해당 포트 번호를 통해 데이터베이스와 통신할 수 있습니다.
예를 들어 웹 애플리케이션 서버와 데이터베이스 서버가 서로 다른 서버에서 실행되고 있다면 네트워크를 통해 데이터베이스 서버에 연결해야 합니다.
이때 데이터베이스 서비스가 사용하는 포트가 네트워크 통신에 활용됩니다.
다만 데이터베이스 포트를 인터넷에 직접 공개하는 것은 보안상 주의가 필요합니다.
가능하다면 데이터베이스는 외부 인터넷에 직접 노출하지 않고 필요한 서버에서만 접근할 수 있도록 네트워크와 방화벽을 구성하는 것이 좋습니다.
포트를 연다는 것은 무슨 의미일까?
서버를 관리하다 보면 “포트를 열어야 한다”라는 표현을 자주 듣게 됩니다.
그렇다면 포트를 연다는 것은 정확히 어떤 의미일까요?
일반적으로 서버에서 특정 포트로 들어오는 네트워크 연결을 허용하도록 설정하는 것을 의미합니다.
예를 들어 웹서버에서 HTTPS 서비스를 제공하려면 외부 사용자가 서버의 443번 포트로 접근할 수 있어야 합니다.
하지만 서버에서 프로그램이 실행되고 있다고 해서 항상 외부에서 해당 포트로 접근할 수 있는 것은 아닙니다.
운영체제의 방화벽이나 네트워크 방화벽, 클라우드 보안 정책 등에서 해당 연결을 차단할 수도 있기 때문입니다.
따라서 서버에 서비스를 구축할 때는 다음과 같은 요소를 함께 확인해야 합니다.
서버 프로그램 실행 여부
서비스가 사용하는 포트 번호
운영체제 방화벽 설정
네트워크 방화벽 설정
클라우드 보안 설정
라우터 또는 NAT 설정
이러한 요소가 모두 정상적으로 구성되어야 외부에서 서버 서비스에 접근할 수 있습니다.
포트를 닫는다는 것은 무엇일까?
반대로 “포트를 닫는다”는 것은 특정 포트로 들어오는 네트워크 연결을 차단하거나 해당 서비스가 외부에서 접근하지 못하도록 제한하는 것을 의미합니다.
사용하지 않는 서비스의 포트를 외부에 노출해 놓으면 불필요한 공격 경로가 생길 수 있습니다.
따라서 서버 보안에서는 필요한 포트만 허용하고 사용하지 않는 포트나 서비스를 제한하는 것이 중요합니다.
예를 들어 데이터베이스가 서버 내부에서만 사용되는 경우 외부 인터넷에서 데이터베이스 포트에 직접 접근할 필요가 없을 수 있습니다.
이런 경우 외부 접근을 차단하고 애플리케이션 서버 등 필요한 시스템에서만 접근할 수 있도록 네트워크를 구성할 수 있습니다.
방화벽과 서버 포트의 관계
서버 포트를 이해했다면 방화벽의 역할도 함께 알아두는 것이 좋습니다.
방화벽은 네트워크를 오가는 연결을 특정 기준에 따라 허용하거나 차단하는 역할을 합니다.
예를 들어 웹사이트를 운영하는 서버라면 일반적으로 웹서비스에 필요한 포트만 외부에서 접근할 수 있도록 구성할 수 있습니다.
반면 데이터베이스나 내부 관리 서비스처럼 외부에서 직접 접근할 필요가 없는 서비스는 외부 접근을 제한할 수 있습니다.
이러한 방식으로 서버의 공격 가능 영역을 줄일 수 있습니다.
서버 보안에서는 단순히 프로그램을 설치하고 실행하는 것만큼 네트워크 접근 제어도 중요합니다.
서버에서 포트가 중요한 이유
서버에서 포트가 중요한 가장 큰 이유는 하나의 서버에서 여러 서비스를 동시에 운영할 수 있기 때문입니다.
예를 들어 하나의 서버에서 웹서비스와 SSH 서비스를 동시에 실행한다고 가정해 보겠습니다.
웹서비스는 443번 포트를 사용할 수 있고 SSH는 22번 포트를 사용할 수 있습니다.
사용자가 웹사이트에 접속할 때는 443번 포트를 이용하고, 관리자가 SSH로 서버에 접속할 때는 22번 포트를 이용하는 방식입니다.
이처럼 포트 번호를 통해 하나의 서버에서 실행되는 서로 다른 네트워크 서비스를 구분할 수 있습니다.
포트 번호를 모두 외워야 할까?
서버를 처음 공부하는 사람이라면 포트 번호를 모두 외워야 하는지 궁금할 수 있습니다.
결론부터 말하면 모든 포트 번호를 외울 필요는 없습니다.
먼저 자주 사용되는 포트의 용도부터 이해하는 것이 좋습니다.
대표적으로 다음과 같은 포트는 서버 공부를 시작할 때 알아두면 유용합니다.
21번 포트 – FTP
22번 포트 – SSH
25번 포트 – SMTP
53번 포트 – DNS
80번 포트 – HTTP
110번 포트 – POP3
143번 포트 – IMAP
443번 포트 – HTTPS
3306번 포트 – MySQL
3389번 포트 – RDP
다만 실제 서비스에서는 설정에 따라 기본 포트가 아닌 다른 포트를 사용할 수도 있으므로 포트 번호 자체만 보고 무조건 특정 서비스라고 판단해서는 안 됩니다.
서버 포트 확인이 필요한 상황
서버를 운영하다 보면 특정 서비스가 정상적으로 작동하지 않는 문제가 발생할 수 있습니다.
예를 들어 웹사이트가 정상적으로 실행되고 있다고 생각했는데 외부에서 접속되지 않는 경우가 있습니다.
이때 단순히 웹서버 프로그램만 확인해서는 문제를 찾기 어려울 수 있습니다.
다음과 같은 항목을 순서대로 확인하는 것이 좋습니다.
첫째, 서버 프로그램이 정상적으로 실행되고 있는지 확인합니다.
둘째, 해당 서비스가 어떤 포트에서 실행되고 있는지 확인합니다.
셋째, 운영체제의 방화벽 설정을 확인합니다.
넷째, 클라우드 환경이라면 보안 그룹이나 네트워크 접근 정책을 확인합니다.
다섯째, 외부 네트워크에서 해당 포트로 접근할 수 있는 구조인지 확인합니다.
이처럼 서버 장애를 해결할 때 포트 번호는 중요한 점검 항목 중 하나입니다.
포트와 보안의 관계
서버 포트는 편리한 네트워크 통신을 위해 필요하지만 보안 측면에서도 중요한 요소입니다.
외부 인터넷에 연결된 서버에서는 불필요한 서비스가 실행되고 있거나 불필요한 포트가 외부에 노출되지 않도록 관리하는 것이 좋습니다.
예를 들어 사용하지 않는 서비스가 실행되고 있다면 해당 서비스를 중지하는 방법을 고려할 수 있습니다.
또한 외부에서 접근할 필요가 없는 포트는 방화벽을 통해 접근을 제한하는 것이 좋습니다.
특히 데이터베이스나 서버 관리용 서비스는 인터넷 전체에 공개하기보다는 필요한 사용자와 네트워크에서만 접근할 수 있도록 구성하는 것이 안전합니다.
서버 보안은 하나의 설정만으로 완성되는 것이 아니라 운영체제, 애플리케이션, 네트워크, 인증, 방화벽 등 다양한 요소를 함께 관리해야 합니다.
서버 포트를 공부하면 좋은 이유
서버 포트를 이해하면 웹사이트가 서버와 어떻게 통신하는지 더욱 명확하게 이해할 수 있습니다.
예를 들어 웹사이트 접속 과정은 다음과 같이 생각할 수 있습니다.
사용자가 도메인을 입력합니다.
DNS를 통해 서버의 IP 주소를 확인합니다.
IP 주소를 통해 서버를 찾습니다.
HTTPS를 이용해 443번 포트로 연결합니다.
웹서버가 사용자의 요청을 처리합니다.
필요하다면 애플리케이션 서버와 데이터베이스 서버가 추가로 통신합니다.
이러한 과정을 이해하면 단순히 “웹사이트가 열린다”는 개념을 넘어 서버 내부에서 어떤 통신이 발생하는지 이해할 수 있습니다.
마무리
지금까지 서버 포트의 개념과 대표적인 포트 번호에 대해 알아보았습니다.
서버 포트는 네트워크를 통해 특정 서비스를 구분하기 위해 사용하는 번호입니다.
IP 주소가 서버를 찾기 위한 주소라면 포트 번호는 해당 서버에서 어떤 서비스와 통신할 것인지 구분하는 역할을 합니다.
특히 서버와 웹사이트를 공부한다면 80번 포트와 443번 포트의 차이를 알아두는 것이 좋습니다.
80번 포트는 일반적으로 HTTP에 사용되고 443번 포트는 HTTPS에 사용됩니다.
또한 22번 포트는 SSH, 53번 포트는 DNS, 3306번 포트는 MySQL 환경에서 자주 사용됩니다.
하지만 포트 번호는 단순히 외우는 것보다 각각의 포트가 어떤 서비스와 연결되어 있으며 네트워크에서 어떤 역할을 하는지 이해하는 것이 더욱 중요합니다.
서버를 운영할 때는 필요한 포트만 외부에 허용하고 사용하지 않는 서비스나 포트는 적절하게 제한하는 것이 중요합니다.
특히 방화벽과 포트의 관계를 이해하면 서버 보안과 네트워크 문제를 해결하는 데도 큰 도움이 됩니다.
서버 공부를 처음 시작했다면 IP 주소, 포트, DNS, 방화벽, HTTP, HTTPS의 관계를 순서대로 공부해 보는 것을 추천합니다.
이러한 기본 개념을 이해하면 웹서버뿐만 아니라 클라우드 서버, Linux 서버, 데이터베이스 서버 등 다양한 서버 환경을 이해하는 데 필요한 기초 지식을 갖출 수 있습니다.