Synology Docker에서 NGROK 사용 방법

a·2022년 5월 27일
0

사무실에서 NAS를 설치해놓고 외부에서 접속을 하려 하니 접속이 불가능하다. 해당 사무실에 연결된 인터넷이 허브가 아니라 공유기로 되어있었기 때문에 포트포워딩을 해야하는데 관리하시는 분 께서 관리자 계정을 모르셔서...
결국 외부에서 접속하기 위해 터널링 서비스를 이용하기로 했다.

1. NGROK?

NGROK는 외부에서 접속하지 못 하는 서버나 localhost 개발 애플리케이션에 접속 가능하도록 NGROK 서버를 통해 터널링해준다.
개발자가 현재 개발하는 서비스를 서버에 올리기 전에 외부에 공유할 때 NGROK을 통하면 서버에 올리지 않고, 해당 PC의 특정 포트를 OPEN하지 않고도 서비스의 공유가 가능해진다.

2. 가입 및 Token 확인

NGROK은 기본적으로 무료로 제공되긴 하나, 제한이 있다. (사진 참조)

기본적인 기능은 모두 제공되나, 한 ID당 서비스를 1개만 올릴 수 있고 제공되는 도메인이 유동적으로 변경된다.
또한 ID가입을 하지 않으면 8시간짜리 세션이 생기기 때문에 하루 종일 켜 놓는 NAS에는 사용이 힘들다.

https://ngrok.com/

해당 사이트를 통해서 가입을 진행한다.

가입 후 https://dashboard.ngrok.com/get-started/your-authtoken 에 접속하면 본인 AuthToken을 확인할 수 있다. 체크해두자.

3. Synology NAS에 Docker 설치

포스팅에서 사용되는 NAS 환경

  • Product : DS620 slim (RAM 4+8GB)
  • OS : DSM 7.1


패키지센터에서 Docker를 다운받은 뒤, Docker - 레지스트리 - "ngrok" 검색 후 "ngrok/ngrok" 을 설치한다.
이미지는 시놀로지 Docker에서 생성하지 말고, SSH를 접속해서 진행해야한다.

제어판 - 터미널 및 SNMP에서 SSH서비스를 활성화 시켜준다. (포트는 본인 마음.. 나는 5022로 설정해놓고 쓴다)
putty나 맥은 터미널을 통해서 SSH를 접속하면 되고, 나는 Powershell로 접속했다.

  • 명령어
$ sudo -i  (관리자 권한 획득)
# docker images (이미지 확인)
# docker run --name={원하는 컨테이너 이름} --net=host -it -e NGROK_AUTHTOKEN={내 토큰} ngrok/ngrok {NETWORK 옵션} {원하는 포트} (도커이미지 생성)

관리자 권한을 얻어서 이미지가 정상적으로 다운로드 됐는지 확인한 뒤 컨테이너를 생성하면된다.
NGROK_AUTHTOKEN은 아까 웹 사이트에서 확인한 내 토큰을 기준으로 입력하면 된다.

Network 옵션은 http, tcp, tls, tunnel 중 선택하면 된다. 웹 페이지가 필요하면 http로 설정하면 된다.

네트워크는 호스트를 그대로 이용하도록 한다.

4. 접속 URL 체크

  • docker - 컨테이너 - 생성한 컨테이너의 세부사항 - 터미널에 들어가면 Forwarding 항목에서 접속 가능한 URL이 나온다.
    (ctrl + c로 복사하면 안된다. 단축키로 해당 컨테이너가 종료되도록 설정되어 있다. 드래그 후 우클릭으로 복사하자)
  • Region의 경우 default가 가장 가까운곳으로 설정된다. 국내 Region은 없으니 일본으로 자동 설정되는 것으로 보인다.
    (참조 : https://ngrok.com/docs/ngrok-agent/ngrok)

  • Web Interface 항목의 경우 NGROK을 통해 주고 받는 패킷에 대해서 웹에서 표시해주는 기능을 한다. 기본은 4040포트를 사용한다.

5. 접속해서 확인

접속해보면 정상적으로 설정한 웹사이트로 접속되는 것을 확인할 수 있다.

profile
a

0개의 댓글