Ngork 통해 내부서버 접속하기 (터널링)

2024. 4. 12. 21:19·IT 기술

Ngork이란?

ngrok은 외부에서 로컬환경에 접속 가능하게 하는 터널 프로그램 입니다.

내부환경에서 작업 중인 서버등을 안전한 터널을 통해 외부에서 접근하려고 할 때 쓰면 유용한 터널링 프로그램입니다.

 

Ngork 설명

NGROK은 MAC, 윈도우, 리눅스등 다양한 OS를 지원합니다.

 

플랜에 따라 다양한 추가 기능을 지원하며 간단하게 테스트하는 용도로 사용하기에는 무료 요금제도 충분합니다.

(비상업적 사용시 무료)

  • HTTP/TCP tunnels on random URLs
    • 1 online ngrok process
    • 4 tunnels / ngrok process
    • 40 connections / minute

Ngork 설치하기 

https://dashboard.ngrok.com/

 

리눅스 환경에서 Ngork을 설치하였습니다.Apt 또는 Snap등 원하는 방법으로 설치할 수 있습니다.

 

Ngork Authtoken 등록하기

authtoken 등록하지 않고 사용하는 경우 기본 8시간 동안 세션이 유지되며 이후 세션은 만료됩니다.

세션 만료시 ngrok을 재 실행 & 갱신을 해야하며 갱신 간 접속 URL이 바뀌게 되어

바뀐 URL로 다시 접속해야하는 불편함이 있습니다.

세션 제한없이 사용하기 위해서 authtoken 을 등록합니다.

 

authtoken을 복사하여 Ubuntu Shell 환경에서 붙여넣기를 하면 적용이 완료됩니다.

 

 

Ngork 외부에서 접속하기

테스트 환경정보

• Ubuntu 22.04 Minimal / 10.50.151.162

 

ngork 웹 서버 접속 테스트 용 apache Install

# apt-get install apache2

 

외부 접속 용 터널 생성

# ngrok http 80

 

 

Forwarding 주소에서 제공하는 주소로 접근 

https://644e-221-147-80-141.ngrok-free.app 

접속 시 사내 서버인 10.50.151.162 주소로 접속이 됩니다.

 

왼쪽 외부접속 / 오른쪽 내부접속

 

Ngork 터널 여러개를 일괄 구성하기

여러개의 서버에 터널을 구성하려면 ngrok.yml 설정을 수정하여 여러개의 세션을 관리 할 수 있습니다.

Haproxy를 사용하여 서버 두개의 특정 포트와 매핑.

# ngrok config check ## 해당 명령시 ngrok.yml 위치 출력 
Valid configuration file at /root/snap/ngrok/108/.config/ngrok/ngrok.yml  
# vim /snap/ngrok/108/.config/ngrok/ngrok.yml ## ngrok.yml 수정

 

내부서버 연동을 위한 yml 파일 수정

version: "2"
authtoken: 2SgsqUWk1pSuBod9BMDgePAwoEI_2PUfC6qeUUf3UTYR7xFak
region: us
tunnels:
  tets1:
    addr: 9999 ##LB서버 9999 Port <> 01서버의 443 Port
    proto: tcp
  test2:
    addr: 10000 ##LB서버 10000 Port <> 02서버의 8443 Port
    proto: tcp

 

yml 구성 후 ngrok 실행

# ngrok start --all

 

두개의 세션이 Forwarding 된것을 확인했습니다.

  • 2.tcp.ngrok.io:15525 → localhost:9999 (10.50.151.162:9999)
  • 8.tcp.ngrok.io:18454 → localhost:10000 (10.50.151.162:10000)

Ngork 구성 한 서비스를 Haproxy에서 활용하기 (LB구성)

 

Ubuntu(10.50.151.162) 서버를 LB(Haproxy)로 활용하여 웹서버 두개를 구성하는 방식으로 진행.

# apt-get install haproxy  
# vi /etc/haproxy/haproxy.cfg

 

Haproxy통한 Ubuntu(10.50.151.162) 서버 → 연결서버 바인딩

  • 10.50.151.162:9999 → backend_A서버
  • 10.50.151.162:10000 → backend_B서버
frontend AAA
        bind :9999
        default_backend   AAA
        mode              http
backend AAA
        balance roundrobin
        option  http-server-close
        option  forceclose
        mode    http
        server  backend_A01 10.50.151.152:443 check
        server  backend_A02 10.50.151.153:443 check

frontend BBB
        bind :9999
        default_backend   BBB
        mode              http

backend BBB
        balance roundrobin
        option  http-server-close
        option  forceclose
        mode    http
        server  backend_B01 10.50.151.162:443 check
        server  backend_B02 10.50.151.163:443 check

 

이런식 으로 LB서버에 Ngrok을 응용해서 사용할 수 있을수 있어 개발이나 테스트용도로 사용하기에 좋은 것 같습니다.

저작자표시 비영리 변경금지 (새창열림)

'IT 기술' 카테고리의 다른 글

ARP (Address Resolution Protocol) 구조 및 분석  (0) 2021.10.05
'IT 기술' 카테고리의 다른 글
  • ARP (Address Resolution Protocol) 구조 및 분석
Proxy
Proxy
  • Proxy
    230303
    Proxy
  • 전체
    오늘
    어제
    • 분류 전체보기 (6)
      • IT 기술 (2)
      • 시스템 구축 (2)
        • Linux (1)
        • 쿠버네티스 (0)
      • VMware (1)
        • Horizon (1)
        • ESXi (0)
        • vCenter (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    스티커노트
    AppStore
    arp table
    Microsoft
    맨티스 설치
    이슈 관리
    StickyNote
    Msix
    Address Resolution Protocol
    맨티스
    ARP명령어
    Tracking
    MAC주소
    LTSC
    RARP
    arp
    IP주소
    VMware
    mantis
    로켓챗
    0x80073cf2
    Appx
    ubuntu
    이슈
    이슈 트래킹
    맨티스 메일
    rocketchat
    horizon
    MongoDB
    메신저
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
Proxy
Ngork 통해 내부서버 접속하기 (터널링)
상단으로

티스토리툴바