共用方式為


開發通道命令列參考

開發通道提供命令列介面 (CLI) 工具來建立和管理開發通道。 本文說明各種 devtunnel CLI 命令的語法和參數。

重要

此功能目前處於公開預覽。 此預覽版本在沒有服務等級協定的情況下提供,不建議用於生產工作負載。 可能不支援特定功能,或可能已經限制功能。

注意

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 裝載開發通道。 如果未指定開發通道識別碼,則會建立新的 暫時 開發通道,一旦連接關閉,就會刪除該通道。

以下是使用此命令的一些範例:

範例 描述
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 小時 (1 小時),最大值為 30 天 (30d)。
devtunnel host TUNNELID 裝載先前已設定的現有開發通道。

警告

允許匿名存取開發通道表示網際網路上的任何人都可以連線到您的本機伺服器,如果他們可以猜測開發通道識別碼。

Control-C 停止開發通道主機進程,並透過開發通道終止任何用戶端連線。 如果未提供現有的開發通道,進程自動建立的開發通道將會在進程結束時刪除。

連線至開發通道

使用 Web 轉送 UI:

此命令 devtunnel host 會顯示類似下列的輸出:

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

顯示 https: URI 對開發通道埠而言是唯一的:第一個元件是包含指定開發通道識別碼和埠號碼的子域。

如果裝載的埠連線到網頁伺服器,則可以從任何地方直接在瀏覽器中開啟該 URI。 如果存取開發通道需要授權,則 URI 的初始要求會重新導向至登入頁面,並在使用者獲得授權後返回網站。

如果裝載的埠連線到 Web 服務,則該 URI 可以做為 Web 服務用戶端應用程式的基底 URI。 不過,如果開發通道不允許匿名存取,則 Web 服務用戶端通常不知道如何進行驗證。 如果 Web 服務安全公開,請考慮允許匿名存取。 否則,Web 服務用戶端可能會新增具有開發通道存取權杖的要求標頭,以授權連線。

使用 CLI:

CLI 不讓用戶端瀏覽器或應用程式直接連線到開發通道轉送 URI,而是可用來將用戶端上的埠連線轉送至開發通道埠。 如果開發通道不允許匿名存取,用戶端可能也需要登入。

devtunnel connect TUNNELID
  • 將 取代 TUNNELID 為主機上所使用的相同開發通道識別碼。

成功的用戶端輸出如下所示:

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 上共用的伺服器可在 localhost:3000 用戶端上使用 IPv4 或 IPv6。 (「SSH」前置詞是因為開發通道服務是以標準 SSH 通訊協定為基礎進行埠轉送。如果裝載的埠連線到網頁伺服器, 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 小時 (1 小時),最大值為 30 天 (30d)。
devtunnel create myTunnelID 建立具有自訂通道識別碼的持續性開發通道。
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 小時 (1 小時),最大值為 30 天 (30d)。
devtunnel delete TUNNELID 刪除開發通道。
devtunnel delete-all 刪除所有開發通道。

提示

大部分的 CLI 命令會隱含地在最後一個使用的開發通道上運作,不過有一個選項可以視需要指定開發通道識別碼。

進階:管理開發通道埠

使用 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 小時 (1 小時),最大值為 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 組織存取需要 將 Dev Tunnels 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 診斷伺服器。

疑難排解

若要針對 CLI 的問題 devtunnel 進行疑難解答,下列秘訣可能很有用:

  • 請確定您使用的是最新版的 devtunnel CLI。 使用 devtunnel --version檢查目前安裝的版本。
  • 選項 --verbose 會列印偵錯訊息,以提供額外的診斷資訊。