목차
외부 요청을 내부 서버로 보내려면 공유기의 관리 화면과 대상 서비스의 포트 번호부터 준비해야 합니다. 공유기 제조사마다 메뉴 이름은 다를 수 있지만, 입력해야 할 값은 대부분 비슷합니다. 설정 뒤에는 내부망이 아닌 모바일 데이터 같은 외부망에서 접속하고, 포트 규칙을 비활성화했을 때의 상태 변화도 비교해 보세요. 실패하면 WAN IP와 외부 IP, 포트 매핑, 대상 서비스의 리스닝 상태를 차례로 확인하면 CGNAT·공유기 규칙·서버 문제를 구분할 수 있습니다.
사전 확인: 사설 IP와 공인 IP
먼저 서버나 NAS처럼 외부에서 접속할 기기의 사설 IP를 확인합니다. Windows에서는 명령 프롬프트에서 ipconfig를 실행해 IPv4 주소를 확인하고, NAS는 관리자 페이지의 네트워크 설정에서 IP 주소를 확인합니다. SSH로 접속하는 Linux 계열 기기라면 ip addr 명령으로 확인할 수 있습니다.
ipconfig
이 주소가 자동으로 바뀌면 포트포워딩 대상이 달라져 접속이 끊길 수 있습니다. 공유기 관리자 페이지의 DHCP 고정 할당(예약) 기능으로 해당 기기의 MAC 주소에 항상 같은 사설 IP를 배정하는 방법이 가장 간단합니다. 네트워크 구성을 알고 있다면 기기 자체에서 수동 IP를 설정할 수도 있습니다.
공유기 상태 화면의 WAN IP와 인터넷에서 확인한 외부 IP가 서로 다르면 상위 공유기나 통신사 NAT를 거치는 환경일 수 있습니다. WAN IP가 100.64.0.0/10 대역이거나 사설 IP라면 CGNAT 또는 이중 공유기 환경을 의심할 수 있습니다. 이런 환경에서는 일반적인 포트포워딩만으로 외부 접속이 되지 않을 수 있으므로, 상위 공유기 설정이나 통신사 공인 IP 제공 여부를 확인해야 합니다.
공유기 포트포워딩 설정 방법

공유기 관리자 페이지에서 포트포워딩, 가상 서버 또는 NAT 메뉴를 엽니다. 새 규칙을 만들고 외부에서 들어오는 포트를 내부 기기의 사설 IP와 서비스 포트에 연결합니다.
아래 외부 주소:8443에서 공유기 포트 매핑을 거쳐 192.168.0.50:443으로 이어지는 값은 문서용 예시입니다.
예를 들어 외부에서 8443 포트로 접속해 내부 기기의 443 포트 서비스를 열려면 다음처럼 입력합니다.
내부 IP: 192.168.0.50
외부 포트: 8443
내부 포트: 443
프로토콜: TCP
외부 포트와 내부 포트는 같을 필요가 없습니다. 외부 포트는 인터넷에서 접근할 입구이고, 내부 포트는 대상 기기에서 실제 서비스가 대기하는 번호입니다. 관리 페이지에 시작·끝 포트를 따로 입력하는 방식이라면 단일 포트는 같은 번호를 입력합니다.
외부에 포트를 개방하면 인터넷에서 해당 서비스에 접근할 수 있게 되므로, 관리자 페이지나 NAS 관리 포트처럼 민감한 서비스는 직접 노출하기보다 VPN이나 별도의 접근 제어 방식을 사용하는 것이 안전합니다.
TCP는 연결 상태와 데이터 순서를 확인하는 웹 서버, 원격 접속 등에 주로 사용합니다. UDP는 실시간 통신이나 일부 게임·방송 서비스처럼 빠른 전송이 중요한 경우에 사용합니다. 프로토콜별로 별도 규칙이 필요하므로, 서비스 안내에 TCP와 UDP가 모두 적혀 있다면 규칙도 각각 만들어야 합니다.
연결이 안 될 때 확인할 항목
잘못된 사설 IP를 입력하면 요청이 의도한 기기로 전달되지 않을 수 있습니다. 대상 기기와 방화벽의 응답에 따라 시간 초과나 연결 거부가 나타날 수 있으므로 오류 문구만으로 원인을 단정하지 마세요. Windows 대상 기기에서는 ipconfig로, NAS에서는 관리자 페이지의 네트워크 설정으로 사설 IP를 다시 확인하고, 공유기 규칙의 내부 IP와 일치하는지 비교하세요.
기기 내부 방화벽이 해당 포트를 차단하거나 서비스가 내부 포트에서 실행되지 않아도 같은 현상이 나타납니다. 먼저 같은 네트워크에서 192.168.0.50:443처럼 내부 주소로 접속한 뒤, 모바일 데이터 환경에서 공인 IP와 외부 포트로 테스트하면 원인을 분리하기 쉽습니다. 서버 자체에서만 응답하고 같은 LAN의 다른 기기에서는 접속되지 않는다면, 서비스가 127.0.0.1에만 바인딩됐는지와 대상 방화벽을 확인하세요. 내부 연결이 된 뒤에도 외부에서 실패한다면 포트포워딩 실패 진단 글의 WAN 주소·이중 NAT·포트 매핑 순서로 범위를 좁힐 수 있습니다.
CGNAT 환경에서는 규칙이 정상 저장되어도 외부 요청이 집의 공유기까지 도달하지 않습니다. 공유기의 WAN IP와 외부 IP를 다시 비교하고, 차이가 계속되면 상위 장비의 포트포워딩 또는 통신사의 공인 IP 지원을 확인하세요.
연결 거부와 포트포워딩 실패를 구분한 실험
2026년 10월 18일 Docker Engine 29.6.2에서 외부 네트워크를 끈 임시 컨테이너의 127.0.0.1에 Python 소켓 리스너를 열었습니다. 같은 컨테이너에서 연결은 성공했고, 리스너를 닫은 뒤 같은 포트에 다시 연결하자 ConnectionRefusedError와 errno 111이 나왔습니다. 실험의 포트는 운영 서비스가 아닌 임시 포트입니다.
이 결과는 대상에서 프로세스가 듣고 있는지 확인하는 예시입니다. 실제 공유기 포트포워딩, 방화벽, 외부망이나 CGNAT를 검사한 결과는 아니므로 외부 접속 실패의 원인으로 곧바로 단정할 수 없습니다.
결론
공유기 포트포워딩 설정은 사설 IP를 고정한 뒤 외부 포트와 내부 포트를 정확히 연결하는 작업입니다. TCP·UDP를 구분하고 CGNAT 여부까지 확인하면 접속 실패 원인을 훨씬 빠르게 찾을 수 있습니다.