컴퓨터 과학/네트워크

포트 포워딩(Port Forwarding): 외부에서 내부 네트워크에 접근하기

Data Jun 2025. 10. 4. 09:40

네트워크 환경에서 우리는 흔히 사설 IP(Private IP)공인 IP(Public IP) 를 동시에 사용합니다. 사설 IP는 로컬 네트워크 내부에서만 통신할 수 있고, 외부 인터넷과는 직접적으로 연결되지 않습니다. 그렇다면 외부에서 내부 네트워크에 있는 특정 장치에 접속하려면 어떻게 해야 할까요? 바로 이때 필요한 기술이 포트 포워딩(Port Forwarding) 입니다.

 

1. 포트 포워딩이 필요한 이유

위 그림처럼 하나의 네트워크 안에는 여러 대의 PC(사설 IP)가 있고, 이들은 모두 하나의 공인 IP를 공유합니다.
외부 사용자가 내부 네트워크로 접속을 시도할 때, 공인 IP만으로는 어떤 장치에 연결해야 하는지 알 수 없습니다.

예를 들어, 집에 있는 NAS(네트워크 저장 장치)에 외부에서 접근하려고 할 때, 인터넷 상에서는 오직 집 공유기의 공인 IP만 보입니다. NAS에 도달하려면 공인 IP 뒤에 특정 포트 번호를 붙여 구분해야 합니다.

 

따라서 포트 포워딩은 외부에서 들어오는 요청을 내부 네트워크의 특정 장치와 애플리케이션으로 전달하는 역할을 합니다.

 

2. 포트 포워딩의 동작 방식

포트 포워딩은 공유기나 라우터에서 설정할 수 있습니다. 기본 아이디어는 간단합니다.

 

1️⃣ 외부에서 특정 IP:Port로 접속 요청을 보냄

  • 예: 203.0.113.25:8080

2️⃣ 공유기(라우터)는 해당 포트 번호를 확인

 

3️⃣ 설정된 규칙에 따라 요청을 내부 장치의 사설 IP:Port로 전달

  • 예: 192.168.0.10:80

즉, 공인 IP와 포트 번호 조합을 내부 네트워크의 특정 장치로 매핑하는 과정입니다.

 

 

외부 클라이언트가 내부 네트워크의 특정 장치로 접근할 때, 공유기(라우터)가 포트 번호 규칙에 따라 연결을 전달합니다.

[외부 클라이언트]
        |
        |  접속 요청: 203.0.113.25:8080
        v
  ┌─────────────────────┐
  │   공유기 / 라우터    │   (공인 IP: 203.0.113.25)
  │  - 포트포워딩 규칙   │
  └─────────────────────┘
        |
        |  포트 8080 → 내부 192.168.0.10:80 매핑
        v
[내부 장치: 웹 서버]
 (사설 IP: 192.168.0.10:80)

이렇게 해서 외부에서 203.0.113.25:8080으로 접속하면, 실제로는 내부 네트워크의 192.168.0.10:80에 연결됩니다.

 

3. 공인 IP와 사설 IP 관계

  • 공인 IP (Public IP): 인터넷 상에서 유일하게 식별되는 주소 → ISP(인터넷 제공자)로부터 할당받음
  • 사설 IP (Private IP): 내부 네트워크에서만 사용되는 주소 → 공유기(라우터)가 DHCP 등을 통해 각 호스트에 배정

즉, 외부에서 볼 때는 네트워크 전체가 하나의 공인 IP로 보이지만, 내부적으로는 여러 장치들이 서로 다른 사설 IP를 갖고 있습니다.

[외부 인터넷]
       |
   (공인 IP: 203.0.113.25)
       |
 ┌─────────────────────┐
 │     공유기 / 라우터  │
 └─────────────────────┘
       |
       |---- 192.168.0.2 (Host A: PC)
       |---- 192.168.0.3 (Host B: Laptop)
       |---- 192.168.0.4 (Host C: NAS)
       |---- 192.168.0.5 (Host D: IoT Device)

외부에서 보면 네트워크 전체가 203.0.113.25로 보이지만, 내부에서는 192.168.0.2 ~ 192.168.0.5 같은 사설 IP를 가진 장치 4대가 존재합니다.

 

4. 그래서 포트 포워딩이 필요한 이유

외부에서 들어올 때는 공인 IP는 하나뿐이므로, "요청을 내부의 어떤 호스트에 전달해야 하는지" 알 수 없습니다.
그래서 라우터는 포트 번호를 기준으로 외부 요청을 내부의 특정 호스트로 매핑합니다.

예를 들어,

  • 203.0.113.25:8080 → 192.168.0.4:80 (NAS)
  • 203.0.113.25:3389 → 192.168.0.2:3389 (PC 원격 데스크톱)

이렇게 규칙을 정해줘야만 외부 요청이 올바른 내부 장치에 도달할 수 있습니다.

 

 

정리하면

 

공인 IP는 네트워크 전체를 대표하지만, 내부의 개별 장치까지 직접 식별하지는 못합니다. 따라서 외부에서 특정 장치와 애플리케이션에 접근하려면, NAT와 포트포워딩을 통해 공인 IP + 포트 번호 → 사설 IP + 포트 번호로 매핑해 주어야 합니다. 즉, 포트포워딩은 외부 요청을 내부 네트워크의 올바른 장치와 그 장치 내 프로세스까지 연결해 주는 핵심 기술입니다.