· 톺아보기

PC/모바일

외부 인터넷망에서 Localhost를 접속하기: ngrok (일부 무료)

키부아 ·

조회 14,507 · 공감 2 · 댓글 22

▶▶ 아래 글은 https://kibua20.tistory.com/150 에 대한 요약 글입니다. 블로그를 방문해주세요. ◀◀


집에 있는 로컬 PC를 외부 인터넷 망에서  http 또는 https로 접속하는 방법은 공유기에 포트 포워딩을 설정하는 방법을 많이 사용했습니다. 공유기 포트 포워딩 설정보다 간단하게 외부에서 로컬 PC로 접속하는 방법을 제공하는 ngrok을 설명하도록 하겠습니다. 


개발 목적으로 임시로 domain을 할당을 받거나, WebHook을  테스트할 때 유용합니다.  현재는 ngrok은 오픈 소스로 개발되는 툴이 아니고, 유료 서비스로 무료 서비스인 경우 일부 기능에 제한이 있습니다.


요약

  • 계정 가입을 하지 않은 경우 snap으로 설치 가능하고, 세션은 8시간 동안 유지 가능
  • 계정 가입하는 경우 Auth Token을 발급되어 세션의 만료 기간은 제한 없음 
  • 외부에서 http와 https 접속하는 경우  Localhost의 80 포트로 포워딩 가능 (일부 API의 Web Hook은 https 접속을 요구 하기도 함)
  • 무료 서비스는 sub domain name이 램덤하게 생성되며, ngrok 재 실행 시 변경된다. → Domain Name을 특정 서버에 등록하는 경우 (예를 들어, OAutho 2.0 redirect URL로 등록) 불편함




ngrok 설치

ngrok 설치는 dashboard.ngrok.com/get-started/setup 에서 OS에 맞는 zip 파일을 다운로드하고 압축을 풀면 됩니다. 실행파일 하나뿐이라 별도의 설치 과정이 없습니다.

・ 리눅스에서  snap으로  설치:  $ sudo snap install ngrok

・윈도우 설치 링크: bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-windows-386.zip

・Mac 설치 링크: bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-darwin-386.zip


ngrok 실행

외부의 http 요청을 로컬 호스트의 80 포트로 전달
$ ngrok http 80


ngrok에서 확인한 domain 주소인 http://e5a 6 ae5037 ee.ngrok.io으로 브라우저로 접속한 결과 Local host의 80 포트로 외부 트랙을 전달합니다.

▶▶ 아래 글은 https://kibua20.tistory.com/150 에 대한 요약 글입니다. 블로그를 방문해주세요. ◀◀

댓글 22

  1. 길을가다가 · · 공감 1
    저도 이거 많이 썼는데, 어느 순간부터는 goorm이나 클라우드에서 간단하게 테스트 합니다.

    참 요긴한 서비스 입니다~~
  2. 어제까진괜찮았어 · · 공감 1
    저도 아주 좋아하는 서비스
  3. 방긋웃자 · · 공감 1
    공인망에 공인아이피 공개하지 않고도 이용 가능한건가요
  4. 키부아 ·
    @방긋웃자님 로컬 PC 의 IP는 공개하지 않고 사용 가능합니다. 무료버전은 dns 가 램덤하게 생성됩니다.
  5. 산빛 · · 공감 1
    cloudflared 도 괜찮습니다. cloudflared 는 클플에서 유료로 제공하는 Argo 네트워크에 연결해준다는 장점이...!
    cloudflared tunnel http://localhost:8080
  6. 오라질 · · 공감 1
    서브도메인 무료료 고정해주는 다른 서비스들이 많이 있습니다.
  7. 키부아 ·
    @오라질님 저도 비슷한것 있어 해봤는데.. localtunnel은 속도가.. 쫌 그렇더라구요. https://kibua20.tistory.com/151
  8. 다앙근농장 · · 공감 1
    속도 때문에 oracle oci + inlets 조합 추천합니다.
  9. 키부아 ·
    @다앙근농장님 inlets 사용은 어떻게 하는거에요? 무료인가요?
  10. 다앙근농장 ·
    @Kibua20님 https://github.com/inlets/inlets 오픈소스 L7/HTTP 터널링 앱이구요.
    깃헙 보시면 설명이 잘 되어 있습니다. :)
  11. 키부아 ·
    @다앙근농장님 공유감사합다. oracle에서 함 해봐야 겠네요.
  12. 크림스푸 · · 공감 1
    vpn이나 위에 소개된 솔류션 대비 장단점 같은게 있었으면 좋겠네요.
  13. 키부아 ·
    @크림스푸님 vpn 은 데이터가 나가는 아웃바운드를 우회하는 것이고, ngrok은 외부 망에서 로컬 망으로 접속할 수 있도록 Inbound 죠~
  14. 크림스푸 ·
    Kibua20님// 그러긴한데 반대로 vpn열면 로컬호스트도 접근할수있잖아요(서버가 0.0.0.0 리슨할경우)
  15. 키부아 ·
    @크림스푸님 그러네요. 이 생각은 못했어요.
  16. Sombra · · 공감 1
    ssh forwarding보다 나은 점이 있는지 잘 모르겠긴 하네요. 좀 더 세팅하기 편하려나요.
  17. 키부아 ·
    @Sombra님 ssh forward 하고 유사하죠. 다만 설정하기 편하고 dns가 할당되는 차이점이 있죠.
  18. 키부아 ·
    @BLiNE님 이건 저도 못해봤네요.
  19. Title ·
    SSH Tunneling 으로 회사 방화벽 우회해서 막힌 사이트 들어갈 수 있다던데 아시면 요것도 강좌글 부탁드립니다
  20. 키부아 ·
    @Title님 회사에서 외부 네트워크로 접속할려면 gcp 에 proxy 서버 (squid) 올리면 우회 접속 가능합니다. proxy 서버 올리기 불편하면 꽁짜 proxy나 vpn서버 사용해야죠. https://kibua20.tistory.com/129

    ssh tunnel 은 내용을 정리해서 다시 한번 공유할깨요.
  21. 키부아 ·
    @Title님 https://kibua20.tistory.com/153 확인해보세요. 방화벽에서 ssh 22번 포트만 열여 있으면 가능합니다. 서버는 상용 서버를 사용해도 되고, gcp나 ocp에서 socks 서버 설치하면 가능합니다.
  22. 긴급휴무 · · 공감 1
    @Title님 기술적으로 가능하다고 하더라도 '허용'이 아니며, 회사 정책상 운용중인 방화벽을 우회하여 접속하는 사람이 있다면 나중에 책임을 져야 할 겁니다.

팁과강좌 최근 글

팁과강좌 목록 더 보기