메뉴 건너뛰기

안녕하세요~ 관리자입니다.

지금부터 몽구스 웹 서버를 독자들의 집에 있는 PC에 설치하고 휴대폰이나 외부 PC에서 몽구스웹서버에 접속하여 웹 페이지를 보는 방법에 관해 설명하겠습니다.

몽구스를 설치하는 과정은 우리 홈페이지의 “초간단! 5분 만에 내 컴퓨터를 웹 서버로 만들어보자” 블로그에서 자세히 설명하고 있으니 참고하십시오.

우리가 집 밖에서 집 안에 웹 서버를 설치한 컴퓨터에 접근할 수 있게 만드려면 다음과 같은 과정이 필요합니다.

 

1)집 안의 PC에 웹 서버를 설치하기

2)포트 포워딩(Port forwarding) 하기

 

 

몽구스 설치/실행

 

먼저 몽구스 웹 서버를 설치해 봅시다. 웹 프로그래밍 홈페이지의 Download 게시판에 그림1과 같이 6.3버전과 6.5버전이 올라와 있습니다.

마음에 드는 버전을 다운받으세요.

 

다운로드 게시판 http://www.webprogramming.co.kr/download

 

1.JPG

↑그림1 – Download 게시판에서 몽구스 웹 서버 다운받기

 

몽구스를 다운받아 설치할 폴더는 반드시 영문이어야 합니다.

그 이유는 몽구스가 한글을 인식하지 못하기 때문입니다.

설치는 비교적 간단합니다. 몽구스 웹 서버를 설치하면 다음과 같은 화면이 나옵니다.

 

2.jpg

↑그림2 –몽구스 웹 서버 설치 후 실행된 모습

 

이처럼 나오면 일단은 몽구스 웹 서버가 잘 실행되고 있는 것입니다.

하지만 뭔가 좀 부족한 모습입니다. 우선은 원하는 폴더를 지정하고 싶은데 지금 몽구스에서 기본으로 지정해 놓은 폴더가 보입니다.

그러면 이제 한번 하나씩 우리 입맛에 맞게 바꿔볼까요

 

컴퓨터의 오른쪽 아래에 보면 몽구스 아이콘이 있습니다. 이 아이콘을 클릭하시면 다음과 같은 컨텍스트 메뉴가 나옵니다.

여기서 “Advanced settings”를 눌러줍니다. 그리고 “Go to my address”의 옆에 나오는 IP주소를 잘 기억해두세요.

이 주소는 현재 몽구스가 설치된 PC의 IP 주소입니다.

 

3.jpg

↑그림3 – 실행 중인 몽구스 아이콘 클릭 시 보이는 컨텍스트 메뉴

 

Advanced settings를 클릭하면 그림 4의 웹 페이지가 화면이 출력됩니다.

 

4.jpg

↑그림4 – Advanced settings 화면

 

이제 여기서 다음 작업을 합니다.

    ● document_root : 작성된 웹 페이지를 저장하는 폴더 지정

    ● listening_port : 80번으로 바꾸기

 

document_root는 외부에서 몽구스에 접근했을 때 볼 수 있는 웹 페이지가 저장되는 폴더입니다.

여기에 독자들이 원하는 폴더의 위치를 입력하면 됩니다. 다음에 외부에서 접속한다면 보여줄 웹 페이지들을 작성하면 이곳에 가져다 놓아야 합니다.

listening_port는 포트 번호를 말합니다. 처음에는 8080으로 되어 있는데 우리는 80번으로 바꾸겠습니다.

80번으로 바꾸는 이유는 80번이 웹의 디폴트 포트 번호이기 때문입니다.

이제 Save Settings 버튼을 눌러 변경 내용을 저장합니다.

그러면 몽구스가 설치된 폴더에 mongoose.conf 파일이 생깁니다.

그런 다음에 지금 실행 중인 몽구스를 종료시키고(그림 3의 Exit 메뉴를 클릭하면 됩니다) 몽구스를 다시 실행 시키면 변경된 설정으로 동작하게 됩니다.

이제 여러분이 만든 파일을 document_root에 지정한 폴더 안에 넣어보세요.

저는 그림 5와 같이 test.html을 작성하여 그림 6과 같이 루트 폴더에 넣었습니다.

 

5.JPG

↑그림5 – test.html 소스코드

 

6.JPG

↑그림6 – document_root 폴더로 지정된 곳에 test.html 파일 저장

 

이제 웹 브라우저를 실행시켜, 몽구스 웹서버를 방문해 봅시다. 먼저 몽구스가 설치된 PC에서 웹 브라우저를 실행시킵니다.

혹은 집 안에 있는 다른 PC나 노트북에서 해도 됩니다. 아직 집 외부에서 접근할 수 있도록 조치를 하지 않았고 그 방법은 뒤에서 설명합니다.

몽구스를 방문하여 원하는 파일을 보는 방법은 2가지가 있습니다.

  • IP주소와 파일이름을 입력하는 방법
  • localhost와 파일이름을 입력하는 방법

 

첫 번째 방법은 그림3에서 Go to my address에 적힌 IP주소와 지금 여러분이 루트 폴더에 넣은 파일 이름을 그림 7과 같은 형식으로 웹 브라우저에 입력합니다.

이것은 현재 몽구스가 설치된 PC나 집 안의 다른 PC에서만 가능합니다. 현재 집 외부에서 접속할 수 없습니다.

http:// IP주소/파일이름

 

7.JPG

↑그림7 – IP주소와 파일이름으로 웹 서버에 접근

 

두 번째 방법은 그림 8과 같이 localhost와 파일이름을 입력하는 방법입니다. 이 방법은 몽구스를 실행하고 있는 컴퓨터에서만 가능합니다.

localhost는 자신의 컴퓨터를 의미합니다.

 

8.JPG

↑그림8 – IP주소와 파일이름으로 웹 서버에 접근

 

그림 9의 사례는 저의 집 안에 몽구스가 실행되는 PC와 같은 공유기에 연결된 휴대폰에서 접속한 화면이고, 그림 10은 노트북에서 접근한 사례입니다.

(여기서는 localhost로 접근할 수 없습니다)

 

9.jpg

↑그림9 – 집 안에 WIFI로 공유기에 연결된 스마트폰에서 접속한 모습

 

 

10.JPG

↑그림10 – 집 안에 WIFI 공유기에 연결된 노트북에서 속한 모습

 

그러나 LTE(Cellular network)를 사용하는 스마트폰에서는 그림 11과 같이 몽구스 웹 서버에 접속할 수 없습니다.

이것은 외부 네트워크(다른 공유기에 연결된)에 연결되어 있기 때문입니다.

지금부터 이 문제를 해결해보겠습니다. 집 안에 있는 몽구스를 집 외부의 컴퓨터나 LTE를 사용하는 스마트폰에서 접속하는 방법입니다.

 

11.jpg

↑그림11 – LTE를 사용하는 스마트폰에서는 몽구스에 접속할 수 없는 모습

 

 

포트 포워딩(Port forwarding)으로 집 밖에서 접속하도록 만들기

 

왜 같은 공유기에 연결된 컴퓨터에서는 몽구스에 접속할 수 있는데 외부(ex)LTE)에서는 접속이 안될까요?

다시 질문하면 “집에 있는 컴퓨터에 설치해 놓은 웹 서버에 외부에서 접속이 왜 안 되나요?

답부터 말씀드리면 집에 있는 모든 컴퓨터의 IP는 공유기가 생성한 사설 IP를 할당 받았고, 사설 IP는 외부에서 인식할 수 없기 때문입니다. 그림 12를 참고하세요.

 

12.JPG

↑그림12 – 공인 IP와 사설 IP

 

본격적으로 설명하기 전에 공인 IP, 사설 IP에 대해 알아보겠습니다.

공인 IP란 전 세계의 누구든지 식별할 수 있는 IP이고, 컴퓨터마다 서로 다른 IP입니다.

하지만, 사설 IP란 공유기가 집안에서만 사용할 수 있도록 생성한 IP입니다. 사설 IP는 외부에서 식별할 수 없습니다.

또한, 공유기에 무엇이 연결되었는지 밖에서는 알 수 없습니다.

 

그러면 왜 이런 사설 IP가 있을까요? 그 이유는 공인 IP주소가 부족하기 때문입니다. IP주소는 32bit로 이루어져 있습니다.

대략 40억 개의 주소를 만들 수 있는데 스마트 폰, 노트북, 컴퓨터 등등 전 세계적으로 기기들의 수가 워낙 많아서 공인 IP주소가 부족하게 되었습니다.

그래서 공인 IP주소 하나로 여러 컴퓨터를 연결해서 쓸 수 없을까 하는 고민 끝에 나온 방법이 서브넷을 구성하는 것입니다.

 

이제 그림 12를 다시 살펴봅시다. 공유기가 사설 IP를 만들도록 하여 사설 IP를 각 기기에 할당하고 인터넷에 연결하도록 합니다.

공유기는 외부에서 접근할 수 있도록 공인 IP(그림 12에서 138.76.29.7)가 주어지지만, 공유기에 연결된 집 안에서 공유기는 사설 IP 192.168.0.1로 보이게 됩니다.

외부에서 볼 때 공유기에 할당된 하나의 공인 IP주소이지만 서브넷 안에서는 여러 개의 사설 IP들이 있습니다.

공유기는 집 안에 있는 PC가 외부에 접속하려 할 때 공유기 자신의 공인 IP로 접속하는 것처럼 행동해서 집 안의 PC들이 외부와 통신할 수 있게 합니다.

그러면 집 안에 있는 컴퓨터에 설치된 몽구스 웹 서버를 집 외부에서 접속할 수 하려면 어떻게 해야 할까요?

 

포트 포워딩(Port forwarding)이라는 기법으로 해결합니다.

포트 포워딩은 공유기에 정보를 설정하여 외부에서 들어오는 데이터를 집 안의 특정 PC로 데이터가 전달되도록 길을 만드는 기법입니다.

이제 포트 포워딩(Port forwarding)이 일어나도록 공유기를 설정합시다.

명령 프롬프트(cmd) 창을 띄우고 ipconfig를 입력합니다.

 

13.jpg

↑그림13 – cmd창에서 ipconfig 입력 결과

 

여기서 우리가 필요한 것은 IPv4 주소와 기본 게이트웨이입니다.

기본 게이트웨이는 공유기의 사설 IP를 말하며, 포트 포워딩은 기본 게이트웨이에서 진행됩니다. IPv4 주소는 현재 컴퓨터의 사설 IP주소입니다.

이제 웹 브라우저에서 공유기에 접속해봅시다. 그림 14와 같이 기본 게이트웨이의 주소를 입력하면 됩니다.

 

14.JPG

↑그림14 – 웹 브라우저에 기본 게이트웨이(공유기)에 접속

 

그러면 그림 15와 같이 공유기를 설정할 수 있는 화면이 나옵니다. 여기서부터는 공유기의 종류나 회사에 따라 달라집니다. 저는 iptime 공유기를 사용하고 있습니다.

어느 공유기나 포트 포워딩 기능이 있으니 메뉴를 찾아 포트 포워딩을 하는 창으로 가면 됩니다. 여기서 관리도구를 클릭합니다.

 

15.JPG

↑그림15 – 공유기 설정 화면

 

그림 16과 같은 로그인 창이 나오는데 여러분이 설정해놓은 아이디와 비밀번호를 입력하시면 됩니다.

기억이 안 나면 공유기를 초기화하는 방법이 있으니 웹에서 찾아보시길 바랍니다.

 

16.JPG

↑그림16 – 공유기 사용자 인증 화면

 

그림 17과 같이 메뉴탐색기/고급설정/NAT/라우터 관리 메뉴를 선택하면 ‘포트포워드 설정’ 항목이 나옵니다. 이것을 클릭합니다.

17.jpg

↑그림17 – 공유기 설정 메뉴 탐색기

 

그러면 그림 18과 같이 포트 포워딩을 지시하는 화면이 나옵니다.

 

18.PNG

↑그림18 – 포트 포워딩 설정 창

 

그림 18의 아래쪽을 보면 그림 19와 같이 포트 포워딩 규칙을 만드는 부분이 있습니다.

 

19.jpg

↑그림19 – 포트 포워딩 설정 창

 

이제 여기서 우리가 해야 할 것은 다음과 같습니다.

  • 규칙이름 정하기: 아무 이름이나 원하는 이름 입력
  • 내부 IP주소 적어주기: 몽구스가 설치된 사설 IP 주소 입력(그림13에서 본 IPv4 주소)
  • 외부 포트: 80으로 입력
  • 내부 포트: 몽구스 웹 서버의 listening_port를 80으로 정했기 때문에 80으로 적어줍니다.

 

‘내부 IP주소’란 공유기를 통해서 들어온 데이터가 어떤 사설 IP로 가야 할지 목적지를 정해주는 것입니다.

하지만 공유기로 들어온 모든 데이터가 ‘내부 IP주소’로 주어진 컴퓨터로 가는 것은 아닙니다.

‘외부 포트’ 번호로 들어온 데이터만 ‘내부 IP주소’로 갑니다. 정확히 말하면 ‘내부 IP 주소’를 가진 컴퓨터의 ‘내부 포트’로 이동하게 됩니다.

몽구스가 사용하는 포트 번호가 80이어서 외부/내부 포트 번호를 모두 80으로 설정하였습니다. 포트 포워딩 설정을 마쳤습니다.

 

이제는 외부 네트워크에서 집 안의 몽구스 웹 서버를 방문해봅시다. 바깥에서 공유기의 공인 IP 주소를 입력하면 포트 포워딩으로 몽구스가 접속될 것입니다.

참고로 사설 IP를 가진 컴퓨터의 공인 IP(공유기의 IP 주소)를 알려면 다음 두 가지 방법이 있습니다.

  • 공유기 설정 메뉴 탐색기(그림13)에서 시스템 요약정보에서 확인 가능
  • 웹에서 내 공인 IP라고 검색해서 알아낼 수 있습니다.

 

20.JPG

↑그림20 – 공유기 설정 메뉴에서 공인 IP 확인

 

21.JPG

↑그림21 – 웹에서 공인 IP 확인

 

이제 외부 컴퓨터에서 접근해보겠습니다. 그림 22는 LTE에 연결된 스마트폰에서 ‘공유기의 공인 IP/test.html’을 입력한 모습입니다.

 

22.png

↑그림22 – LTE에 연결된 스마트폰에서 내 집에 설치된 몽구스 접속

 

이제 외부에서 접근할 수 있게 되었습니다.

그러나 여기에는 문제가 있습니다. 집 안에 있는 컴퓨터는 공유기가 항상 같은 사설 IP를 할당하지 않는다는 점입니다.

즉 몽구스 웹 서버 컴퓨터의 사설 IP가 바뀔 수 있다는 것입니다. 하지만, 공유기를 끄거나 하지 않으면 거의 그런 일은 없습니다.

혹은 집 안에 새로운 컴퓨터나 와이파이 프린터 등을 새로 설치하지 않는 경우 그런 일은 거의 없습니다.

하지만 모르는 일이니까 독자들은 가끔 혹은 외부에서 웹 서버를 접속할 수 없는 경우 몽구스가 설치된 컴퓨터의 명령 창에서 ipconfig 명령을 쳐서 사설 IP 주소가 바뀌었는지

확인해보는 것이 좋겠습니다. 바뀌었다면 그림 19에서 내부 IP 주소만 바꾸어주면 됩니다.

?
  • ?
    db초보 2018.06.10 03:10
    db텀 프로젝트를 발표에서 몽구스로 연결 하려고 하는데 간단한 html들은 외부에서 그냥 접속이 되는데 만든 php들은 실행이 안됩니다.. 혹시 여기서는 크기가 커지면 외부에서 보는게 불가능 한가요? 또 https://cesanta.com/ 여기서 upgrade 하라는데 돈을 내고 사야 가능한건가요??
  • ?
    관리자 2018.06.10 13:48
    이 홈 페이지에서 몽구스를 설치하는 것은
    간단한 HTML, CSS3, 자바스크립트 등 클라이언트 웹프로그래밍을 공부하기 위해 복잡한 웹 서버를 설치하지 않고 간단히 하기 위해서입니다.

    DB 텀프로젝트 정도의 경우는 몽구스를 사용하면 안 될 것 같아요.
    아파치 서버 정도는 있어야 DB와 HTML 그리고 PHP 등을 연동하기 쉬울 것 같습니다.
  • ?
    db초보 2018.06.11 22:25
    답해주셔서 감사합니다 !
  • ?
    해피 2018.08.23 18:25
    안녕하세요. 몽구스 웹 서버의 document root를 두군데로 지정하여 사용하고 싶은데 가능한가요? 만약 불가능하다면 한 PC에서 몽구스를 2개 설치하여 사용할 수 있나요?
  • ?
    관리자 2018.08.23 19:36

    1. document root를 두군데로 지정하여 사용하는 것은 안됩니다.
    2. 한 PC에 몽구스를 2개 설치하는 것은 문제 없습니다. 그런데 각 몽구스 웹 서버가 클라이언트의 접속을 기다리는 포트를 서로 다르게 지정해야 합니다. 예를 들어 하나는 80 포트로 다른 하는 81포트로 하면 됩니다.
    하지만, 클라이언트가 80, 81 포트로 구분하여 접속해야 몽구스를 구분할 수 있습니다.
    3. 어떤 목적으로 사용하는지는 모르지만, document root를 한 군데로 하고 그 밑에 서브디렉터리에 서로 다른 웹 페이지들을 넣으면 될 지도 모르겠네요. 첫 페이지에는 document root의 웹 페이지가 출력되고
    사용자가 링크를 클릭하면 서로 다른 서브디렉터리의 웹 페이지들을 출력하면 될 것 같은데요......

  • ?
    해피 2018.08.30 09:52
    답변 감사합니다. 한 PC에 몽구스 2개 설치해서 포트 번호를 바꿔줬음에도 불구하고 계속 이전에 설치한 다큐먼트루트를 보는데..이럴 경우는 어떻게 해야하나요?
  • ?
    jun 2018.10.26 17:17
    안녕하세요. 관리자님 좋은 정보글 감사합니다.
    질문이 한가지 드려도 될런지요..
    제가 윈도우쪽에 몽구스를 켜놓고, 가상머신에 우분투를올려 연결 테스트를 진행해 보았습니다.
    우분투쪽 ip주소가 윈도우 사설ip(192.168.xx) 형식이 아닌 10.0.xx이렇게 되있던데 포트포워딩 없이 연결이 되는 이유가 궁금합니다.
    감사합니다.
  • ?
    누노 2018.11.21 09:46
    몽구스에서 asp 나 asp.net 은 사용할 수 없는건가요?
  • ?
    관리자 2018.11.21 18:16

    몽구스는 C 코드로 작성되었고, 단 하나의 실행 파일(exe)로 만들어진 매우 기초적인 수준의 웹 서버입니다.
    웹 브라우저와 기본적인  HTTP 통신을 지원하여 웹 브라우저로부터의 기본적인 요청만 처리합니다. 몽구스는 서버쪽에서 실행되는 다양한 기능은 제공하지 않습니다.
    asp나 asp.net을 활용하는 서버 애플리케이션을 실행시켜주는 기능을 없고, PHP는 가능합니다.

    이 책에서 몽구스를 이용하는 이유는 설치가 편하여 웹 서버를 통해 HTML 파일을 다루는 연습을 하기 쉽기 때문입니다.
    이 책은 HTML 페이지를 만들고, 웹 클라이언트에서 실행되는 자바스크립트 작성에 대해서만 다루기 때문에, 서버 측 애플리케이션은 다루지 않습니다.
    이런 목적이라면 몽구스 정도면 적합합니다.
    asp 프로그램을 작성하여 실행시키려면 윈도우의 IIS를 사용하는 것이 좋겠습니다.

  • ?
    알려주세요 2019.09.22 22:02
    시스템 요약정보에서 보이는 ip랑
    웹에서 검색한 내 공인 ip랑 다르게 보입니다.
    또한 포트포워딩을 했는데도 다른 ip로 접속한 기기에서 두 개의 ip 모두 접속이 안됩니다.
  • ?
    관리자 2019.09.23 00:23
    시스템 요약정보에서 보이는 ip랑
    웹에서 검색한 내 공인 ip랑 다르게 보입니다.
    ->글쎄요.
    아마 시스템 요약 정보가 정확한 것일 겁니다. 왜냐하면 공유기가 직접 알려주었기 때문입니다.

    또한 포트포워딩을 했는데도 다른 ip로 접속한 기기에서 두 개의 ip 모두 접속이 안됩니다.
    -> 몽구스를 실행시키켜 놓고 외부에서 접속해 보았는지요?
  • ?
    무무 2020.04.02 03:05

    안녕하세요!
    기본 게이트웨이 주소를 인터넷창에 검색해도 위와 같은 공유기 설정 화면이 안떠서요... 페이지에는 게이트웨이 주소에서 연결을 거부 했다고 뜹니다.
    "사이트에 연결할 수 없음" 과 함께요

    혹시 방화벽이 막고 있는 걸까요??
    도움주시면 정말 감사합니다ㅠㅠ

  • ?
    곰바우 2020.11.04 08:58
    알려주신 방법대로 몽구스 서버를 구축하고 외부에서 접속도 성공했습니다. 그런데, ftp 프로그램으로 접속을 시도했으나 안되네요.(알드라이브 사용) 아이디와 비번은 공유기 아이디 비번을 입력했습니다. 지도조언 부탁합니다.
  • ?
    관리자 2020.11.04 14:37
    집에 있는 컴퓨터에서 FTP 서버가 몇번 포트를 사용하고 있는지 알아야 합니다.
    일반적으로 20. 21번을 사용하고 있을 겁니다.

    그래서 앞서 80포트를 포트포워딩한 것처럼
    포트포워딩을 추가하여 21번 포트도 포트포워딩하면 됩니다.
  • ?
    라즈베리 2020.12.11 21:18
    안녕하세요, 책을 완독했고 이번 블로그 글도 유익하게 잘 보았습니다. 궁금한점이 있는데요, 댓글들과 게시물을 보니 내부 포트랑 외부 포트 개념이 나오는데 둘의 차이가 무엇인가요?
    포트가 호스트의 어떤 프로세스와 통신할지에 대한 개념이라고 이해했는데, 만약 외부 포트를 80으로 해놓고 내부 포트를 20으로 해놓고 핸드폰으로 외부에서 공인 IP 주소로 접속하면
    ftp인가?? 다른 통신방법으로 연결이 되는건가요?
  • ?
    라즈베리 2020.12.11 23:01

    Mongooes 웹 서버 프로그램을 실행시켜서 실행한 컴퓨터로 localhost, 사설 IP로 접속하는 것은 성공했습니다. 그런데, 핸드폰을 통해서 사설 IP를 이용해서 접속하는 것은
    실패했습니다. 그래서 문제를 해결하려고 이것저것 시도해봤는데요(하단 트레이에서 몽구스의 Go To Address: ip주소로 연결하는데 실패한것입니다. 실제로
    자동으로 이 IP주소로 연결이 되고요..) ipconfig에서 이더넷 어댑터가 가리키는 IPV4 주소(기본 게이트 웨이는 표시가 안되어 있었습니다.)를 이 앱이 가리키고 있었습니다.
    무선 LAN 어댑터 Wi-FI에서 가리키는 IPV4주소로 스마트폰을 통해서 접속해보니 성공했습니다. 이 영역에서는 기본 게이트웨이 주소가 있었고요...
    근데 궁금한건, 왜 이더넷 어댑터의 IPV4 주소로 웹 서버 설치한 컴퓨터는 접속이 되고 , 스마트폰은 안되는지, 무선 LAN 어댑터 Wifi에서 나타내는 IPV4에서는 컴퓨터랑 스마트폰 둘다 접속이 가능한지 잘 모르겠습니다... 이 둘의 차이가 있나요?

  • ?
    아기잠수함 2023.06.13 18:23
    안녕하세요. 몽구스 서버는 V6.5이상 없나요? 테스트를 하는데 로딩중에 멈춤현상이 일어나요.

Admin's Blog

관리자의 블로그입니다.

  1. No Image 23Aug
    by 관리자2
    2018/08/23 by 관리자2
    Views 1390 

    Array의 sort() 메소드를 이용하여 정렬하기

  2. 집 안의 PC를 몽구스 웹 서버로 만들고 외부에서 접속하기

  3. 웹페이지를 그래서 어떻게 만들라는거야? 웹프로그래밍 스타팅 가이드라인

  4. 초간단! 5분만에 내 컴퓨터를 웹 서버로 만들어보자

목록
Board Pagination Prev 1 Next
/ 1
위로