Internet과 Server 환경에서 Computer가 서로 통신하기 위해서는 단순히 IP Address만으로는 부족합니다.
하나의 Server에서는 Web Server, Database Server, SSH Server 등 여러 Service가 동시에 실행될 수 있기 때문입니다.
이때 각각의 Application을 구분하고 연결하기 위해 사용하는 것이 Port입니다.
기본 구조:
Client↓IP Address↓Port Number↓Application Service↓Server
Port는 Network 통신에서 특정 Service를 찾아가는 연결 번호 역할을 합니다.
| 구성 요소 | 역할 |
|---|---|
| IP Address | Server 위치 식별 |
| Port Number | Service 구분 |
| TCP/UDP | 통신 방식 |
| Socket | 통신 Endpoint |
| Application | 실제 서비스 제공 |
Port 구조를 이해하면 Linux Server, Cloud Network, Docker, Kubernetes 환경에서 Service 연결 구조를 이해할 수 있습니다.
Port란?
Port는 하나의 Server에서 실행되는 여러 Application을 구분하기 위한 논리적인 통신 번호입니다.
예:
하나의 Server:
Server IP192.168.1.10ServiceWeb Server → Port 80HTTPS → Port 443SSH → Port 22DNS → Port 53
같은 IP Address를 사용하지만 Port 번호를 통해 서로 다른 Service와 연결됩니다.
IP Address와 Port 관계
IP Address는 Server 위치를 나타내고 Port는 해당 Server 내부의 Service 위치를 나타냅니다.
구조:
IP Address+Port Number↓Application Connection
예:
192.168.1.10:443
의미:
- 192.168.1.10 → Server 주소
- 443 → HTTPS Service
Port Number 범위
Port는 0부터 65535까지 사용할 수 있습니다.
구분:
| 범위 | 이름 | 특징 |
|---|---|---|
| 0~1023 | Well Known Port | 대표 Service 사용 |
| 1024~49151 | Registered Port | 등록 Application 사용 |
| 49152~65535 | Dynamic Port | 임시 연결 사용 |
Well Known Port란?
Well Known Port는 인터넷에서 널리 사용되는 표준 Port입니다.
대표:
| Port | Protocol | Service |
|---|---|---|
| 20 | TCP | FTP Data |
| 21 | TCP | FTP Control |
| 22 | TCP | SSH |
| 23 | TCP | Telnet |
| 25 | TCP | SMTP |
| 53 | TCP/UDP | DNS |
| 80 | TCP | HTTP |
| 443 | TCP | HTTPS |
Server 운영에서 가장 자주 확인하는 Port입니다.
Port 80이란?
Port 80은 HTTP Web Service에서 사용하는 기본 Port입니다.
구조:
Browser↓TCP 80↓Web Server↓HTTP Response
사용:
- 일반 Web Site
- HTTP API
- Web Application
예:
http://example.com
기본적으로 Port 80을 사용합니다.
Port 443이란?
Port 443은 HTTPS 통신에서 사용하는 Port입니다.
구조:
Browser↓TCP 443↓SSL/TLS Encryption↓Web Server
특징:
- 데이터 암호화
- 인증서 사용
- 보안 Web 통신
현재 대부분의 Web Service는 HTTPS 기반으로 운영됩니다.
Port 22란?
Port 22는 SSH(Secure Shell) 통신에 사용하는 Port입니다.
구조:
Administrator↓TCP 22↓SSH Server↓Linux Server
활용:
- 원격 Server 접속
- Linux 관리
- SFTP 파일 전송
Linux Server 운영에서 가장 중요한 Port 중 하나입니다.
Port 53이란?
Port 53은 DNS 서비스에서 사용하는 Port입니다.
구조:
Client↓UDP 53↓DNS Server↓IP Address 반환
DNS Query는 일반적으로 UDP 53을 사용합니다.
TCP Port와 UDP Port 차이
같은 Port 번호라도 TCP와 UDP는 별개의 통신 방식입니다.
예:
DNS:
UDP 53TCP 53
차이:
| 구분 | TCP Port | UDP Port |
|---|---|---|
| 연결 | 필요 | 없음 |
| 신뢰성 | 높음 | 낮음 |
| 속도 | 느림 | 빠름 |
| 사용 | Web, SSH | DNS, Streaming |
Linux에서 열린 Port 확인 방법
Server에서 현재 사용 중인 Port를 확인할 수 있습니다.
ss 명령어
ss -tulnp
확인:
- Listening Port
- Protocol
- Process
예:
LISTEN0.0.0.0:80nginx
netstat으로 Port 확인
기존 Linux 환경에서는 netstat도 많이 사용합니다.
netstat -tulnp
확인:
- TCP Port
- UDP Port
- Service Process
특정 Port 연결 테스트
telnet 사용
telnet server-ip 443
Port 연결 가능 여부를 확인합니다.
nc(Netcat) 사용
nc-zv server-ip 80
Network 연결 테스트에 활용됩니다.
Firewall과 Port 관계
Firewall은 특정 Port 접근을 허용하거나 차단합니다.
구조:
Client↓Firewall↓Port Rule 확인↓Server Service
예:
HTTP 허용:
Allow TCP 80
HTTPS 허용:
Allow TCP 443
Port 장애 분석 방법
Service 접속 문제가 발생하면 Port부터 확인해야 합니다.
분석 순서:
Client 접속 실패↓DNS 확인↓IP 확인↓Port 확인↓Firewall 확인↓Application 확인
Connection Refused 원인
Port는 접근 가능하지만 Service가 실행되지 않은 상태입니다.
구조:
Client↓Server 도착↓Port Closed↓Connection Refused
확인:
ss -tulnp
Connection Timeout 원인
Server 응답 자체가 없는 상태입니다.
원인:
- Firewall 차단
- Network 장애
- Routing 문제
확인:
tcpdump
Docker와 Port Mapping
Container 환경에서는 Port Mapping을 사용합니다.
구조:
User↓Host Port↓Container Port↓Application
예:
docker run -p8080:80 nginx
의미:
- Host Port 8080
- Container Port 80
Kubernetes와 Port 구조
Kubernetes에서는 여러 Port 개념이 사용됩니다.
구조:
User↓Service Port↓Target Port↓Container Port
종류:
| Port | 역할 |
|---|---|
| Container Port | Application 실행 Port |
| Target Port | Pod 연결 Port |
| Service Port | 외부 접근 Port |
Cloud 환경의 Port 관리
Cloud에서는 Firewall 대신 Security Group으로 Port를 관리합니다.
구조:
User↓Security Group↓Load Balancer↓Server
예:
허용:
- TCP 443
- TCP 22
차단:
- 불필요한 Port
Port Security Best Practice
권장:
- 사용하지 않는 Port 차단
- SSH 접근 제한
- HTTPS 사용
- Firewall 정책 관리
- Port 문서화
불필요한 Network 접근을 줄일 수 있습니다.
Port 번호와 Server Architecture
전체 구조:
User↓IP Address↓Port Number↓Service↓Application
Port는 Server 내부 Service를 연결하는 핵심 요소입니다.
자주 묻는 질문
Port 80과 443 차이는 무엇인가요?
Port 80은 HTTP 통신이고 Port 443은 HTTPS 암호화 통신입니다.
SSH Port는 왜 22번인가요?
SSH Protocol의 기본 표준 Port가 22번으로 지정되어 있기 때문입니다.
Port를 변경하면 보안이 강화되나요?
Port 변경은 일부 자동화 공격을 줄이는 효과는 있지만 근본적인 보안 방법은 아닙니다.
Firewall, 인증, 접근 제어가 함께 필요합니다.
마무리
Port는 Network 통신에서 Server 내부 Service를 구분하는 핵심 요소입니다.
IP Address가 Server 위치를 찾는 역할이라면 Port는 해당 Server 안의 Application을 찾는 역할을 합니다.
| 구성 요소 | 역할 |
|---|---|
| IP Address | Server 위치 |
| Port Number | Service 구분 |
| TCP/UDP | 통신 방식 |
| Firewall | 접근 제어 |
| Application | 서비스 제공 |
Port 구조를 이해하면 Linux Server, Docker, Kubernetes, Cloud Network 환경에서 발생하는 연결 문제를 효과적으로 분석하고 안정적인 Infrastructure를 설계할 수 있습니다.