ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 윈도우10에서 공유기를 통해 외부에서 접속하기
    통신,네트워크,서버/톰캣 2018. 10. 29. 23:22

    - 사용환경 -

    1. 윈도우 10 pro

    2. 톰캣 8.5 / 톰캣 8.0

    3. 이클립스 xeon

    4. jdk 8.0

    5. 공유기 모델 iptime n104q (원룸빌라모델)

    6. 통신사 kt

    7. 사용할 포트 : 80

    -> www.ip주소/경로

    -> www.도메인명/경로


    80포트는 생략이 가능하므로 80포트를 이용하기로 한다.

    물론 


    8. 가비아사이트 도메인사용

    저렴한것은 1900원 + 부가세



    - 사용목적 및 동기 -

    대학교 캡스톤 프로젝트에서 사용할 서버용으로 라즈베리파이 - 라즈베리파이 사이 통신을 준비하고 있었으나,

    라즈베리가 서버로써 사용하기에는 어려움이 많아(과열 혹은 이것저것) 집에 있는 컴퓨터를 서버로 사용하기로 했다. 컴퓨터를 서버로 사용가능할까? 해서 두려움이 앞섰고, 호스팅 업체 및 도메인 업체를 알아봤다. 


      이전에 한이음에서 KT서버를 지원받아서 사용했으나, 디도스 공격 등 관리가 어렵고 사용조차 힘들었다. 그래서 두려움이 앞섰지만, 어떻게든 해봐야지 하고 열심히 검색하고 공부해봤다. 

      인터넷에 나와있는 정보는 대략적인 정보이거나 시간이 흐름에 따라 적합하지 않은 정보가 대다수였다. 혹은 가상 os에 윈도우 server r12라는것을 설치하거나 리눅스 기반의 os를 사용해서 서버로 사용하는것이였다. 우리의 목적은 리눅스 기반의 파이와 다른 os 기반의 서버와 통신이 가능하고 서버에서 웹페이지를 보여주면 되는것이다.


    추후에 프로젝트를 하는 팀원이 윈도우-리눅스간 통신이 어려워 리눅스-리눅스 통신을 해야한다 하더라도 충분히 해결할 수 있을것 같다. 어쨌거나, 결론은 여러가지 이유가 있겠지만, 윈도우 환경이 필자에게 가장 편리하기 때문에 윈도우 환경을 선택했다. 





    <!--

    질문 사항이 있으면 아래 답변으로 남겨주세요. 

    에러가 발생할 수 있는 부분은 필자가 미리 캐치해서 글로써 설명할 수도 있고 아닐 수도 있습니다. 따라서, 자세한 것은 답변 남겨주시면 감사하겠습니다.

    -->


    - 환경셋팅 방법 -

    1. 사용환경에 맞춰서 미리 준비한다. 

    필자의 사용환경과 달라도 크게 상관이 없을것 같다. 다만, 공유기는 있어야 한다. 왜냐하면, 포트 설정 등등 할려면 윈도우에서는 공유기가 그 기능을 해주는것 같다. 


    2. 네이버에서 "내 아이피 주소 확인" 검색한다. 

    그러면 각자 공인 아이피주소를 알 수 있는데 이를 이용하여 호스팅을 할 준비를 한다.


    3. 공유기별로 다르지만 필자는 iptime 공유기 이므로 iptime 기준으로 한다.

    iptime은 인터넷창에 "192.168.0.1" 을 검색하면 공유기에 접속할 수 있다.


    <여기서부터 중요하니 잘 따라 오세요>

    여기서부터 파악해야되는것은 로컬확인 -> 공이아인피 확인 -> 포트 확인 -> 방화벽확인 -> 통신사 문의


    *통신사 문의 부분은 LG통신사쪽은 80포트를 막고 있는지 원격조정을 했을때 되지 않았다.

    다만, 다른 포트는 가능해서 임시로 다른포트를 이용하거나 통신사에 문의하는 방법을 찾아야겠다.



    4. 192.168.0.1 접근하면 확인해야될것은 두 가지다.

    로컬 IP주소와 외부 IP주소 즉, 공인 아이피다 

    메모장 열어서 로컬 IP, 공인 IP 확인한걸 기록하자


    용어 정리

    외부 IP 주소 = 공인 IP = 내 IP 

    로컬 IP 주소 = 내부 IP 


    5. 인터넷 열어서 로컬 아이피 입력해보자.

    localhost라고 입력해도된다. 접근이 되는것을 확인하면 다음 단계로 진행한다.



    6. "window key + r" 키( 단축키)를 눌러 "cmd"를 열어서 "netstat -ano" 라고 입력하면 모든 ip, port에 사용처를 확인할 수 있다.


    *window key는 ctrl 과 alt 사이에 있다  보통...


    - cmd명령어모음 -

    netstat -ano : 모든 포트 확인

    cls : 화면 정리



    7. netstat -ano를 확인해서 "ctrl+f" 키를 눌러 ":80"을 검색하자 :을 붙이는 이유는 ip:port 이런 형식으로 포트번호가 붙어 있기 때문이다. 그리고 80 포트의 중요성은 포탈에 검색해보면 자세히 나온다.

     

    ----------유심히 봐야될 ~:80은 외부주소:80 이다.--------------


    유심히 봐야되는 이유는 우리가 "외부ip:80포트/"를 사용하면 "외부포트"만으로도 인터넷에서 검색이 가능하다.

    그리고 도메인을 씌울 때 외부 포트를 이용해서 씌우는게 좋고, 해보지는 않았지만 포트번호가 있으면 도메인을 씌우는게 힘들거나 불가능하지 않을까 싶다.



    8. 외부 IP를 확인했으면 다시 ipTime 공유기로 돌아와서  

    "고급설정 -> NAT/라우터관리 ->포트포워드설정"으로 이동한다. 


    9. 포트포워드 설정해야되는데 설정하는 방법은 다음과 같다.


    새규칙 추가 

    규칙이름: 사용자 마음대로

    포트포워드: http or https 사용

    내부IP주소: 현재 사용하는 컴퓨터 내부 IP주소 확인 

    프로토콜 TCP

    외부포트 80~80

    내부포트 80~80


    위와 같이 적용한다. 적용이 끝나면 휴대폰, 다른컴퓨터에서 (공유기에 연결안되어있는) 접속을 해본다.

    와이파이 연결안한 휴대폰이 가장 정확한 결과를 보여줄거라 생각해서 휴대폰으로 보는걸 권장한다.


    무엇을 보는가? 포트포워딩한것을 본다. 


    여기서 간단하게 포트 포워딩이 무엇인지 설명하자면 우편물이 원룸으로 왔는데 원룸이라는 필터가 이 우편물을 미리 나눠논 방주소로 분류해서 우편물을 나눠주는것과 같은 원리다 .

    다시 말하면, 외부 주소라는 원룸으로 접속을 하여 공유기에서 포트포워딩이라는 필터를 이용하여 내부주소라는곳으로 분류해서 우편물을 나눠준다는 말이다. 무슨 말인지 이해가 됐으면 좋겠다.


    포트포워딩한것을 보는 방법은 인터넷주소창에 외부주소를 입력해본다.



    10. 접속이 안될수도 있다. 당연할거다. 

    왜냐? 인바운드, 아웃바운드 규칙을 설정을 안해뒀기 때문이다.


    11. 인바운드, 아웃바운드 규칙 설정


    "네트워크 -> 오른쪽 마우스 -> 속성 네트워크 및 공유센터 열기 -> 왼쪽 하단의 Windows Defender 방화벽 열기 -> 고급설정" 


    여기까지 따라왔으면 인바운드 규칙, 아웃바운드 규칙이 보일 것이다.

    각각 인바운드 규칙, 아운바운드 규칙을 클릭하여 새 규칙을 만든다.


    규칙만드는 방법은 다음과 같다.

    - 인바운드/아웃바운드 -

    "새규칙" 클릭 -> "포트" 클릭 -> "TCP"클릭 ->특정 로컬포트에 "80" 입력 -> 연결허용 및 다음 클릭 -> 도메인, 개인, 공용 체크되어있고 다음 클릭 이름, 설명에 80포트라는것을 이름과 설명 적어주는데 필자는 그냥 80,80 적었다.


    여기까지 따라왔으면 기본적인 준비는 모두 끝났을 것 같지만 아직이다.

    홈페이지를 구성하기위해 프로젝트를 실행해서 인터넷에 다른 사람들에게 보여지는것을 확인해야된다.


    12. 이클립스 실행 -> 실행할 프로젝트의 톰캣 설정 -> Servers를 두번 클릭하면 Overview/Modules라는 창이 보인다. -> Overview에서 HTTP/1.1이 보통 8080이 되어있을것인데 여기서는 80으로 수정한다.


    13. 해당 프로젝트의 톰캣 수정이 끝났으면 실행 


    14. 외부 환경인 휴대폰, 다른 사람의 컴퓨터로 인터넷을 실행하여 www.외부IP/폴더명/파일명.jsp를 하면된다.

    필자의 경우는 http://www.dpacs.xyz/ch5/comment.jsp 이렇게 했다. 

    14번까지 따라온것과 비교하면 무엇이 다른가? 그렇다. IP주소 대신 도메인 주소가 있다.


    여기서는 www.dpacs.xyz 를 도메인 주소라고 한다.

    그럼 도메인 주소를 설정해보자.


    15. 필자는 도메인 주소를 가비아 사이트에서 구매했다. 도메인 주소를 잘 찾아보면 1년에 1900원하는것도 있고 2천만원 하는것도 있다. 가격이 다른 이유는 가비아에서 제공하는 행사가이기때문에 저렴한것과 도메인 이름의 가치가 있는 도메인 이름이기 때문이다. 예를 들어서, www.youtube.com이라는 도메인 주소를 내가 가질 수 있다면 유튜브 회사는 이 도메인 주소를 가지기 위해서 엄청난 거액을 지불할 수 있다고 생각한다면 도메인주소에 따라 가격이 달라지는것은 이해 못할바가 아니다. 외국 사이트를 이용하면 더 저렴할 수 도 있지만, 쉬운 환경을 이용하기 위해서 1년/1900원+세금 은 큰 부담이 아니기 때문에 괜찮으리라 생각한다. 회원가입 및 구매는 이 글을 보는 사람들이 각자 알아서 하길 바란다. 


    16. 도메인 주소를 구매했다면 DNS를 설정해야한다. 이게 무슨 말이냐면 IP주소를 도메인 주소로 '치환'한다고 생각하면 된다. ip주소위에 도메인 이름이라는걸로 덮어 씌운다는 의미인데, 도메인 주소를 씌운다고해서 ip주소를 입력하여 접속을 못하는가? 그건 아니다. 왜냐면 말 그대로, 덮어 씌웠기 때문이다. 


    MY가비아 ->도메인 -> DNS 설정 -> DNS 레코드 설정  

    타입/호스트/값/TTL/우선순위/서비스/상태 이렇게 있을것이다.


    해당 내용에 다음과 같이 기입한다


    A / @ / 외부IP / 600 / (생략) / DNS설정(노터치) / 저장

    A / www / 외부IP / 600 / (생략) / DNS설정(노터치) / 저장

    저장


    저장이 끝났으면 완벽하다.



    16. 구매한 도메인주소로 접속하여 서버 접속 가능여부 확인.

    단, 이클립스에서 해당 프로젝트의 톰캣이 실행되고 있어야된다.


    필자의 경우 다음과 같이 접속하면 알 수 있다. www.dpacs.xyz/ch5/comment.jsp 

    이 글을 읽는 독자분들은 인터넷 창에 도메인명/폴더명/파일명 을 입력하면 원하는 페이지를 볼 수 있다.


    댓글

© 2018 T-Story. All right reserved.