Share via


開発トンネル コマンド ライン リファレンス

開発トンネルには、開発トンネルを作成および管理するためのコマンド ライン インターフェイス (CLI) ツールが用意されています。 この記事では、さまざまな devtunnel CLI コマンドの構文とパラメーターについて説明します。

重要

現在、この機能はパブリック プレビュー段階にあります。 このプレビュー バージョンはサービス レベル アグリーメントなしで提供されています。運用環境のワークロードに使用することはお勧めできません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。

Note

devtunnel CLI コマンドはプレビュー段階です。 コマンド名とオプションは、今後のリリースで変更される可能性があります。

グローバルなオプション

  • -v, --verbose: 詳細出力を有効にします。
  • -?, -h, --help: ヘルプと使用状況の情報を表示します。

ユーザー資格情報を管理する

開発トンネル サービスでは、開発トンネルの管理とアクセスを承認するためのログインが必要です。 既定では、開発トンネルには開発トンネルを作成したユーザーのみがアクセスできますが、そのユーザーは他のユーザーにアクセス権を付与できます。

ログイン後、ログイン トークンはシステムのセキュリティで保護されたキー チェーンにキャッシュされ、有効期限が切れるまでの数日間有効です。 CLI からログアウトすると、このキャッシュされたトークンはクリアされますが、ブラウザーの Cookie はクリアされません。 開発トンネルでの認証にブラウザーを使用した場合は、これに開発トンネル アクセス トークンが含まれる場合があります。

command 説明
devtunnel user login Microsoft または GitHub アカウントを使用してログインします。
devtunnel user logout キャッシュされたトークンをクリアする
devtunnel user show 現在のログイン状態を表示する

ヒント

devtunnel logindevtunnel logout は、ログインとログアウトのための短縮形のコマンドです。

これらのコマンドの使用例を次に示します。

説明
devtunnel user login Microsoft 組織 (Microsoft Entra ID) または個人用アカウントを使用したログイン
devtunnel user login -g GitHub アカウントを使用したログイン
devtunnel user login -d ローカルの対話型ブラウザー ログインが使用できない場合は、デバイス コード ログインを使用して GitHub アカウントでログインします
devtunnel user login -g -d ローカルの対話型ブラウザー ログインが使用できない場合は、デバイス コード ログインを使用して GitHub アカウントでログインします

開発トンネルをホストする

devtunnel host は、開発トンネルをホストするために使用されるメイン コマンドです。 このコマンドは、開発トンネルを介してアクセスしたいサーバーを実行しているホスト システムで実行する必要があります。

command 説明
devtunnel host 開発トンネルをホストします。 開発トンネル ID が指定されていない場合は、接続が閉じられた後に削除される新しい一時的な開発トンネルが作成されます。

このコマンドの使用例を次に示します。

説明
devtunnel host -p 3000 ホスト システム上のポート 3000 でリッスンしているサーバーの一時的な開発トンネルをホストします。
devtunnel host -p 3000 --allow-anonymous 一時的な開発トンネルをホストし、匿名クライアント アクセスを有効にします。
devtunnel host -p 3000 5000 ポート 3000 と 5000 でリッスンしているローカル サーバーの一時的な開発トンネルをホストします。
devtunnel host -p 8443 --protocol https HTTPS プロトコルを使用するポート 8443 でリッスンしているサーバーの一時的な開発トンネルをホストします。
devtunnel host -p 8000 --expiration 2d カスタム有効期限を持つ一時的な開発トンネルをホストします。 最小値は 1 時間 (1h)、最大値は 30 日 (30d) です。
devtunnel host TUNNELID 既に構成されている既存の開発トンネルをホストします。

警告

開発トンネルへの匿名アクセスを許可すると、インターネット上のすべてのユーザーがローカル サーバーに接続できます (開発トンネル ID を推測できる場合)。

Ctrl + C を押して、開発トンネル ホスト プロセスを停止し、開発トンネル経由でクライアント接続を終了します。 既存の開発トンネルが指定されていない場合、プロセスによって自動的に作成された開発トンネルが、プロセス終了時に削除されます。

開発トンネルに接続する

Web 転送 UI を使用する:

devtunnel host コマンドの出力は次のようになります。

Hosting port 3000 at https://l3rs99qw-3000.usw2.devtunnels.ms/

表示される https: URI は、開発トンネル ポートに固有です。最初のコンポーネントは、指定された開発トンネル ID とポート番号を含むサブドメインメインです。

ホストされるポートが Web サーバーに接続している場合、その URI は、どこからでもブラウザーで直接開くことができます。 開発トンネルへのアクセスに承認が必要な場合、URI への最初の要求はログイン ページにリダイレクトされ、ユーザーが承認された後にサイトに戻ります。

ホストされるポートが Web サービスに接続している場合、その URI は Web サービス クライアント アプリケーションによってベース URI として使用できます。 ただし、開発トンネルで匿名アクセスが許可されていない場合、通常、Web サービス クライアントは認証方法を認識しません。 Web サービスがパブリックに公開しても安全な場合は、匿名アクセスを許可することを検討してください。 そうでない場合、Web サービス クライアントは、接続を承認するための開発トンネル アクセス トークンを含む要求ヘッダーを追加できます。

CLI を使用する:

クライアント ブラウザーまたはアプリケーションを開発トンネル リレー URI に直接接続する代わりに、CLI を使用して、クライアントのポートから開発トンネル ポートに接続を転送できます。 また、開発トンネルで匿名アクセスが許可されていない場合は、クライアントもログインする必要がある場合もあります。

devtunnel connect TUNNELID
  • TUNNELID をホストで使用されたのと同じ開発トンネル ID に置き換えます 。

成功した場合は、次のようなクライアントの出力が表示されます。

Connected to tunnel: l3rs99qw
SSH: Forwarding from 127.0.0.1:3000 to host port 3000.
SSH: Forwarding from [::1]:3000 to host port 3000.

これで、ホストのポート 3000 で共有されたサーバーが、IPv4 または IPv6 を使用してクライアントの localhost:3000 で使用できるようになりました。 ("SSH" プレフィックスは、開発トンネル サービスがポート転送用の標準 SSH プロトコルに基づいて構築されるためです)。ホストされるポートが Web サーバーに接続している場合は、http://localhost:3000/ をブラウザーで開くことができます。 この場合、必要に応じてクライアントの CLI ログイン トークンを使用して接続を承認したため、それ以上の承認は必要ありません。

詳細設定: 開発トンネルを管理する

まだホストせずに開発トンネルを作成できます。 これは、次のような高度な開発トンネルの構成と管理に便利です。

  • 所有しているすべての開発トンネルの一覧表示
  • 開発トンネルのポートの追加と削除
  • 開発トンネルのアクセス制御の管理
  • 説明やタグなどのメタデータの開発トンネルへの追加
command 説明
devtunnel create 永続的な開発トンネルを作成する
devtunnel list 開発トンネルを一覧表示する
devtunnel show 開発トンネルの詳細を表示する
devtunnel update 開発トンネルのプロパティを更新する
devtunnel delete 開発トンネルを削除する
devtunnel delete-all すべての開発トンネルを削除する

これらのコマンドの使用例を次に示します。

説明
devtunnel create -a 匿名アクセスを許可する永続的な開発トンネルを作成します。
devtunnel create -d 'my tunnel description' 検索不可能な説明を含む永続的な開発トンネルを作成します。
devtunnel create --expiration 4h カスタム有効期限を持つ永続的な開発トンネルを作成します。 最小値は 1 時間 (1h)、最大値は 30 日 (30d) です。
devtunnel create myTunnelID カスタム トンネル ID を持つ永続的な開発トンネルを作成します。
devtunnel create --tags my-web-app v1 永続的な開発トンネルを作成し、検索可能なタグを適用します。
devtunnel list --tags my-web-app 指定したタグのいずれかを持つ開発トンネルを一覧表示します。
devtunnel list --all-tags my-web-app v1 指定されたすべてのタグを持つ開発トンネルを一覧表示します。
devtunnel show 最後に使用した開発トンネルの詳細を表示します。
devtunnel show TUNNELID 開発トンネルの詳細を表示します。
devtunnel update TUNNELID -d 'my new tunnel description' 開発トンネルの説明を更新します。
devtunnel update TUNNELID --remove-tags 開発トンネルからすべてのタグを削除します。
devtunnel update TUNNELID --expiration 10d 新しいカスタム有効期限を持つ開発トンネルを更新します。 最小値は 1 時間 (1h)、最大値は 30 日 (30d) です。
devtunnel delete TUNNELID 開発トンネルを削除します。
devtunnel delete-all すべての開発トンネルを削除します。

ヒント

ほとんどの CLI コマンドは、最後に使用した開発トンネルで暗黙的に動作しますが、必要に応じて開発トンネル ID を指定するオプションがあります。

詳細設定: 開発トンネル ポートを管理する

最初に devtunnel create コマンドを使用して作成された開発トンネルにはポートがありません。 ホストする前に、devtunnel port コマンドを使用してポートを追加します。

command 説明
devtunnel port create 開発トンネル ポートを作成する
devtunnel port list 開発トンネル ポートを一覧表示する
devtunnel port show 開発トンネル ポートの詳細を表示する
devtunnel port update 開発トンネル ポートのプロパティを更新する
devtunnel port delete 開発トンネル ポートを削除する
説明
devtunnel port create -p 3000 --protocol http プロトコルを指定してポートを追加する
devtunnel port list TUNNELID 現在のポートを一覧表示する
devtunnel port show TUNNELID -p 3000 ポート 3000 の詳細を表示する
devtunnel port update -p 3000 --description 'frontend port' 開発トンネル ポートの説明を更新する
devtunnel port delete -p 3000 ポートを削除する

ポートを作成するときに、自動検出が正常に機能しない場合は、必要に応じてプロトコルを指定できます。 現在のオプションは、"http"、"https"、または "auto" (既定値) です。 ホストされるポートが HTTPS の場合は、ポート プロトコルを "https" に設定することをお勧めします。それ以外の場合は 、"auto" で問題ありません。

上記のコマンドを使用して開発トンネルを構成した後、ホストを開始します。

devtunnel host

詳細設定: 開発トンネル アクセスを管理する

次のコマンドを使用すると、開発トンネル アクセス トークンを発行して、匿名アクセスを許可せずに他のクライアントに開発トンネルへのアクセスを提供できます。 アクセス制御エントリ コマンドを使用すると、開発トンネルおよび開発トンネル ポートでアクセス制御を構成できます。

command 説明
devtunnel token 開発トンネル アクセス トークンを発行する
devtunnel access create アクセス制御エントリを作成する
devtunnel access list アクセス制御エントリを一覧表示する
devtunnel access delete アクセス制御エントリを削除する
devtunnel access reset アクセス制御エントリを既定値にリセットする

これらのコマンドの使用例を次に示します。

説明
devtunnel token TUNNELID --scopes connect 開発トンネルへの一時的なアクセスを提供するために共有できる開発トンネルの "接続" アクセス トークンを取得します。
devtunnel access create TUNNELID --anonymous 開発トンネルで匿名クライアント アクセスを有効にします。
devtunnel access create TUNNELID --anonymous --expiration 4h カスタム アクセス制御の有効期限を使用して、開発トンネルで匿名クライアント アクセスを有効にします。 最小値は 1 時間 (1h)、最大値は 30 日 (30d) です。
devtunnel access create TUNNELID --port 3000 --anonymous ポート 3000 で匿名クライアント アクセスを有効にします。
devtunnel access create TUNNELID --tenant 開発トンネルで現在の Microsoft Entra テナント アクセスを有効にします。
devtunnel access create TUNNELID --org ORG 開発トンネルで名前による GitHub 組織のアクセスを有効にします。

ヒント

GitHub 組織のアクセスには、開発トンネル GitHub アプリを組織にインストールする必要があります。

補助コマンド

これらのコマンドは、最後に使用した開発トンネルのローカル キャッシュを明示的に設定または設定解除する必要がある場合に使用できます。

command 説明
devtunnel set 既定の開発トンネルを設定する
devtunnel unset 既定の開発トンネルをクリアする

診断コマンド

command 説明
devtunnel clusters 利用可能なサービス クラスターを場所別に一覧表示する
devtunnel echo ローカル ポートで診断エコー サーバーを実行する
devtunnel ping リモート エコー サーバーに診断メッセージを送信する
説明
devtunnel clusters --ping 利用可能なサービス クラスターを、測定された待ち時間で並べ替えて一覧表示します。
devtunnel echo http --port 8080 --interface 127.0.0.1 ポート 8080 でローカル http 診断サーバーを起動します。

トラブルシューティング

devtunnel CLI に関する問題をトラブルシューティングするには、次のヒントが役立つ場合があります。

  • 最新バージョンの devtunnel CLI を使用していることを確認します。 devtunnel --version を使用して、現在インストールされているバージョンを確認します。
  • --verbose オプションは、追加の診断情報を提供できるデバッグ メッセージを出力します。