
※ 포트 포워딩이 필요한 이유
내부망 서버나 데이터베이스는 외부에서 직접 접근할 수 없는 경우가 많다.
보안 정책에 따라 내부 IP는 외부에 노출되지 않기 때문이다.
이때 외부에서 내부 서버에 안전하게 접속하기 위해 사용하는 기술이 바로 포트 포워딩이다.
※ 터널링(Tunneling)이란?
터널링(Tunneling)은 네트워크에서 두 지점 사이에 가상의 통신 경로(터널)를 만들어
외부에서 직접 접근할 수 없는 내부 네트워크로 트래픽을 전달하는 기술이다.
즉, 외부에서 내부망으로 들어가는 전용 통로를 만드는 것이다.
※ 포트 포워딩은 터널링의 한 종류
포트 포워딩은 터널링 기술을 이용해
특정 포트로 들어온 트래픽을 다른 서버의 IP와 포트로 전달하는 방식이다.
관계 : 터널링 ⊃ 포트 포워딩
※ 포트 포워딩(Port Forwarding)이란?
포트 포워딩은 특정 포트로 들어온 요청을
지정된 목적지 서버의 IP와 포트로 전달하는 네트워크 주소 전달 기술이다.
핵심 : 목적지 IP + 포트 매핑
※ 본 글에서는 이해를 돕기 위해 로컬 PC 기준의 포트 포워딩(SSH 로컬 포워딩)을 중심으로 설명한다.
※ 포트 포워딩을 하면 어떤 상태가 되는가
포트 포워딩이 설정되면
로컬 PC의 특정 포트가 원격 서버의 포트와 연결된 것처럼 동작한다.
즉, 사용자는 로컬에 접속하지만 실제 통신은 원격 서버로 전달된다.
※ SSH 포트 포워딩 구조
▶ 형식
ssh -L <로컬포트>:<목적지IP>:<목적지포트> <SSH계정>@<SSH서버>
# SSH 기본 포트 사용
ssh -p <SSH포트> -L <로컬포트>:<목적지IP>:<목적지포트> <SSH계정>@<SSH서버>
# SSH 포트 명시
▶ 예시
ssh -L 13306:11.22.33.44:1020 user@55.66.77.88
# 로컬 PC 13306 → SSH 서버(55.66.77.88, 점프 호스트) → 목적지 서버(11.22.33.44:1020)
ssh -p 2222 -L 13306:11.22.33.44:1020 user@55.66.77.88
# 로컬 PC:13306 → SSH 서버(55.66.77.88:2222, 점프 호스트) → 목적지 서버(11.22.33.44:1020)
여기서 SSH 서버는 로컬 PC와 목적지 서버 사이에서 연결을 전달하는 중간 경유 서버이며,
이러한 서버를 일반적으로 점프 호스트(Jump Host)라고 부른다.
※ SSH 서버와 점프 호스트
SSH 포트 포워딩에서 사용하는 SSH 서버는 로컬 PC와 목적지 서버 사이에서 연결을 전달하는 중간 경유 서버 역할을 한다.
이러한 서버는 일반적으로 점프 호스트(Jump Host, Bastion Host)라고 부르며, 외부에서 내부망 서버에 접근할 때 사용하는 보안 경유 서버이다.
※ 점프 호스트를 두는 이유
점프 호스트는 내부망 서버를 외부에 직접 노출하지 않으면서도 필요한 접속을 허용하기 위해 사용된다.
외부 사용자는 점프 호스트를 통해서만 내부 시스템에 접근할 수 있도록 하여 내부망 보호와 접근 통제를 동시에 가능하게 한다.
※ 점프 호스트를 통한 포트 포워딩 활용 예
점프 호스트를 통해 내부망 서버에 접근하는 구조에서는 포트 포워딩을 사용하면 로컬 PC에서 해당 서버에 직접 접속하는 것처럼 사용할 수 있다. 다음은 실무에서 자주 사용되는 포트 포워딩 활용 예이다.
<외부에서 직접 접근할 수 없는 DB 서버 접속>
운영 환경의 데이터베이스 서버는 보안 정책에 따라 외부에서 직접 접근이 차단되는 경우가 많다.
이때 점프 호스트를 통한 포트 포워딩을 사용하면 로컬 PC에서 해당 DB 서버에 접속할 수 있다.
▶ 형식
ssh -L <로컬포트>:<DB서버IP>:<DB포트> <SSH계정>@<점프호스트>
# SSH 기본 포트 사용
ssh -p <SSH포트> -L <로컬포트>:<DB서버IP>:<DB포트> <SSH계정>@<점프호스트>
# SSH 포트 명시
▶ 예시
ssh -L 13306:10.0.0.5:3306 user@55.66.77.88
# 로컬 PC:13306 → 점프 호스트(55.66.77.88) → DB 서버(10.0.0.5:3306)
ssh -p 2222 -L 13306:10.0.0.5:3306 user@55.66.77.88
# 로컬 PC:13306 → 점프 호스트(55.66.77.88:2222) → DB 서버(10.0.0.5:3306)
포트 포워딩이 설정되면 로컬 PC에서 다음 주소로 DB 서버에 접속할 수 있다.
localhost:13306
<외부에서 직접 접근할 수 없는 웹 서버 접속>
운영 환경의 웹 서버 역시 보안 정책에 따라 외부에서 직접 접근이 차단되는 경우가 많다.
이때 점프 호스트를 통한 포트 포워딩을 사용하면 로컬 PC에서 해당 웹 서버에 접속할 수 있다.
▶ 형식
ssh -L <로컬포트>:<웹서버IP>:<웹포트> <SSH계정>@<점프호스트>
# SSH 기본 포트 사용
ssh -p <SSH포트> -L <로컬포트>:<웹서버IP>:<웹포트> <SSH계정>@<점프호스트>
# SSH 포트 명시
▶ 예시
ssh -L 18080:10.10.10.20:8080 user@55.66.77.88
# 로컬 PC:18080 → 점프 호스트(55.66.77.88) → 웹 서버(10.10.10.20:8080)
ssh -p 2222 -L 18080:10.10.10.20:8080 user@55.66.77.88
# 로컬 PC:18080 → 점프 호스트(55.66.77.88:2222) → 웹 서버(10.10.10.20:8080)
포트 포워딩이 설정되면 로컬 PC에서 다음 주소로 웹 서버에 접속할 수 있다.
http://localhost:18080
※ 포트 포워딩 핵심 정리
· 포트 포워딩은 특정 포트로 들어온 트래픽을 다른 서버의 IP와 포트로 전달하는 기술이다.
· 한 시스템의 포트를 다른 서버의 IP와 포트에 연결한다.
· SSH 서버, NAT 장비, 프록시 등 중간 시스템이 연결을 전달한다.
· 네트워크에서 직접 접근할 수 없는 시스템에 접속할 때 사용된다.
· 포워딩이 설정된 위치에서는 원격 서버에 직접 접속하는 것처럼 동작한다.
※ 한 줄 정리
포트 포워딩은 특정 포트의 트래픽을 다른 서버의 IP와 포트로 전달하여 직접 접근할 수 없는 시스템에 접속할 수 있게 하는 기술이다.
'Network > 참고자료' 카테고리의 다른 글
| [Network] 프록시 서버(Proxy Server)란 무엇인가 (0) | 2026.02.08 |
|---|---|
| [Network] 웹 개발자를 위한 네트워크 기본 개념 정리 (IPv4, IPv6, 서브넷 마스크, 게이트웨이) (6) | 2025.08.05 |
| [Network] 개발자를 위한 ping 명령어 (0) | 2025.06.15 |
| [Network] 운영체제 & 버전별 hosts 파일 위치 (0) | 2025.06.15 |