집에서 서버를 한 번이라도 열어보려고 하면 반드시 마주치는 개념이 있다. 바로 포트포워딩이다.
처음에는 이름부터 어렵다. 나도 처음에는 “포트? 포워딩? 뭘 전달한다는 거지?”라는 느낌이었다.
그런데 이걸 한 번 이해하면, “왜 내 서버가 밖에서 접속이 안 됐는지” 바로 이해된다.
결론부터 말하면 포트포워딩은 외부에서 들어온 요청을 내 컴퓨터로 연결해주는 설정이다.

왜 포트포워딩이 필요할까
집에서 사용하는 인터넷 환경을 보면 대부분 이런 구조다.
- 공유기 (Wi-Fi)
- → 여러 개의 기기 (노트북, 폰, PC)
즉, 외부에서는 공유기만 보이고, 그 안에 있는 내 컴퓨터는 직접 보이지 않는다.
그래서 이런 문제가 생긴다.
- 내 PC에서 서버를 켰는데
- 외부에서는 접속이 안 됨
왜냐하면 외부에서 들어온 요청이 “어느 컴퓨터로 가야 하는지” 모르기 때문이다.
이걸 해결해주는 게 포트포워딩이다.
포트는 무엇일까
포트포워딩을 이해하려면 먼저 “포트”를 알아야 한다.
포트는 쉽게 말해서 컴퓨터 안의 “문 번호” 같은 개념이다.
예를 들어:
- 80번 포트 → 웹사이트 (HTTP)
- 443번 포트 → HTTPS
- 3000번 포트 → 개발 서버
즉, 하나의 컴퓨터 안에서도 여러 개의 프로그램이 각각 다른 포트를 사용한다.
그래서 외부에서 요청이 들어오면:
“어느 포트로 갈지”도 중요하다.
포트포워딩은 어떻게 동작할까
포트포워딩은 공유기에서 설정한다.
기본 구조는 이렇게 된다.
외부 → 공유기 → 내부 컴퓨터
예를 들어:
- 외부에서 8080 포트로 접속하면
- 공유기가 그 요청을
- 내 PC의 3000 포트로 보내준다
이렇게 연결하는 것이다.
즉:
- 외부 포트 → 내부 IP + 내부 포트
로 매핑(mapping)하는 과정이다.
비유하면 이렇게 이해하면 쉽다
포트포워딩은 택배 배송과 비슷하다.
외부에서 택배가 오면:
- 아파트(공유기)까지는 도착하지만
- 어느 집(컴퓨터)인지 모르면 전달이 안 된다
그래서 관리실(공유기)이:
- “이 번호는 101호로 보내라”
라고 정해주는 것이다.
이게 바로 포트포워딩이다.
실제로 언제 필요할까
포트포워딩은 이런 상황에서 필요하다.
- 집에서 웹서버를 열고 싶을 때
- 게임 서버를 만들 때 (마인크래프트 등)
- NAS나 개인 서버를 외부에서 접속할 때
- Docker 컨테이너를 외부에 공개할 때
즉, “내 컴퓨터를 밖에서 접속 가능하게 만들고 싶을 때” 무조건 필요하다.
포트포워딩이 없으면 어떻게 될까
포트포워딩을 하지 않으면:
- 내 컴퓨터에서는 접속 가능
- 같은 Wi-Fi에서는 접속 가능
- 외부에서는 접속 불가
이 상태가 된다.
그래서 많은 사람들이 “서버가 안 된다”고 착각한다.
사실은 서버 문제가 아니라, 포트포워딩 설정 문제인 경우가 대부분이다.
Docker와도 연결되는 개념
Docker를 사용할 때도 포트 개념이 나온다.
docker run -p 3000:3000 myapp
이건:
- 컨테이너의 3000 포트를
- 내 컴퓨터의 3000 포트로 연결하는 것
이다.
그리고 그 다음 단계가 바로 포트포워딩이다.
즉:
- Docker → 내 PC 포트 연결
- 포트포워딩 → 외부 → 내 PC 연결
이렇게 이어진다.
한 줄로 정리하면
포트포워딩은 외부에서 들어온 요청을 공유기를 통해 내 컴퓨터의 특정 포트로 연결해주는 설정이다. 서버를 외부에 공개하려면 반드시 필요하다.