1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

VS Code の「開発者用 Remote Tunnel」を GUI からではなく CLIツール「devtunnel」で扱う(ngrok的な機能)

Last updated at Posted at 2025-08-19

はじめに

2023年の9月に VS Code で使えるようになった機能「built-in の port forwarding」と同じようなことを、Microsoft製の CLIツール「devtunnel」で実現する、という話の記事です。

VS Code のほうの機能の話は、その 2023年の9月(※ この後に掲載している公式のポストが行われた時)に以下の記事を書いていました。、

●VSCode の新機能「built-in port forwarding」を使いローカルサーバーにインターネット側からアクセス - Qiita
 https://qiita.com/youtoy/items/56e48c84d6a2f0549155

今回扱う機能に関する公式説明

上記の VS Code の機能について、公式の説明・ドキュメントは例えば以下があります。

●Port Forwarding
 https://code.visualstudio.com/docs/debugtest/port-forwarding

image.png

ローカルサーバーの特定のポートを、インターネット側からアクセスできるようにしてくれる機能です。

今回扱う内容と似た機能のサービス

今回扱う内容と似た機能のもので、ngrok をよく見かけたり、他にも複数の似たサービスがあります。

ちなみに、この周辺の話題で自分が過去に Qiita の記事に書いたもの(ngrok的なサービスや、ngrok を使ったお試しの話)では、以下などがあります。

「devtunnel」を試してみる

それでは、CLIツールの「devtunnel」を試していきます。以下が devtunnel の公式ドキュメントの一部なのですが、使い方を見てみます。

●開発トンネルのドキュメント | Microsoft Learn
 https://learn.microsoft.com/ja-jp/azure/developer/dev-tunnels/

クイックスタート

以下が、公式のドキュメントのクイックスタートです。
●トンネルを作成してホストする - Microsoft dev tunnels | Microsoft Learn
 https://learn.microsoft.com/ja-jp/azure/developer/dev-tunnels/get-started?tabs=macos

devtunnel のインストール

OS ごとのインストール方法が書かれていて、自分は今回は Mac で Homebrew を使ったやり方を使います。コマンドは以下です。

brew install devtunnel

ちなみに Homebrew の devtunnel のページの説明では、関連ドキュメントなどについて、こんな感じの内容が書いてあったりします。また、devtunnel の作成元は Microsoft という記載があります。

image.png

ローカルサーバーの準備

この後の流れでローカルサーバーを用意するところは、記事の上のほうで掲載していた VS Code の「Port Forwarding」のドキュメントのやり方を使います。具体的には「serve - npm」を使ったローカルサーバーの準備です。

image.png

ローカルサーバーは、以下のコマンドで用意します。

npx serve

これを実行すると、以下のようにローカルサーバーが 3000番ポートで立ち上がります。

image.png

devtunnel のコマンドでログイン

あとは上記のローカルサーバーに、インターネット側からアクセスできるようにします。そのためのコマンドは以下に書いてるものを用います。

●開発トンネル コマンド ライン リファレンス - Microsoft dev tunnels | Microsoft Learn
 https://learn.microsoft.com/ja-jp/azure/developer/dev-tunnels/cli-commands

image.png

まずは、以下のコマンドでログインをします。

image.png

devtunnel user login

上記を実行すると Microsoftアカウントのログイン画面が出るので、ログインをします。

image.png

それと、 devtunnel user login のヘルプを見ると、 -g オプションをつけた以下を使うことで、GitHubアカウントを使ったログインにもできるようです。

devtunnel user login -g

ちなみに、VS Code を使った機能のほうは、自分が試した手順では GitHubアカウントが使われていました。

image.png

devtunnel user login のヘルプのキャプチャも掲載しておきます。

image.png

認証が必要な方法を試す

そして今回、ローカルサーバーにインターネット側からアクセスできるようにするためのコマンドは2つ試すのですが、そのうちの 1つは以下になります。

# ホスト システム上のポート 3000 でリッスンしているサーバーの一時的な開発トンネルをホストします。
devtunnel host -p 3000

上記を実行すると、以下のようにインターネット側からアクセスするための URL が表示されました。

image.png

上記の URL にアクセスすると、認証が必要なやり方になるので、以下のような表示が出ます。

image.png

その後は以下のような画面が出て、そこで「続行」ボタンを押せば、先ほど用意していた 3000番ポートで立ち上がったローカルサーバーにアクセスできます。

image.png

認証が不要な方法を試す

それと、認証が不要な方法も試します。具体的には、以下のコマンドです。

# 一時的な開発トンネルをホストし、匿名クライアント アクセスを有効にします。
devtunnel host -p 3000 --allow-anonymous

こちらは、先ほど出ていた認証用のログイン画面が出ません。例えば、何らか ローカルにたてたサーバーにインターネット側から HTTPリクエストを送りたいが、そのアクセス処理で認証処理が難しいという場合は、これを使う場合が出てくると思います。

URL を知っていれば誰でもアクセスできる、という状態になるので、その点はご注意ください。

なお、以下のようなコマンドで、有効期限付きのトンネルにできるようです。

# カスタム有効期限を持つ一時的な開発トンネルをホストします。
# 最小値は 1 時間 (1h)、最大値は 30 日 (30d) です。
devtunnel host -p 8000 --expiration 2d	

その他のオプション

その他にもコマンドのオプションは色々あるようなので、詳細は、コマンドのヘルプや公式ドキュメントをご参照ください。

image.png

●開発トンネル コマンド ライン リファレンス - Microsoft dev tunnels | Microsoft Learn
 https://learn.microsoft.com/ja-jp/azure/developer/dev-tunnels/cli-commands

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?