‘포트포워딩’이란? 쉬운 설명과 사용하는 이유 (VPN, 나스, 토렌트 등)

포트포워딩(Port Forwarding)은 일반적으로 많이 볼일이 거의 없지만 VPN, NAS, 서버 쪽에 관심이 있는 분들이 하나둘씩 배우기 시작하면 초반에 접하게 됩니다. 공유기 설정할때도 가끔 사용할 일이 있어요. 네트워크에 관심이 조금이라도 있으시다면 포트포워딩은 개념만 미리 알아두면 언젠가 한번 쓸 일이 꼭 있기 때문에 간단하게 설명해드리려고 합니다.

포트포워딩이란?

💡 이 글은 저와 크게 다를바 없는 네트워크 초보를 위한 글이기 때문에 비유와 함께 최대한 쉽게 설명하는게 목적입니다.

포트포워드 기능이 없을때 어떤 불편함이 생길지 생각해보면 왜 사용하는지 이해하기 쉽습니다.

우선 ‘Port’는 네트워크 통신에서 서비스, 애플리케이션을 구분해주는 요소 입니다. 이해를 최대한 편하게 돕기 위해서 ‘회사’에 비유해볼게요. <IP 주소 = 회사 주소>, <포트 = 부서> 정도로 이해하고 시작해봅시다.

포트

123.456.789.012:7777 이 주소에선 뒤에 7777이 포트 번호 입니다. 택배나 우편물을 배달해주시는 분이 회사 주소만 있으면 우편함이나 문 앞에 두거나 특정 장소에 쌓아놓겠죠. 그런데 포트를 지정하고 꼭 여기로 전달해주세요!라고 하면 특정 부서로 바로 갖다줍니다.

만약 포트포워딩으로 지정하지 않았다면 부서로 전달되지 않겠죠. 특명 업무를 처리할 부서가 따로 없다면 뒤죽박죽이 될거예요.

친구가 나에게 택배로 선물을 보냈는데 00아파트(IP주소) 여기까지만 써놓고 동호수(포트)를 적어놓지 않으면 제대로 받아 볼 수 없는 것과 같습니다.

이정도면 대충 포트가 어떤 역할을 하는지 이해는 가셨죠?

포워딩

저 포트를 제대로 지정해주고 연결하는게 포트포워딩 입니다.

우리 해외 직구할때 ‘배송대행지’쓰죠? 간단하게 shipping agency라고도 하지만 freight(or package) forwarding company(agency)라고 합니다. 포워딩 회사인데 포트포워딩과 매우 비슷합니다.

배대지 사용하실때 각자의 주소가 있고 거기에 우리집 주소를 입력하잖아요?

  • 배대지의 개인 주소 : 외부 포트
  • 우리집 주소 : 내부 포트

쉽죠?

Port 구조가 어떻게 되는지 간단하게 알고 넘어가면 더 좋을 것 같아요.

🖐️ Port는 몇개죠?

0 ~ 65535번까지 있습니다. 포트 번호 범위부터 알아볼게요.

포트 종류, 범위

아래 3가지 분류부터 눈에 익힙시다. 할당된 포트들은 상당히 많습니다. 아래는 많이 사용되는 포트 혹은 “이 포트가 여기에 쓰이네?” 라고 생각되는 포트들입니다.

  • 0 ~ 1024 : Well-Know Port (잘 알려진 포트) – 운영 체제 및 주요 네트워크 서비스가 사용해야하는 핵심 포트는 앞자리를 차지하고 있어요.
  • 1024 ~ 49151 : Registered Port (등록된 포트) – 특정 소프트웨어와 애플리케이션에 할당되며 여러 상용 소프트웨어와 네트워크 서비스가 포함되어 있음
  • 49152 ~ 65535 : Dynamic/Private Port (동적/사설 포트) – 임의로 할당하여 사용할 수 있어요. 여분의 포트라고 볼 수 있겠습니다.

1. 잘 알려진 포트 (Well-known ports)

주요 포트는 아래와 같습니다.

웹 / 인터넷 주요 포트
  • 20, 21: FTP (파일 전송 프로토콜)
  • 22: SSH / SFTP (원격 접속 보안 셸 / 보안 FTP)
  • 23: Telnet
  • 25: SMTP (Simple Mail Transfer Protocol – 이메일 전송 포트로 사용됐는데 지금은 587을 씁니다.)
  • 53: DNS
  • 80: HTTP
  • 443: HTTPS
이메일
  • 110: POP3 (이메일 수신)
  • 143: IMAP (이메일 수신, 동기화 지원)
  • 465: SMTP over SSL – Cisco 프로토콜과 충돌
  • 587: SMTP (보안 이메일 전송으로 SMTPS 라고도 불립니다.)
  • 993: IMAP over SSL
  • 995: POP3 over SSL
파일 공유
  • 137, 138, 139: NetBIOS (LAN 파일 공유)
  • 445: SMB (파일 및 프린터 공유)

2. 등록된 포트 (Registered ports)

  • 2049: NFS (네트워크 파일 시스템)
  • 3306: MySQL
  • 3389: RDP (원격 데스크톱 프로토콜)
  • 3479,3480 : 플레이스테이션 네트워크
  • 5228: 구글 안드로이드 메시징 프로토콜(비공식)
  • 5432: PostgreSQL
  • 5800, 5900: VNC (가상 네트워크 컴퓨팅)
  • 6112: Blizzard 게임 서버
  • 17500: Dropbox 동기화
  • 25565: Minecraft
  • 27015: Steam 및 Valve 게임
  • 27017: MongoDB

3. 동적/사설 포트 (Dynamic/Private ports)

  • 49154: UPnP (Universal Plug and Play)
  • 51413: BitTorrent – 토렌트 클라이언트에서 기본적으로 사용
  • 51500: Plex
  • 55000~55020: Torrent 클라이언트 및 P2P 네트워크에서 동적으로 할당
  • 50000~60000: WebRTC
  • 49152~65535: RTP (Real-time Transport Protocol) – 음성 및 비디오 데이터 전송

VPN 관련 포트

  • 500: IPSec
  • 1080: SOCKS Proxy
  • 1723: PPTP
  • 1194: OpenVPN
  • 4500: IPSec NAT-Traversal
  • 51820: WireGuard

등록된 포트 대역에도 내 마음대로 할당해서 사용할 수 있습니다. 전부다 사용되는 것은 아니거든요.

포트포워딩 왜 하나요?

특정 앱이나 서비스를 위해 ‘문’을 열어주는 거예요.

흐름은 ‘외부접속 > 라우터 > 포트포워딩 규칙에 따라서 전달 > 지정된 포트에 접속’ 입니다.

요즘도 있는지 모르겠는데 예전 제품들 중에 설정을 보면 Super DMZ라는 기능이 있었어요. 모든 포트를 활짝 열어버리는건데 편리한 대신 그만큼 더 위험해질 수 있어요. 포트포워딩으로 하나씩 설정해주는게 훨씬 안전합니다.

조금 복잡해보이지만 여러줄로 이루어져있을 뿐 별거 아닙니다. 우리가 매일 사용하는 ‘Port’는 80(https), 443(https) 입니다. 여기서 ‘포트 포워딩’은 “A포트로 접속하면 B포트로 연결해줘”라고 요청하는 기능입니다.

A는 접속시 사용되는 ‘외부 포트’고 B는 내가 연결할 ‘내부 포트’ 입니다.

보안

포트포워딩‘ 혹은 ‘포트 변경‘ 대표적인 목적 중 하나는 ‘보안’이라고 알려져있는데, 포트 하나를 바꾸는 것으로 드라마틱한 보안 강화를 기대할 수는 없지만 하지 않는 것 보다는 확실히 좋다고 볼 수 있습니다. (보안을 위한다면 방화벽을 함께 사용해야 합니다.)

예를 들어 FTP, SFTP(SSH) 포트는 21, 22번이 디폴트인데 이 또한 포트 스캐닝을 하지 않으면 모르도록 다른 포트로 바꿔놓기도 합니다.

‘원격 접속’을 위한 RDP 기본 포트는 3389번 입니다. 해커의 Bot들이 이런 기본 포트를 먼저 공략하는데, RDP 포트를 지키기 위해서 윈도우에서 레지스트리 편집과 방화벽 인바운드 규칙 추가로 간단하게 바꿔서 [IP주소:바꾼 포트]로 접속하게 만들 수 있어요. 혹은 변경을 하지 않고 포트포워딩으로 ‘외부포트 55555 → 내부포트 3389’ 이렇게 해결할 수도 있습니다.

나스

저는 시놀로지 NAS를 사용하고 있습니다. 외부에서 시놀로지 DSM에 접속하기 위해서는 라우터(공유기)에 포트포워딩 설정을 해줘야 합니다. ipTime 공유기를 사용하시는 분들은 ‘관리 페이지 – NAT/라우터 관리 – 포트포워드 설정’에서 바꾸실 수 있습니다. 이렇게하면 DDNS 주소로 접속하면 DSM 화면으로 들어갈 수 있습니다.

그 뿐 아니라 저는 NAS에 Docker로 Self-Hosting 앱을 돌리는데 모두 포트포워딩을 통해 내부 포트로 연결해서 접속, 사용하고 있습니다.

시놀로지 http 포트는 5000, https 포트는 5001 입니다. Webdav는 5006번으로 기억하고 있어요.

토렌트

저는 토렌트 사용시 포트포워딩을 따로 해본적은 없지만 일반적으로 속도 개선, 피어(Peer) 연결 최적화 등 효율성을 높이기위해 합니다. 포트가 열려 있으면 사용자는 시더(Seeder)리처(Leecher)로서도 참여도가 올라가요.

쉽게 설명하면 포트는 ‘문’입니다. 열어놓으면 사람들이 드나들기 편하겠죠.

하지만 열린 포트는 언제나 공격 대상이 되기 때문에 방어용으로 방화벽이나 VPN을 사용합니다. 토렌트 사용시 포트포워딩이 꼭 필요한 일부 유저들에게는 포트포워딩을 지원하는 VPN이 필요한 이유 입니다. 그러나 많은 회사들이 따로 포트포워딩 설정하는 것을 막는 추세이기도 하고, 요즘 토렌트 사용자 자체가 예전에 비해서 많이 사라졌어요.

쓰고 보니 별거 없는거 같은데 나름 쉽게 설명하려고 노력했습니다. ㅎㅎ 좋은 의견이나 질문있으시면 언제든지 댓글 주세요.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다