Microsoft Dev Tunnels

2025. 4. 11. 15:00/삽질노트

1. Dev Tunnel이란?

개발자 터널(Dev Tunnel)은 개발자가 인터넷을 통해 로컬 웹 서비스를 안전하게 공유할 수 있게 해주는 Microsoft의 서비스이다.
(이전에 작성한 ngrok, Vscode Local Port Forwarding와 같은 기능을 cli에서 하는 것으로, 이 2개 관련글은 가장 아래에 달아두었습니다.)

1-1. Feature

Secure by default: 기본적으로 만들어지는 개발 터널은 Microsoft, Microsoft Entra ID 또는 GitHub 계정을 사용하여 액세스 할 수 있다.
Persistent URLs : 필요한 한 동일한 개발 터널 URL을 유지할 수 있다.
Support for multiple simultaneous ports: 단일 개발 터널에서 동시에 여러 포트 호스트 가능
Global service availability : 개발 터널 서비스는 전역적으로 사용할 수 있으며, 개발 터널은 사용 가능한 가장 가까운 지역에 자동으로 만들어진다.
Tunnel inspection: 브라우저 DevTools와 같은 친숙한 인터페이스에서 개발 터널 트래픽을 검사할 수 있다.

1-2. Usage

  1. 클라우드 서비스와 로컬 애플리케이션 통합: 클라우드 서비스가 로컬에서 실행 중인 애플리케이션과 통신할 때
  2. 팀 협업: 로컬 개발 환경에서 실행 중인 웹 애플리케이션을 팀원들과 공유할 때
  3. 웹훅(webhook) 테스트: 웹훅을 로컬 환경으로 라우팅하여 디버깅 및 테스트를 진행할 때
  4. 모바일 앱 개발 및 테스트: 다양한 디바이스에서 로컬 API를 테스트할 때

1-3. 주요 용어

  • 터널: 릴레이 서비스를 통해 한 호스트에 대한 보안 원격 액세스를 제공한다. 개발 터널에는 고유한 DNS 이름, 여러 포트, 액세스 제어 및 기타 연결된 메타데이터가 존재한다.
  • 터널 릴레이 서비스: 호스트가 방화벽 뒤에 있고 들어오는 연결을 직접 수락할 수 없는 경우에도 클라우드 서비스를 통해 개발 터널 호스트와 클라이언트 간의 보안 연결을 용이하게 해 준다.
  • 터널 호스트: 개발 터널 릴레이 서비스를 통해 개발 터널에 대한 클라이언트 연결을 허용하고 로컬 포트에 해당 연결을 전달한다.
  • 터널 포트: 개발 터널을 통해 허용되는 IP 포트 번호(1-65535)입니다. 개발 터널은 추가된 포트에 대한 연결만 허용한다.
  • 터널 클라이언트: 호스트에 대한 개발 터널을 통해 원격 연결을 시작

2. Install

아래 명령어로 설치를 진행해 준다.

curl -sL https://aka.ms/TunnelsCliDownload/linux-x64 -o devtunnel
chmod +x devtunnel
./devtunnel -h

3. Login

개발 터널을 사용하기 위해서는 Microsoft Entra ID, Microsoft 또는 GitHub 계정으로 로그인해야 한다.
이때 로그인, 로그아웃에 관련된 다양한 옵션이 존재한다.

devtunnel user login           # Microsoft 또는 GitHub 계정으로 로그인합니다.
devtunnel user logout          # 캐시된 토큰 지우기
devtunnel user show            # 현재 로그인 상태 표시

devtunnel user login -g        # GitHub 계정으로 로그인
devtunnel user login -d        # 로컬 대화형 브라우저 로그인이 불가능한 경우 디바이스 코드 로그인을 사용하여 GitHub 계정으로 로그인
devtunnel user login -g -d     # 로컬 대화형 브라우저 로그인이 불가능한 경우 디바이스 코드 로그인을 사용하여 GitHub 계정으로 로그인

4. Quick start

로그인 후, host 명령을 사용하여 개발 터널을 생성하고 호스팅 할 수 있다.

# 로컬 포트 8080 터널링하기
devtunnel host -p 8080

 

위 명령어를 실행하면 아래와 같이 나오고, 저 at 뒤에 나오는 링크를 통해 접속이 가능하다.

Hosting port 8080 at https://<tunnel_id>.usw2.devtunnels.ms:8080/, https://<tunnel_id>-8080.usw2.devtunnels.ms/ and inspect it at https:/<tunnel_id>-8080-inspect.usw2.devtunnels.ms/
Ready to accept connections for tunnel: <tunnel_id>

 

출력에 포함된 내용:

  • tunnel_id: 개발 터널의 고유 ID
  • 공용 URL: 개발 터널에 액세스 하는 데 사용할 수 있는 URL
  • 검사 URL: 개발 터널을 통해 전송된 트래픽을 검사하는 데 사용할 수 있는 URL

4. Summary

위 설정은 가장 기본적인 사용법이고 더욱 상세한 설정 방법은 다른 글에서 다루었다.

 

Dev tunnels command-line reference

Dev tuunel에 대한 설명과 기본적인 사용법은 이전에 작성한 글을 참고하면 된다. Microsoft Dev Tunnels1. Dev Tunnel이란?개발자 터널(Dev Tunnel)은 개발자가 인터넷을 통해 로컬 웹 서비스를 안전하게 공유

changsroad.tistory.com

 

단순 기능과 사용법만 보면 ngrok 하고 완전히 동일하지만 몇 가지 차이점이 있으며, 둘 다 사용해 본 결과 dev tunnel이 더 좋은 것 같다. 차이점은 다음에 간략하게만 정리해서 올리도록 하겠다. 대부분의 사람들이 ngrok만 사용하는 것 같은데 편리해서인가

 

또한 이전에 작성한 vscode local port forwarding이 이 dev tunnel을 이용해서 작동하는 것이며, 

vscode에서 하면 물론 편하지만 vscode를 종료하는 순간 종료되기 때문에 위 명령어들을 screen을 통해 돌려놓음으로써 계속 유지시킬 수 있다. (최대 30일)

 

이전에 올린 두 개의  글도 참고하길 바란다. 

 

Vscode Local Port Forwarding

저번 글에서 ngrok을 이용한 localhost 즉 내부 포트를 외부로 안전하게 공개하는 도구에 대해서 알아봤었는데, vscode를 이용하다가 똑같은 기능이 내장되어있는 것을 발견했다.vscode를 매일 사용하

changsroad.tistory.com

 

 

ngrok 사용법

IntroduceNgrok은 로컬에서 실행시키는 웹 서버를 외부에서 접근할 수 있는 안전한 url로 열어주는 도구이다.즉 Fastapi 등을 이용해서 로컬에서 서버를 열고 테스트를 할 때 내 ip를 공개하지 않고 안

changsroad.tistory.com

Reference

아래는 MS의 공식문서이다. 

 

  • 개발 터널이란? - Microsoft Learn
  • 개발 터널 만들기 및 호스트 - Microsoft Learn

 

728x90
반응형

'삽질노트' 카테고리의 다른 글

TypeError: Can't instantiate abstract class OpenAI with abstract method _prepare_chat_with_tools  (0) 2025.05.20
Dev tunnels command-line reference  (0) 2025.04.11
VSCode github copilot을 이용한 MCP서버 사용  (0) 2025.04.01
맥북 한영키 윈도우 처럼 세팅  (0) 2025.03.28
Chrome 텍스트 커서 깜박임 오류 해결 가이드  (0) 2025.03.27
'삽질노트' 카테고리의 다른 글
  • TypeError: Can't instantiate abstract class OpenAI with abstract method _prepare_chat_with_tools
  • Dev tunnels command-line reference
  • VSCode github copilot을 이용한 MCP서버 사용
  • 맥북 한영키 윈도우 처럼 세팅
창빵맨
창빵맨
창빵맨
  • 창빵맨
    Let's be Developers
    창빵맨·로그인
  • 전체
    오늘
    어제
    • 분류 전체보기 (495)
      • 오픈소스 (47)
      • ML & DL (85)
        • Computer v.. (22)
        • NLP (22)
        • 파이썬 머신러닝 완.. (3)
        • 개념정리 (38)
      • 리눅스 (22)
      • 프로젝트 (29)
        • 산불 발생 예측 (6)
        • 음성비서 (12)
        • pdf 병합 프로그.. (0)
        • 수위 예측 (5)
        • 가짜 뉴스 분류 (5)
        • 전력사용량 예측 (1)
      • 코딩테스트 (217)
        • 프로그래머스[Pyt.. (17)
        • 프로그래머스[Fai.. (3)
        • 백준[Python] (160)
        • 이것이취업을위한코딩.. (18)
        • 파이썬 알고리즘 (19)
      • 데이터분석실습 (25)
        • 데이터 과학 기반의.. (18)
        • 헬로 데이터 과학 (7)
      • 메모장 (0)
      • 잡담 (4)
      • 삽질노트 (54)
  • 공지사항

  • 인기 글

  • 태그

    이분탐색
    오픈소스
    그리디
    나동빈
    백준
    dp
    이코테
    파이썬
    BFS
    이것이취업을위한코딩테스트다
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
상단으로

티스토리툴바