출처: https://bumcrush.tistory.com/182 [맑음때때로 겨울]
반응형

이전글참고

[Synology NAS] 활용 나만의 웹사이트 만들기 - 1

 

[Synology NAS] 활용 나만의 웹사이트 만들기 - 1

이번에 지인 홈페이지가 필요해서 웹사이트를 구축했는데 집에 마침 돌고있는 NAS가 있어 여기에 구축을 해서 과정을 공유해보자한다. ● 이 글을 다보면 할수있는것. 1. 나만의 Ubuntu 서버 구축 2

dailycoding-diary.tistory.com

 

이번글에선 포트포워딩하는 방법을 써볼예정이다.

 

● 포트포워딩이란 ? 

  - 컴퓨터에서 특정 통신 포트를 개방하여 통신이 되도록 하는 것. 예를 들어, 내부 포트를 외부 원격 서버에 전달되도록 지정하거나, 방화벽을 그대로 유지하면서 방화벽의 특정 포트를 내부망의 특정 호스트와 연결시킨다. ....................... 블라블라블라블라블라

[네이버 지식백과] 포트 포워딩 [port forwarding] (IT용어사전, 한국정보통신기술협회)

 라고 한다.

 

간단히 말해서 외부 IP xxx.xxx.xxx.xxx:pppp -> 내부 xxx.xxx.xxx.xxx:pppp 

외부에서 들어온 ip와 포트를 내부망의 특정 ip의 특정 포트를 연결시켜 주는거다.

(※꼭 외부망이 아니더라도 사용될수도있음 여기서는 외부망과 내부망을 연결할거다)

● 포트포워딩 왜함?

<그림 1>

   

- 예를들어 그림1 보면 나는 서버1 에서 실행하는 프로그램1을 접속하고 싶다. 

어떻게 접속할거임? 생각한번 해보면 포트포워딩을 왜하는지 답은 금방나온다. 

     "아니 나 집에서 192.168.0.50:1234 치면 되는데?"

이럴수도 있다. 된다는 사람은 쓰고있는 와이파이를 끄고 핸드폰으로 똑같이 치고 들어가보길 바란다.

물론 집안에서만 쓸사람들은 이렇게 써도 된다.

하지만 우리 목적은 집이아니라 집밖에서도 접속할수 있는환경을 구축해야한다.

 

123.456.789.10:xxxx 을 치고들어 가는 환경을 구축하는게 우리목적이다. 

 

123.456.789.10:xxxx -> 192.168.0.50:1234 로 연결해주는 과정을 우리는 포트포워딩이라 한다.

 

  우리의 구축 목표 

이정도 위에서 설명했으면 포트포워딩이 뭔지는 이해가 됐을거라 생각된다. 

<그림1> 의 내용을 바탕으로 우리의 목표를 다시 대입해 보겠다. 

<그림2>

 - 이러면 앞으로 뭘할지 좀 보일거다.

※ 결론적으로 공유기에서 NAS에 설치한  Docker 로 우리는 포트포워딩을 날려줄거다.

    "??????????????? 그러면 Jenkins(port:1235), Web(port:1236) 얘내 한테는 안가잖아 ???"

   결론만 얘기하면  Docker에서 포트포워딩을 한번더 쏴줄거다. 어디로??? Jenkins(1235), Web(1236) 요기로 

 

   공유기  ----->>>>   docker ----->>>> Ubuntu(jenkins, web). 요렇게 날라갈거다. 

 

- 포트포워딩을 123.456.789.10:1234 -> 192.168.0.50:1234 로 했다는 가정하에 

 이러면 NAS 에 "id.quickconnect" 로 주소치고 들어오는거도 123.456.789.10:1234 이렇게 우리의 NAS로 집이 아닌 다른곳에서도 접속이 가능하고 도메인을 구입해서 여기에 붙인다면 내가 구입한 주소로 www.naver.com과 같이 www.xxxx.com이런식으로 우리 NAS를 활용할수가 있는것이다. 

 

(도메인은 80번 포트를 타고 들어와야되는데 이부분은 추후 나중에 시행착오와 같이 설명을 따로 하겠음)

 

도메인은 포트 생략하고 들어오기 때문에 80번 포트를 타고 들어온다 

SKB 공유기를 쓰고있었는데 80번포트를 포트포워딩하려고하니 뭔 다른게 쓰고있다고 안열림.

그래서 결국 Iptime 공유기사서 바꿨다. 80번포트를 어디로 보낼수가 없으니 도메인 쓰려면 공유기바꾸는 방법밖에 없음.

 

 

 

※ 만약 도메인을 여러개 쓰고싶다 하면 Docker에다가 Nginx 깔아서 ReversProxy 쓰면 된다.

80번포트 -> Docker > Nginx 로 보내서 도메인에 맞게 도커 내부 컨테이너로 분배해주면 된다.

 

 

 

 

반응형

+ Recent posts