본문 바로가기
IT적응기

NAT와 포트 포워딩 완전 정복 – 공유기 뒤 서버를 인터넷에 노출하는 방법 5가지와 보안 설정

by IT적응기 2026. 4. 19.

공유기 뒤 서버를 인터넷에 노출하는 방법 5가지와 보안 설정 참고 이미지
공유기 뒤 서버를 인터넷에 노출하는 방법 5가지와 보안 설정

NAT와 포트 포워딩 완전 정복 – 공유기 뒤 서버를 인터넷에 노출하는 방법 5가지와 보안 설정

"NAT(Network Address Translation)"와 포트 포워딩을 이해하면, 공인 IP 하나로 수십 개의 사설 IP 장치를 인터넷에 연결하고, 특정 서버를 외부에서 접근 가능하게 만들 수 있다.

집에서 NAS 서버 열어보려고 공유기 설정에서 포트 포워딩 건드려봤던 경험이 있을 거다. 뭔가 설정했는데 되다가 안 되다가, 외부에서 접속이 안 된다거나. 근본적으로 "NAT"가 어떻게 동작하는지 알면, 그 설정이 왜 필요한지, 뭘 잘못 한 건지가 보인다.

📌 목차

  • NAT가 없었다면 지금 인터넷은 존재하지 않는다
  • NAT의 동작 원리 – 주소 변환이 일어나는 과정
  • NAT의 세 가지 종류 – SNAT, DNAT, PAT
  • 포트 포워딩 – 사설 IP 서버를 외부에 노출하는 핵심 기술
  • 리눅스/공유기에서 포트 포워딩 설정하는 법
  • NAT와 포트 포워딩의 보안 고려사항
  • 정리

🌍 NAT가 없었다면 지금 인터넷은 존재하지 않는다

IPv4 주소는 약 43억 개다. 근데 지금 인터넷에 연결된 기기는 수백억 개다. 어떻게 가능한가?

"NAT" 덕분이다. 가정집 하나에 공인 IP가 하나 있어도, 그 안에서 수십 개의 스마트폰, 노트북, TV, 스마트 스피커가 인터넷을 쓸 수 있다. 전부 사설 IP를 쓰고, 공유기(NAT 장치)가 이 사설 IP들을 공인 IP로 변환해줘서 인터넷과 통신하게 해준다.

사설 IP 대역이 뭔지 알아두면 좋다:

  • 10.0.0.0/8 (10.x.x.x)
  • 172.16.0.0/12 (172.16.x.x ~ 172.31.x.x)
  • 192.168.0.0/16 (192.168.x.x)

이 대역의 IP는 인터넷 라우터에서 라우팅이 안 된다. 인터넷에서 목적지가 192.168.1.100인 패킷은 어디로도 못 간다. 그래서 NAT가 필요하다.

"NAT"가 없었으면 IPv4 주소 부족으로 90년대에 이미 인터넷이 한계에 부딪혔을 거다. 지금 IPv6로 전환이 진행 중이지만, IPv4가 이만큼 버텨온 게 NAT 덕분이다.


🔄 NAT의 동작 원리 – 주소 변환이 일어나는 과정

"NAT"가 동작하는 과정을 구체적으로 보자.

내부 장치 192.168.1.100에서 구글 서버 142.250.196.78에 접속하는 경우:

  1. 내부 장치가 패킷을 보낸다:
    • 출발지: 192.168.1.100:50123
    • 목적지: 142.250.196.78:443
  2. 공유기(NAT 장치)에서 패킷을 받아서 NAT 테이블에 기록하고, 출발지를 변환한다:
    • 출발지: 211.49.xxx.xxx:60123 (공인 IP)
    • 목적지: 142.250.196.78:443 (그대로)
  3. 구글 서버가 응답을 보낸다:
    • 출발지: 142.250.196.78:443
    • 목적지: 211.49.xxx.xxx:60123
  4. 공유기가 NAT 테이블을 조회해서 원래 내부 IP로 변환:
    • 목적지: 192.168.1.100:50123으로 되돌려서 전달

이 과정을 자동으로 처리하는 게 PAT(Port Address Translation) 또는 Masquerade다. 포트 번호를 이용해서 어떤 내부 장치의 패킷인지 구분한다.

NAT 테이블이 이 매핑 정보를 가지고 있다. 세션이 끝나거나 타임아웃이 지나면 테이블에서 삭제된다.


🔀 NAT의 세 가지 종류 – SNAT, DNAT, PAT

"NAT"를 조금 더 엄밀하게 나누면:

SNAT (Source NAT) 출발지 IP를 변환한다. 내부에서 외부로 나가는 트래픽에 적용된다. 위 예시에서 192.168.1.100을 공인 IP로 바꾸는 게 SNAT다. 가정용 공유기에서 기본적으로 하는 일이다.

DNAT (Destination NAT) 목적지 IP를 변환한다. 외부에서 내부로 들어오는 트래픽에 적용된다. 포트 포워딩이 바로 DNAT다. 공인 IP로 들어오는 특정 포트 트래픽을 내부 서버 IP로 바꿔서 전달한다.

PAT (Port Address Translation) IP와 포트를 함께 변환한다. 공인 IP 하나로 여러 내부 장치를 연결할 때 포트로 구분한다. 대부분의 가정용 NAT는 PAT 방식이다.


🚪 포트 포워딩 – 사설 IP 서버를 외부에 노출하는 핵심 기술

"NAT" 환경에서 외부에서 내부 서버에 접근하려면 포트 포워딩이 필요하다.

예를 들어, 집에 웹 서버(192.168.1.200:80)를 올렸다고 하자. 외부에서 집공인IP:80으로 접속하면, 공유기가 이 패킷을 192.168.1.200:80으로 전달해줘야 한다. 이 규칙을 만드는 게 포트 포워딩이다.

포트 포워딩 활용 사례:

  • 홈 NAS 외부 접근 (보통 5000번대 포트)
  • 마인크래프트 서버 (기본 25565 포트)
  • 개발 중인 웹 서버 외부 공유 (80, 443 또는 커스텀 포트)
  • CCTV DVR 원격 접근 (제조사마다 다른 포트)
  • SSH 원격 접속 (기본 22, 보안상 다른 포트 권장)

포트 변환도 가능하다 외부 포트와 내부 포트를 다르게 할 수 있다. 예를 들어, 외부에서 공인IP:8080으로 들어오는 트래픽을 내부 192.168.1.200:80으로 보내는 식이다. SSH 기본 포트를 22 대신 다른 번호로 외부에 노출할 때 이 방식을 쓴다.


🛠️ 리눅스/공유기에서 포트 포워딩 설정하는 법

리눅스(iptables)에서 포트 포워딩:

외부에서 들어오는 80번 포트를 내부 192.168.1.200:80으로 전달하는 규칙:

# 포트 포워딩 (DNAT)
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 \
  -j DNAT --to-destination 192.168.1.200:80

# 전달 허용 (FORWARD)
iptables -A FORWARD -p tcp -d 192.168.1.200 --dport 80 -j ACCEPT

# 내부에서 외부로 나가는 트래픽 마스커레이드 (SNAT)
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

리눅스(nftables)에서 포트 포워딩:

현대적인 방식은 nftables를 쓴다:

nft add table nat
nft add chain nat prerouting '{ type nat hook prerouting priority 0; }'
nft add rule nat prerouting tcp dport 80 dnat to 192.168.1.200:80
nft add chain nat postrouting '{ type nat hook postrouting priority 100; }'
nft add rule nat postrouting masquerade

일반 가정용 공유기: 공유기 관리 페이지(보통 192.168.0.1 또는 192.168.1.1)에서:

  • 포트 포워딩 또는 가상 서버 메뉴
  • 외부 포트, 내부 IP, 내부 포트, 프로토콜(TCP/UDP) 입력
  • 적용

공유기마다 메뉴 이름이 조금씩 다르다. '포트 포워딩', '가상 서버', '포트 매핑' 등으로 불린다.


🔒 NAT와 포트 포워딩의 보안 고려사항

"NAT"는 부수적으로 보안 효과가 있다. 외부에서 내부로 직접 들어오는 연결이 기본적으로 불가능하기 때문이다. 이게 사실상 방화벽 역할을 한다.

근데 포트 포워딩을 열면 그 구멍을 의도적으로 뚫는 거다. 몇 가지 보안 원칙을 지켜야 한다.

최소한의 포트만 열어라 필요한 포트만 포워딩하고, 안 쓰는 규칙은 지워라. 포트를 열어놓을수록 공격 표면이 넓어진다.

기본 포트를 바꿔라 SSH를 22번에 그대로 열면 전 세계 봇이 24시간 brute-force를 시도한다. 비표준 포트(예: 2222, 22022)로 바꾸면 자동화된 스캔에서 벗어날 수 있다. 완전한 보안은 아니지만 노이즈가 줄어든다.

IP 화이트리스트를 써라 접근이 허용된 IP만 포트 포워딩 규칙에 넣을 수 있다. 특정 사무실 IP에서만 SSH 접근을 허용하는 식이다.

VPN을 쓰는 게 더 낫다 서버에 외부 접근이 필요하다면, 포트 포워딩보다 VPN을 구성하는 게 보안상 훨씬 낫다. WireGuard나 OpenVPN을 서버에 설치하고, VPN으로 접속 후 내부 서버에 접근하는 방식이다.

로그를 봐라 포트 포워딩 서버에서 접근 로그를 주기적으로 확인해라. 이상한 IP에서 반복적으로 접근 시도가 있으면 fail2ban 같은 도구로 자동 차단을 설정하자.


"NAT"와 포트 포워딩은 인터넷 인프라의 숨은 영웅이다. IPv4 고갈 문제를 수십 년 버텨온 기술이고, 지금도 모든 가정용 공유기와 기업 방화벽에서 동작하고 있다. 원리를 이해하면 트러블슈팅도 빠르고, 보안 설계도 제대로 할 수 있다.


출처 및 참고


소개 및 문의 · 개인정보처리방침 · 면책조항

© 2026 깜짝,황금이 아빠 IT적응기

서치어드바이저