MY MEMO

[NETWORK] Port Forwarding으로 집에서 웹서버 운영하기 본문

STUDYING/OS

[NETWORK] Port Forwarding으로 집에서 웹서버 운영하기

l_j_yeon 2017. 4. 21. 17:06

참고 : https://opentutorials.org/course/228/6040 


+) 포트포워딩이란? 

참고 : http://storytown.tistory.com/14


+) 웹서버란 웹페이지(http)를 클라이언트(브라우저)와 주고 받기 위한 소프트웨어이다.



집에서 서버를 운영하는 것의 단점

1. 네트워크의 불안정 -> 간단한 개인적인 것은 OK

2. 전기세가 많이 듬

3. 가정에서 사용하는 IP는 변경될 수 있음 (즉 고정 IP가 아닌 동적 IP)

-> IP는 지금 포화상태에 있음 -> 통신사가 인터넷을 제공할때 IP를 계속 변경할 수 있음

ex) 다른 사람이 인터넷을 해제

=> 이 문제를 해결할 수 있는 방법

 Dynamic Domain Name System(DDNS) : IP가 변경될 때마다 바뀐 정보를 갱신시킴

+) 네임서버


클라이언트는 브라우저가 설치된 컴퓨터다. 사용자가 URL을 주소창에 opentutorials.org를 입력하고 엔터를 치면, 

(1) 브라우저가 설치된 컴퓨터는 opentutorials.org의 IP를 알아내기 위해서 가장 가까운 곳에 위치한 DNS에 opentutorials.org의 IP를 문의 한다.

(2)가장 가까운 DNS 서버가 IP를 알고 있다면 즉시 IP 주소를 알려준다. 하지만 IP 주소를 모르면 루트 도메인 네임서버에게 문의한다. 

(3) 루트 네임서버는 도메인의 최상위 도메인이 .org인 것을 보고 .org가 등록된 네임서버의 IP를 전달한다. 

    이것은 이런 의미가 된다. "나는 IP 주소를 가지고 있지 않지만, .org 네임서버에게 물어보면 도와줄꺼야" 

(4) 가장 가까운 DNS는 org 도메인을 관리하는 네임서버에게 문의한다. 

(5) org 네임서버는 opentutorials의 네임서버 IP 주소를 알려준다. 

(6) 가장 가까운 DNS 서버는 opentutorials의 네임서버에게 문의하고, 

(7) www 의 네임서버를 알려준다.

(8) 최종적으로 www 네임서버에게 문의 후 

(9) www.opentutorials.org의 IP 주소를 얻는다. 

(10) 가장 가까운 DNS 서버는 이 IP 주소를 클라이언트에게 알려준다. 클라이언트 컴퓨터는 이 IP를 브라우저에게 알려주면 브라우저는 이 IP에 해당하는 컴퓨터에 접속 할 수 있게 된다. 

참고 : https://opentutorials.org/course/559/2802


4. client가 공유기로 연결을 해서 공유기에 연결된 server를 찾아가야 하는데 ip만으로는 불가능

=> port forwarding!!!!!


port란?

socket에 할당하는 것

각 ip마다 문이 있는데 1~1024번 문은 특별한 사람만 사용이 가능

예를 들어 80 뒤에는 web site가 있음

따라서 DNS:80을 하면 접속이 되지만 DNS:20을 하면 접속 불가능


port forwarding이란?

예를들어 80번 포트로 사용자가 접근을 했다면 특정한 곳으로 연결이 되도록 해주는 것


localhost : 자신의 ip 127.0.0.1

web browser와 web server가 같은 컴퓨터에 위치해 있을 때 사용


1. my ip 검색 or cmd창에서 ipconfig 명령어 검색

                                -> 이더넷 어댑터 IPv4 주소

두 개의 ip가 일치한다 : 그대로 진행

일치하지 않는다: port forwarding

왜 일치하지 않을까? 

공유기를 사용하면! 

왜? 인터넷으로 찾은 ip는 공유기의 ip, 명령어로 검색한 건 공유기가 연결된 network안에서 나의 ip


2. 192.168.0.1으로 인터넷 접속



+) my ip말고 여기서도 자신의 공유기 ip주소를 알 수 있음


3. 


내부 ip란?

우리가 서버로 사용할 것의 내부 ip주소를 지정하는 것

밑에 나와있는 숫자가 ex)위에서는 192.168.0.2 가 공유기의 주소 이것을 사용해도 괜찮음

아니면 명령어로 입력해서 알아냈던 주소를 사용해도 ok


외부포트?

클라이언트가 몇번 포트로 들어왔을때 적용할것인지 ex)80번 포트


내부 포트?

서버는 몇번 포트에서 대기하고 있을 것인지 ex)80번 포트


4. 확인하는 방법!

2번에서 알았던 외부 IP주소를 copy하고 web주소창에 넣어주면 bitnami에서 자신이 만들었던 페이지가 뜸!

+) exe파일로 만들면 주소에 접근했을 때 자동으로 다운로드!


DDNS를 iptime에서 지원해주기도 한다.



호스트이름을 자신이 원하는 웹사이트의 이름으로 만들고,

사용자 계정과 암호를 입력해 추가하면 

웹사이트 이름을 쳐도 들어갈 수 있음


이것은 iptime사에서 운영하고 있는 도메인 서버이다.

ip가 변경되었다고 하더라도 DNS를 입력하면 자동으로 웹사이트로 들어간다.


+) 192.168.0.1로 연결이 안되길래 ipconfig로 내 ip를 쳐봤더니 바로 bitnami가 뜬다.

   내 껀..미리 port forwarding을 했나..

Comments