[PORT] 네트워크 포트(PORT)의 개념과 포트포워딩, 기본 포트 번호 정리

2025. 4. 13. 20:34·보안/보안 | 인증 전반

1. 포트(PORT)란?

**포트(PORT)**는 네트워크에서 하나의 IP 주소 내에서 실행 중인 여러 프로세스를 구분하기 위한 논리적 번호 체계입니다.
쉽게 말해, IP가 건물 주소라면 포트는 그 건물 안의 호실 번호라고 볼 수 있습니다.


2. 왜 포트가 필요한가?

한 컴퓨터(IP)에서 여러 네트워크 서비스가 동시에 운영될 수 있기 때문입니다.
포트 번호를 통해 네트워크 트래픽이 정확한 서비스나 프로세스로 라우팅됩니다.


3. 포트 번호 범위

범위 구분 설명
0 ~ 1023 Well-Known Ports 공인 포트, HTTP(80), HTTPS(443), SSH(22) 등
1024 ~ 49151 Registered Ports 사용자 등록 포트, 특정 애플리케이션용
49152 ~ 65535 Dynamic / Private Ports 클라이언트 임시 통신용 (Ephemeral)

4. TCP 포트 vs UDP 포트

  • TCP 포트: 연결 기반(신뢰성 보장), 예: HTTP, HTTPS, SSH
  • UDP 포트: 비연결 기반(빠르지만 신뢰성 없음), 예: DNS, 스트리밍

5. 포트와 방화벽/보안의 관계

  • 필요한 포트만 열기 (Whitelist 방식)
    예: 웹 서버는 80/443만 열고 나머지는 차단
  • 포트 스캐닝 방지
    공격자는 열려 있는 포트를 스캔해 취약점을 찾음 → 보안 장비나 침입 탐지 시스템(IDS) 도입 필요
  • 기본 포트 변경도 하나의 보안 기법
    예: SSH 기본 포트(22)를 2222로 변경하여 단순한 봇 공격 회피

6. 포트 포워딩(Port Forwarding)이란?

포트 포워딩은 외부에서 특정 포트로 들어온 트래픽을 내부 네트워크의 지정된 장비(IP)와 포트로 전달(포워딩) 하는 기술입니다. 주로 공인 IP가 하나뿐인 환경에서 사용됩니다.

예시:

  • 외부 접속: 203.0.113.10:8080
  • 내부 전달: 192.168.0.100:80

※ 가정용 공유기에서 많이 사용하는 개념으로, 내부 서버를 외부에서 접근할 수 있도록 설정할 때 필요합니다.


7. 자주 사용되는 서비스별 기본 포트 번호

서비스 프로토콜 포트 번호
HTTP TCP 80
HTTPS TCP 443
SSH TCP 22
FTP TCP 21
MySQL TCP 3306
PostgreSQL TCP 5432
DNS UDP 53
SMTP TCP 25
Redis TCP 6379
MongoDB TCP 27017
RDP (원격 데스크탑) TCP 3389

※ 위 포트들은 대부분 방화벽이나 보안 그룹 설정 시 허용 여부를 판단하는 기준이 됩니다.


8. 실제 예시: 웹 서버에서 포트 동작

구성 요소 예시
IP 주소 123.45.67.89
포트 번호 80 (HTTP), 443 (HTTPS)
실제 주소 http://123.45.67.89:80 또는 https://123.45.67.89:443

9. 결론

포트는 네트워크 통신의 핵심 단위이자 서비스 식별자입니다. 서비스 구성 시 포트를 명확히 정의하고, 포트포워딩 및 보안 설정을 철저히 해야 안정적인 운영이 가능합니다.


10. 참고 자료

  • 인파 블로그 PORT란 무엇인가?

'보안 > 보안 | 인증 전반' 카테고리의 다른 글

[LocalHost] 0.0.0.0/0 아이피의 의미와 보안상 주의사항  (0) 2025.04.13
'보안/보안 | 인증 전반' 카테고리의 다른 글
  • [LocalHost] 0.0.0.0/0 아이피의 의미와 보안상 주의사항
알쓸신개
알쓸신개
  • 알쓸신개
    알아두면 쓸모있는 신기한 개발지식
    알쓸신개
  • 전체
    오늘
    어제
    • 분류 전체보기 (92)
      • 웹 기초 | 디자인 (2)
        • HTML (0)
        • CSS (0)
        • 반응형 (0)
        • 웹 지식 | 웹 표준 | 접근성 (2)
      • 프론트엔드 (6)
        • JavaScript (6)
        • DOM 조작 | AJAX (0)
        • TypeScript (0)
        • Vue.js | React | JSX (0)
        • Webpack | Vite | 웹 컴포넌트 (0)
      • 백엔드 (28)
        • PHP (6)
        • Laravel (18)
        • CodeIgniter (0)
        • JAVA (0)
        • Spring (0)
        • 디자인 패턴 (2)
        • 테스트 코드 작성 (0)
        • 보안 | 인증 (1)
      • 데이터베이스 (5)
        • SQL 기초 (1)
        • MariaDB | MySql (0)
        • 데이터베이스 설계 (1)
        • 쿼리 최적화(튜닝) (0)
      • 실무 | 성장 (11)
        • 프로젝트 사례 (2)
        • 트러블슈팅 | 개발팁 (9)
        • 커리어 관련 (0)
        • 코드 리뷰 | 스터디 (0)
        • 애자일 | 스크럼 | 작업 방법론 (0)
      • 개발 환경 | 도구 (36)
        • 버전관리 (Git) (3)
        • 개발 도구 (IDE, 에디터 등) (3)
        • 서버 | 인프라 | 배포 | 운영 (14)
        • Docker | 컨테이너 (5)
        • CI | CD (2)
        • 클라우드 환경 (AWS | GCP) (9)
      • 보안 (3)
        • 보안 | 인증 전반 (2)
        • CSRF | XSS 대응 (0)
        • SQL 인젝션 (0)
        • 암호화 | 해시 (0)
        • 보안 취약점 분석 (1)
      • AI & 머신러닝 (0)
        • AI 툴의 특성 (0)
  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
알쓸신개
[PORT] 네트워크 포트(PORT)의 개념과 포트포워딩, 기본 포트 번호 정리
상단으로

티스토리툴바