Dev tunnels command-line reference

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

Dev tuunel에 대한 설명과 기본적인 사용법은 이전에 작성한 글을 참고하면 된다.

 

Microsoft Dev Tunnels

1. Dev Tunnel이란?개발자 터널(Dev Tunnel)은 개발자가 인터넷을 통해 로컬 웹 서비스를 안전하게 공유할 수 있게 해주는 Microsoft의 서비스이다.(이전에 작성한 ngrok, Vscode Local Port Forwarding와 같은 기능

changsroad.tistory.com

1. Global Options

모든 devtunnel 명령에서 사용할 수 있는 옵션이다.

  • -v, --verbose: 자세한 정보 표시 출력
  • -?, -h, --help: 도움말 및 사용 정보를 표시
  • --version: 현재 설치된 버전을 확인

2. Manage user credentials

Microsoft, Microsoft Entra ID 또는 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 계정으로 로그인

3. Host a dev tunnel

단일 tunnel을 관리할 때 사용된다. 

devtunnel host

 

개발 터널을 호스트 하는 데 사용되는 기본 명령어로, 이 명령은 개발 터널을 통해 액세스 할 수 있는 서버를 실행하는 호스트 시스템에서 실행해야 한다.

3-1. example

# 특정 포트 호스트
devtunnel host -p 8080
# 여러 포트 호스트
devtunnel host -p 8080 -p 3000

# 특정 protocol사용하여 호스트
devtunnel host -p 8080 --protocol https
devtunnel host -p 8080 --protocol http

# 만료일 지정 최소 1h 최대 30d
devtunnel host -p 8080 -expiration 2d

# 익명클라이언트 접근 허용: 이것은 외부에서 내 tunnel id만 알면 접속이 가능해지기 때문에 위험하다. (보안문제)
devtunnel host -p 3000 --allow-anonymous
devtunnel host -p 3000 -a

3-2. Usage

위와 같이 만들게 되면 특정 url이 주어진다. 이 url을 통해서 접근이 가능하다 .

4. Manage Dev tunnels

여러 개의 tunnel 및 port를 관리할 때 사용된다. 

4-1. Manage tunnel commnd

사실 기본적인 것만 사용하려면 위에 있는 명령어들로 한 개의 tunnel만 관리하면서 사용해도 되는데
아래는 tunnel을 개별적으로 관리하는 명령어들이다.

나는 내 리눅스 데스크톱과 리눅스 서버에서 둘 다 동일한 github 계정을 이용하여 이 기능을 사용하기 때문에 매번 헷갈려서
각 터널들을 tunnel id와 description 들을 통해서 구분하여 관리했다. 이런 경우가 아니라면 스킵해도 된다.

## CREATE ##
# 영구터널 생성 
devtunnel create
# 익명 액세스를 허용하는 영구 터널 생성
devtunnel create -a
# 특정 tunnel id를 가진 tunnel 생성
devtunnel create {TUNNELID}
# 설명이 있는 영구 터널 생성
devtunnel create -d 'my tunnel description'
# 4시간 만료 시간 설정
devtunnel create --expiration 4h
# 태그를 가진 tunnel 생성
devtunnel create --tags my-web-app v1

## LIST ##
# 터널 목록 확인
devtunnel list
# 특정 태그를 가진 tunnel 검색
devtunnel list --tags my-web-app

## SHOW ## 
# 터널 정보 상세보기 
devtunnel show 
# 특정 tunnel 상세보기
devtunnel show {TUNNELID}

## UPDATE ## 
# 터널속성 업데이트 
devtunnel update
devtunnel update TUNNELID --remove-tags

## DELETE ##
# 터널 삭제
devtunnel delete
# 모든 터널 삭제
devtunnel delete-all

4-2. Managen port command

추가적으로 나는 여러 포트들을 테스트하고 있어서 각각의 포트들 구분이 필요해서 아래 명령어들을 통해서 관리하였다.
아래 명령어들을 통해서 한 번에 port들을 설정해 두고 마지막에 host 명령어로 사용하면 된다.

# tunnel에 포트 생성
devtunnel port create
# tunnel에 3000번 포트를 http로 생성
devtunnel port create -p 3000 --protocol http

# tunnel의 포트 목록 확인
devtunnel port list
# 특정 tunnel 포트목록 확인
devtunnel port list TUNNELID

# tunnel의 포트 상세보기
devtunnel port show
# 특정 tunnel의 포트 상세보기
devtunnel port show TUNNELID -p 3000

# tunnel의 포트의 속성 업데이트
devtunnel port update
# 특정tunnel 포트 설명 업데이트
devtunnel port update -p 3000 --description 'frontend port'

# tunnel의 포트 삭제
devtunnel port delete
# 터널 포트 삭제
devtunnel port delete -p 3000

# 포트 업데이트
devtunnel port update -p 8080 --protocol https

# 포트 제거
devtunnel port remove -p 8080

4-3. host

위의 명령어들로 tunnel과 각 tunnel의 host들을 설정해 두었다면 host 명령어로 실행할 수 있다.
백그라운드로 실행하는 기능은 제공하지 않으니 screen 등을 통해서 돌려놓으면 될 것 같다.

devtunnel host

(아래링크는 backgroud를 지원하지 않을 거라는 내용)

 

Run `devtunnel` in the background · Issue #338 · microsoft/dev-tunnels

Hi, can someone tell is there any option to launch devtunnel host In detached (background mode)?

github.com

5. 일반적인 사용

  1. 로그인
  2. devtunnel user login
  3. 터널 생성:
  4. devtunnel create -d "My development tunnel"
  5. 로컬 서버 실행 (예: 포트 8080에서 실행 중인 웹 서버)
  6. 터널 호스팅 시작
  7. devtunnel host -p 8080
  8. 출력된 URL을 통해 터널에 접근 (예: https://<tunnel_id>.usw2.devtunnels.ms:8080/)

6. Reference

 

개발 터널 명령줄 참조 - Microsoft dev tunnels

개발 터널 명령줄 도구를 사용하여 로컬 서비스에 대해 공개적으로 액세스할 수 있는 포트를 만드는 방법에 대한 참조 설명서입니다.

learn.microsoft.com

 

728x90
반응형

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

macOS sshfs로 다른 시스템 마운트하기  (0) 2025.09.14
TypeError: Can't instantiate abstract class OpenAI with abstract method _prepare_chat_with_tools  (0) 2025.05.20
Microsoft Dev Tunnels  (0) 2025.04.11
VSCode github copilot을 이용한 MCP서버 사용  (0) 2025.04.01
맥북 한영키 윈도우 처럼 세팅  (0) 2025.03.28
'삽질노트' 카테고리의 다른 글
  • macOS sshfs로 다른 시스템 마운트하기
  • TypeError: Can't instantiate abstract class OpenAI with abstract method _prepare_chat_with_tools
  • Microsoft Dev Tunnels
  • 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
상단으로

티스토리툴바