본문 바로가기

programmer/네트워크,통신

공유기 포트포워딩이란?

포트포워딩



포트포워딩의 필요



보통의 사람들은 포트포워딩을 모르고 살아도 전혀 문제가 없다. 하지만 프로그래밍에 관심을 가지게 되면서 언젠가 집에 있는 컴퓨터로 서버를 운영해보고 싶을 것이고, 그 때 포트포워딩이 필요하다. 만약 집에 공유기가 없고 외부 ip가 그대로 서버로 사용하는 컴퓨터의 ip 주소가 된다면, 포트포워딩이 굳이 필요없을지도 모른다. 하지만 보안적인 문제나 현재 공유기를 사용하지 않는 집이 거의 없다는 것을 생각해보면 포트포워딩은 거의 필수이다.


.



포트포워딩이란



외부에서 서버쪽으로 데이터를 받고 싶다는 신호를 보내기 위해서는 ip 주소말고도 고려해야 하는 것이 바로 포트이다. 포트는 ip 주소라는 벽에 있는 문과 같은 것인데, 이러한 문이 ip 주소마다 수만개가 있다. 일부 특정 포트는 각 포트를 활용하는 역할이 부여되어있고, 나머지의 포트는 특별한 역할이 없다.

만약 외부에서 1.231.XXX.XXX라는 서버 쪽 ip에 접속하려고 한다. 보통의 경우 80번 포트로 자동으로 접근한다. 그런데 1.231.XXX.XXX가 서버로 사용되는 컴퓨터로 바로 연결되는 것이 아니라, 공유기를 거쳐서 연결되는 경우를 생각해보자. 공유기에는 컴퓨터, tv, 핸드폰 등 유무선으로 여러 기기들이 연결되어 있다. 공유기로 부터 할당받은 서버컴퓨터의 ip를 192.168.0.2라고 하자.

외부에서 1.231.XXX.XXX의 특정 포트로 접속했을 때, 192.168.0.2로 연결시켜주는 것을 포트포워딩이라고 한다. 만약 포트포워딩 설정이 되어있지 않다면? 외부로부터의 접근은 공유기에서 막혀버릴 것이다.



포트포워딩 설정하기



밑의 사진들에서 192.168.1.x로 시작하는데 192.168.0.x라고 생각하고 보시면 됩니다.



  1. 먼저 공유기의 설정창으로 이동한다. 일반적으로 192.168.0.1로 접근하면 된다.


    enter image description here



  2. 고급설정 -> NAT/라우터 관리 -> 포트포워드 설정



  3. 서버로 설정할 컴퓨터의 ip 주소(192.168.0.x)를 입력, 규칙이름은 아무렇게나 입력, 프로토콜 TCP, 외부 포트 80~80 내부 포트 80~80으로 설정한다. 즉, 외부에서 1.231.xxx.xxx의 80번 포트로 접속하면 192.168.0.x로 연결시켜준다는 의미이다.


    enter image description here



  4. 주소창에 1.231.xxx.xxx를 입력하면 웹 서버로 접속할 수 있는 것을 확인할 수 있다. 만약 포트를 80이 아닌 8080으로 포트포워딩 했다면 명시적으로 1.231.xxx.xxx:8080을 적어주어야 한다. 1.231.xxx.xxx는 :80이 생략된 것 뿐이다.