“포트 포워딩을 했는데도 접속이 안 돼요.” 사실은 문만 연다고 다 되는 게 아니에요.공유기와 홈 네트워크에서 우리는 공유기가 집 안의 문지기이자 안내 데스크라는 걸 배웠어요. 집 안 기기들이 바깥 인터넷으로 나갈 때는 공유기가 알아서 길을 터주죠. 근데 반대의 경우는 어떨까요? 바깥 세상에서 우리 집 안에 있는 특정 컴퓨터나 게임기에게 먼저 말을 걸고 싶을 때 말이에요.
“집에 있는 컴퓨터로 마인크래프트 서버를 열고 싶은데, 친구들이 접속을 못 해요.” “밖에서도 우리 집 나스(NAS)에 파일을 올리고 싶은데, 주소를 쳐도 응답이 없어요.”분명히 공인 IP, 사설 IP, 그리고 NAT에서 배운 공인 IP 주소로 접속을 시도했는데 왜 안 될까요? 오늘은 그 닫힌 문을 안전하게 여는 방법인 포트 포워딩 이야기를 해볼게요. 즉, 앞에서 봤던 NAT가 안에서 밖으로 나가는 흐름을 이어주는 이야기였다면, 이번 글은 그 반대로 밖에서 안으로 들어오게 하려면 무엇을 더 정해줘야 하는지 보는 편이라고 생각하면 돼요.
바깥에서 들어오는 길은 왜 따로 열어야 할까요?
거대한 아파트 단지를 상상해볼까요?- 아파트 정문에는 **택배 보관소(공유기)**가 있고,
- 각 세대(기기)는 **호수(사설 IP)**를 쓰고 있어요.
- 바깥 사람들이 아파트 단지를 볼 때는 **아파트 정문 주소(공인 IP)**만 보여요.
- 안에서 밖으로 보낼 때: “101호에서 피자 주문했어요” 하고 나가면, 공유기가 “아, 101호가 피자집이랑 대화 중이구나” 하고 기억했다가 오는 피자를 101호로 전해줘요. (이건 NAT가 알아서 해줘요!)
- 밖에서 안으로 올 때: 갑자기 누군가 정문에 와서 “피자 배달 왔습니다!” 라고 해요. 근데 공유기는 당황해요. “응? 지금 피자 기다리는 집이 없는데? 이거 누구한테 줘야 하지?”
왜 나가는 건 잘 되는데 들어오는 건 안 될까요?
포트와 소켓에서 포트가 “앱을 찾아가는 문”이라고 했잖아요. 공유기는 기본적으로 안에서 밖으로 먼저 말을 건 통신만 기억해요. 하지만 바깥에서 예약 없이 불쑥 찾아오면, 기존 NAT 변환 정보나 포트 포워딩 규칙이 없는 새 inbound 패킷은 우선 어느 내부 기기로 전달할지 정해져 있지 않아요. 여기에 방화벽 정책도 별도로 적용되어 허용 여부를 판단할 수 있어요. 이 “누굴 찾아왔는지 알려주는 꼬리표”가 바로 포트 번호이고, 그 번호를 보고 “아, 이건 192.168.0.10 PC로 보내라는 거구나” 하고 길을 터주는 게 포트 포워딩이에요.공유기 설정 화면, 어떻게 채우면 될까요?
공유기 관리자 페이지에서 포트 포워딩 메뉴를 열면 보통 이런 칸들이 보여요. 어렵게 생각하지 말고 하나씩 채워볼까요?- 규칙 이름: 내가 알아보기 쉬운 이름 (예: 마인크래프트, NAS)
- 내부 IP 주소: 패킷을 받을 집 안 기기의 사설 IP (예:
192.168.0.10) - 프로토콜: 서비스가 사용하는 TCP/UDP 프로토콜만 정확히 열어요.
- 외부 포트 (External Port): 바깥 사람이 우리 집 공인 IP 뒤에 붙여서 들어올 포트 번호.
- 내부 포트 (Internal Port): 실제 그 기기 안에서 돌아가는 앱이 기다리는 포트 번호. (보통 외부 포트와 똑같이 맞춰요.)
DMZ 호스트는 들어오는 새 연결을 한 기기로 몰아주는 설정이에요
“포트 번호 따지기 귀찮아! 그냥 바깥에서 오는 모든 연결을 특정 PC 한 대에 다 몰아줘!” 하는 설정이에요. 설정은 편하지만, 그 PC의 모든 문(포트)이 인터넷에 노출되는 거라 보안상 위험할 수 있어요. 꼭 필요한 경우가 아니면 포트 포워딩으로 필요한 문만 여는 걸 권장해요.가정용 공유기의 DMZ 호스트 설정은 기업 네트워크에서 말하는 별도 DMZ 네트워크 구역과 같은 개념은 아니에요.
잠깐! UPnP랑 hairpin NAT는 또 뭘까요?
공유기 설정을 보다 보면 처음 보는 이름이 또 나와요. 바로 UPnP 와 hairpin NAT 예요.UPnP는 “앱이 공유기에게 문 좀 열어달라고 부탁하는 기능”이에요
예를 들어 게임기나 화상회의 앱이, “제가 지금 이 포트 써야 하니까 잠깐 열어주세요” 하고 공유기에게 자동으로 요청할 수 있어요. 편하긴 해요. 직접 포트 번호를 안 적어도 되니까요. 근데 반대로 말하면, 어떤 앱이 자동으로 문을 열고 닫는지 사용자가 잘 모를 수도 있다 는 뜻이기도 해요. UPnP가 필요하지 않다면 끄는 선택도 가능하고, 사용할 경우 어떤 매핑이 생성되고 있는지 확인하는 게 좋아요.hairpin NAT는 “집 안에서 우리 집 공인 주소로 다시 들어가려는 상황”이에요
가끔 이런 경우가 있어요.“밖에서는 접속되는데, 같은 집 와이파이에서는 우리 집 공인 IP로 접속이 안 돼요.”이건 이상한 일이 아니라, 공유기가 집 안에서 나간 척했다가 다시 집 안으로 들어오는 길 을 제대로 돌려주지 못하는 경우가 있어서 그래요. 이걸 보통 hairpin NAT 나 NAT loopback 같은 말로 불러요. 즉,
- 바깥 LTE에서는 접속되는데
- 같은 집 Wi-Fi에서는 공인 IP 주소로 접속이 안 된다면
근데 왜 포트 포워딩을 해도 안 될 때가 있을까요?
분명히 설정을 다 했는데도 안 된다면, 보통 이 세 가지 중 하나가 범인이에요.1. 윈도우 방화벽이 막고 있어요 (호스트 방화벽)
공유기 문은 열었어도, 정작 패킷을 받는 그 기기 자체의 방화벽이 “너 누구야!” 하고 막을 수 있어요. 윈도우라면 인바운드 규칙을 확인해야 하고, NAS나 리눅스 서버라면 그 장비 쪽 방화벽이나 서비스 허용 설정을 다시 봐야 해요.2. 이중 NAT 상황이에요 (공유기 앞에 공유기가 더 있어요)
공유기와 홈 네트워크에서 잠깐 말했던 이중 NAT 상황이에요. 통신사 모뎀이 사실은 공유기 역할을 하고 있다면, 모뎀에서도 포트 포워딩을 하고, 내 공유기에서도 또 해줘야 해요. 문을 두 번 열어야 하는 거죠.3. CGNAT (통신사가 공인 IP를 안 줘요)
요즘은 공인 IP가 부족해서 통신사가 여러 집을 하나의 공인 IP로 묶어서 관리하기도 해요. 이걸 CGNAT라고 불러요. 공인 IP, 사설 IP, 그리고 NAT에서 봤던 NAT를 통신사 쪽에서 한 번 더 하는 상황이라고 생각하면 이해하기 쉬워요. 이 경우에는 공유기에서 포트 포워딩만 설정해도 바깥에서 직접 들어오기 어려울 수 있어요. 통신사와 접속 환경에 따라 공인 IP 제공 옵션을 확인하거나, 조건이 맞으면 터널링 서비스나 IPv6 같은 대안을 검토할 수 있어요. 지금은 “공인 IP를 못 받으면 포트 포워딩만으로는 안 풀릴 수 있구나” 정도만 잡아두면 충분해요.그럼 진짜로 어떻게 확인하고 해결할까요?
포트 포워딩 트러블슈팅의 정석 흐름이에요. 이 순서대로 차근차근 확인하면 대부분 여기서 문제를 찾게 돼요.- 사설 IP 고정: 내 컴퓨터의 사설 IP가 자꾸 바뀌면 공유기 규칙이 엉뚱한 곳을 가리키게 돼요. 공유기 설정에서 내 컴퓨터의 IP를 고정(DHCP 예약)해주세요. 공유기와 홈 네트워크에서 봤던 DHCP가 여기서 다시 중요해져요.
- 내부 접속 확인: 같은 집 안의 다른 기기에서 사설 IP로 접속이 되는지 먼저 보세요. 여기서 안 되면 앱 설정이나 컴퓨터 방화벽 문제예요.
- 외부 포트 오픈 확인: ‘Open Port Check’ 같은 사이트에서 우리 집 공인 IP의 해당 포트가 열려 있는지 확인하세요.
- 공인 IP 확인: 공유기가 받은 WAN IP가
10.x.x.x나172.16.x.x~172.31.x.x, 혹은100.64.x.x대역이라면 통신사 차원에서 막혀 있는 경우가 많아요.
자, 정리해볼까요?
- 포트 포워딩은 외부에서 불쑥 찾아온 패킷을 집 안의 특정 기기로 안내해주는 배달 장부예요.
- 기존 NAT 변환 정보나 포트 포워딩 규칙이 없는 새 inbound 패킷은 내부 전달 대상이 정해져 있지 않고, 방화벽 정책도 별도로 적용될 수 있어요.
- DMZ는 모든 포트를 한 기기로 몰아주는 기능이지만 보안에 주의해야 해요.
- 설정이 안 된다면 컴퓨터 방화벽, 이중 NAT, 혹은 통신사 CGNAT를 의심해봐야 해요.
- 원활한 운영을 위해 패킷을 받는 기기의 사설 IP를 고정하는 것이 필수예요.
다음 글 예고
문을 열어주긴 했는데, 어떤 패킷을 허용하고 막을지는 무엇을 기준으로 판단할까요?“포트는 열어뒀지만, 이상한 패킷은 알아서 걸러낼 수 없을까?”다음 글에서는 방화벽과 상태 기반 필터링 이야기를 통해, 단순히 문을 열고 닫는 수준을 넘어 패킷의 상태와 정책을 기준으로 판단하는 방화벽의 흐름을 알아볼게요.