Skip to content

IP와 Port의 개념

네트워크에서 IP 주소와 Port는 데이터를 주고받기 위해 꼭 필요한 두 가지 개념이다.
쉽게 말해, IP는 건물 주소, Port는 그 건물 안의 특정 호실 번호라고 볼 수 있다.

IP (Internet Protocol)

IP란 네트워크 상에서 장치(컴퓨터, 서버)를 식별하기 위한 주소이다.


IPv4 vs IPv6

IPv4

  • 32비트 주소 체계 → 약 43억 개 주소
  • 예: 192.168.0.1
  • 주소 부족 문제 때문에 사설망, NAT 등으로 연명 중

IPv6

  • 128비트 주소 체계 → 사실상 무한대
  • 예: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
  • 차세대 인터넷 표준으로 점차 확산 중

Public IP vs Private IP

Public IP

  • 인터넷 상에서 고유하게 사용되는 IP
  • ISP(통신사) 또는 클라우드 서비스에서 부여
  • 외부에서 직접 접근 가능

Private IP

  • 내부 네트워크(집, 회사, VPC)에서만 쓰임
  • 인터넷 직접 접근 불가 (NAT, 게이트웨이 필요)
  • 예: 192.168.x.x, 10.x.x.x, 172.16.x.x ~ 172.31.x.x

Static vs Dynamic IP

Static IP (고정 IP)

  • 항상 같은 주소 유지
  • 서버 운영, DNS 설정 등에 적합

Dynamic IP (유동 IP)

  • 네트워크 연결 시마다 새로운 주소 할당
  • 가정용 인터넷, 모바일 네트워크에서 주로 사용

Port

하나의 IP 주소 안에서 실행되는 여러 서비스(프로세스)를 구분하기 위한 번호이다.

  • 203.0.113.10:80 → 웹 서버(HTTP)
  • 203.0.113.10:443 → 웹 서버(HTTPS)
  • 203.0.113.10:3306 → 데이터베이스(MySQL)

주요 포트

포트 번호서비스설명
22SSH원격 접속
80HTTP웹 서비스 (암호화 X)
443HTTPS웹 서비스 (암호화 O)
3306MySQL데이터베이스
6379Redis캐시/데이터 저장

포트 번호 범위

Well-known (0~1023)

  • 표준 서비스 (HTTP 80, HTTPS 443, SSH 22 등)
    • 80 → HTTP로 통신을 할 때 사용
    • 443 → HTTPS로 통신을 할 때 사용
    • 22 → SSH: 원격 접속을 위한 포트 번호
      • EC2 인스턴스에 연결할 때 22번 포트를 사용한다.
    • 25 → SMTP (메일 전송)

Registered (1024~49151)

  • 특정 애플리케이션에 등록된 포트

Dynamic/Ephemeral (49152~65535)

  • 임시로 자동 할당되는 포트

💡 덕분에 브라우저나 프로그램은 별도의 설정 없이도 어떤 포트로 접근할지 알 수 있다.

⚠️ 위에서 정해놓은 규약을 꼭 지키지 않아도 된다.

즉, 규약으로 정해져 있는 포트 번호와 다르게 사용해도 된다는 뜻이다.
예를 들어, 특정 서버와 HTTP 통신을 할 때 80번 포트를 쓰지 않고 3000번 포트나 8080번 포트를 써도 상관 없다.


IP와 Port의 관계

IP:Port 형태

  • 예: 192.168.0.10:8080
  • 같은 IP에서도 포트로 서비스 구분

한 서버 = 여러 서비스

  • 웹 서버(:80), API 서버(:8080), DB(:3306) 동시 실행 가능

클라우드 환경에서의 활용

  • EC2 → 보안 그룹에서 포트 열어줘야 접근 가능
  • Lambda → API Gateway 통해 포트 대신 엔드포인트 URL 제공
  • 컨테이너(ECS/EKS) → Pod/Task마다 포트 매핑으로 서비스 노출

브라우저 창에 포트 번호를 입력하지 않는 이유

브라우저에 단순히 https://www.example.com만 입력해도 잘 접속되는 이유는,
브라우저가 자동으로 기본 포트(Well-Known Port)를 붙여주기 때문이다.

  • HTTP → 기본 포트 80
  • HTTPS → 기본 포트 443

즉, 사용자가 https://www.example.com을 입력하면 실제 요청은 https://www.example.com:443으로 전송된다.

💡 그래서 일반 사용자는 포트를 직접 입력하지 않아도 된다.
다만 개발 환경에서는 기본 포트 대신 3000, 5173 같은 포트를 쓰기 때문에 주소창에 명시적으로 입력해야 한다.


정리

💡

  • IP = 집 주소, Port = 호실 번호
  • IP는 어디로 보낼지, Port는 어떤 프로그램과 통신할지 지정
  • 클라우드 환경에서는 보안 그룹, 로드밸런서, 게이트웨이와 연결되어 더욱 중요