안녕하세요. 지난번에도 글을 올렸지만, 도메인을 쓰지않았어서 다시 올립니다.

제가 공부를 시작한지 얼마 되지않아 모르는부분이 많습니다. 양해부탁드립니다. 

 

node.js 서버를 사용하고 있고, 도메인은 freenom에서 무료로 만들었습니다.

webRTC를 사용하려고 하는데 localhost가 아니면 https를 사용해야만 카메라 허용이 가능하다고 하여 검색하다가,

클라우드플레어를 사용하면 인증서가 따로 필요 없이 https를 할 수 있다고 하여서

네임서버나 DNS, SSL도 Flexible로 바꾸는 등 설정을 똑같이 했습니다. 80번 포트도 사용하였습니다. 

클라우드플레어는 무료 버전이고, 웹호스팅은 사용하지 않습니다. 

 

처음에 ip주소를 cmd창에서 ipconfig를 쳐서 나온 주소를 사용하였는데 1002 오류가 떠서,

네이버에서 ip주소로 검색하여 나온 주소를 사용하니 522에러가 나옵니다. 

저번 질문에서 어떤분이 답변해주신 내용대로 주소/cdn-cgi/trace로 접속을 해보니 이렇게 나왔습니다.

 

fl=12f71
h=www.bitmentoring.cf
ip=이부분은 지웠습니다.
ts=1540811237.69
visit_scheme=https
uag=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36
colo=LAX
spdy=h2
http=h2
loc=KR
tls=TLSv1.3
sni=plaintext

 

오류화면과 클라우드플레어 DNS 설정 화면을 첨부하였습니다.

제가 궁금한것은 

 

1. 클라우드플레어에 ip주소를 "네이버에서 ip주소라고 검색하여 나온 주소"를 사용하는 것이 맞는지,

2. 무료버전이며, 웹호스팅을 사용하여 난 오류인지,

3. 522 오류를 해결하는 방법 / 혹은 현재 글을 통하여 제가 잘못하고 있는 부분 

4. 무료로 https를 사용하기 위한 방법(openSSL, 무료로 인증서 받는 사이트는 해보았습니다)

5. 혹시 소스코드와도 상관이 있는 문제인지 

 

에 대한 것입니다. 구글링을 많이 해봤지만 원하는 답변을 찾지못하여 질문 남겼습니다.

답변해주신다면 정말 감사하겠습니다! 

 

 

오류.PNG

 

화면.PNG

 

 

  • Lv15
    외부 외부에서 보이는 ip(네이버에서 나온 ip주소)와 서버에 설정한 아이피가 다른것 같군요.
    글 내용 보니 서로 달라보입니다. 아마 서버에 할당된 주소는 192.168.0.xxx 형태일 것 같습니다.

    그럴경우 외부에서 접속하는 환경과 내부에서 접속하는 환경을 연결해야 하는데 포트포워딩을 해서 연결하셔야 할것 같습니다.
  • Lv15 ?
    답변 정말 감사합니다! 제가 모르는 부분이 많아 몇가지 더 질문드릴게요!
    서버에 할당된 주소는 어떻게 확인할 수가 있나요?
    포트포워딩에 대해서 검색해봤는데, 포트포워딩이 공유기 포트포워딩을 말씀하시는건가요?
    제가 학교 와이파이를 사용하고 있어서 공유기 설정은 건드릴수가 없어서요..
  • ? Lv15
    네트워크 구조에 대해 이해를 하셔야 할것 같은데
    와이파이를 이용해서 서버를 돌려보려고 하시는건가요?

    공유기 설정을 건드릴 수 없으면 외부에서 접속이 가능하도록 설정하기는 어렵습니다. UPNP 같은 기능을 이용하면 가능하기는 할 것 같은데 어려우니 그냥 무시하시구요.


    일단 IP는 가리지 마시고 공개하셔야 합니다.

    상황보니 서버에서 ipconfig(윈도우) ifconfig(리눅스)로 보이는 IP주소를 알려주세요.
    네이버에서 나오는 IP는 안알려주셔도 됩니다.


    그리고 네트워크 구조를 말씀드리면..

    1. 외부 네트워크에서 브라우저로 도메인 접속 > 2. 클플 DNS에서 서버 IP로 연결 시도 > 3. IP 연결(네이버에 나오는 IP) > 4. 공유기에 신호 도착 > 5. 포트 포워딩 된 사설 IP로 연결(노트북에서 보이는 IP) > 6. 브라우저로 화면 보임

    의 과정을 거치게 되는데 공유기 설정을 할 수 없는 경우 5번의 과정에서 막히게 됩니다.

    그래서 클플도 연결이 안되는 거구요.



    즉, 공유기에서 님의 노트북 서버로 연결되도록 하는 과정이 필요한데, 그게 포트포워딩입니다.
    포트포워딩은 공유기 관리자가 할 수 있는 기능입니다.

    그래서 현재로서는 사용이 불가능 합니다.

    그리고 wifi 의 연결의 경우 특성상 재부팅 하면 신호가 끊어져서 IP가 변경될 가능성도 매우 많습니다. 이것도 공유기 측에서 고정으로 IP를 받도록 설정해야 하는데 공유기 관리자가 아니면 그것도 불가능합니다.


    노트북을 집에 들고가시거나, 랜선을 이용해 직접 벽에 포트에 꽂으시거나 하는 방법으로는 사용가능합니다.
    서버 구축하는데 wifi 쓰지마세요.
  • Lv15 Lv37
    랜선을 꽂더라도 학교 인터넷이라면 외부에서 80번 포트로 접속할 수 없도록 막아놓았을 가능성이 높습니다.
  • Lv37 Lv15
    제 생각도 그럽니다.

    근데 또 연구실 같은데서는 허락하에 80포트를 열어주고는 합니다.
    환경이 어떤지 정확하게 말씀해주시지 않아서 이렇다 저렇다 조언 해드리기가 애매하군요.
  • Lv15 ?
    ipconfig를 해서 나온 ip는 172.18.201.199입니다.
    클라우드플레어에 입력해야하는 ip는 이걸 입력해야 하나요?
    학교 연구실은 아니고 일반 강의실입니다...
    꼭 학교에서 해야만 하고, 랜선을 연결하기엔 힘들것 같습니다.
    어떻게 하는 것이 좋을까요? 조언 부탁드립니다!
  • ? Lv15
    역시... 라우터에서 나오는 사설IP 주소같습니다.
    일단 학교에서는 사용을 못한다고 보시는게 좋습니다.

    차라리 집에 두고 벽포트에 랜선을 직접 꽂아 연결하면 오히려 사용가능해집니다.
  • Lv37

    일단 해당 도메인은 클플에 정상적으로 연결되어 있는 것으로 확인됩니다. (네임서버는 공개된 정보이므로 외부인이 확인할 수 있습니다.) 즉 무료도메인이나 무료플랜을 써서 생긴 문제는 아닙니다.

    클플 522 에러는 클플이 실서버(님 컴퓨터)에 접속하지 못하고 있다는 뜻입니다.

    처음에 ipconfig를 쳐서 나온 아이피를 입력했더니 오류가 떴다면 아마 192.168.x.x, 10.x.x.x 등 공유기에서 부여한 사설아이피였을 텐데요... 그렇다면 클플이 님 서버의 공인아이피(네이버에 쳐서 나온 아이피)로 접속하는 것을 어딘가의 공유기가 막고 있을 가능성이 높습니다. 80 포트를 님 서버로 포트포워딩 설정해 주셔야 할 거예요. 대부분의 가정용 공유기는 관리화면에서 포트포워딩을 설정할 수 있습니다.

  • Lv37 ?
    그렇군요! 답변 정말 감사합니다. 공유기 설정 변경하는 것을 검색해서 해보겠습니다.
  • Lv37

    위의 시나리오는 집이나 사무실에서 공유기에 서버를 물려놓은 경우에 해당합니다.

    질문글을 다시 읽어보니 웹호스팅이라는 말이 있어서... 혹시 실서버는 어딘가의 웹호스팅을 쓰고 있는데 그것과 전혀 상관없는 개인 컴퓨터에서 ipconfig를 치거나 네이버 검색을 하신 게 아닐까 하는 생각이 들어서 추가합니다. 클플에 입력하신 아이피는 실제로 사이트가 돌아가고 있는 서버 장비의 공인아이피 맞지요? 실서버가 아닌 개인 컴퓨터의 아이피는 공유기를 쓰든 말든 신경쓸 필요도 없고 포트포워딩 해줄 필요도 없어요.

  • Lv37 ?
    답변 감사합니다! 죄송한데 서버에 대한 부분은 제가 잘 모르겠습니다..

    학교 와이파이로 개인 노트북을 사용하고 있고, 노트북에서 node js로 80번 포트를 사용하고 있습니다.
    웹호스팅을 사용해본적은 없습니다.

    지금 클플에 입력한 아이피는 저의 노트북에서 네이버에 검색한 ip주소입니다...
    이럴 경우 제 컴퓨터가 실서버인것인지 잘 모르겠습니다.. ㅠ
    다시 답변 남겨주신다면 정말 감사하겠습니다!!
  • ? Lv37

    노트북에서 node.js를 구동하고 있다면 노트북이 실서버가 맞습니다.
    그러나 가정용 공유기가 아니라 학교 와이파이라면 80번 포트를 열 수 있을 가능성은 0에 수렴합니다.
    node.js를 사용할 수 있는 웹호스팅을 구하셔야 할 것 같네요.

  • Lv37 ?
    혹시 무료로 node.js를 사용할 수 있는 웹호스팅에 대해서 추천해주실 수 있을까요?
    검색을 해보고 heroku를 사용해보려고 하는데, heroku와 클라우드플레어를 같이 사용할 수 있나요?
    질문이 많아서 죄송합니다.. 조언 부탁드려요!
  • ? Lv37

    무료는 추천해 드릴 만한 곳이 없습니다. 특히 국내 서비스라면 500원이라도 돈을 써야 마음이 편해요.
    공인아이피 80포트 접근만 가능하다면 어디라도 클라우드플레어를 사용할 수 있습니다.