Informazioni di riferimento sulla riga di comando per i tunnel di sviluppo

I tunnel di sviluppo offrono uno strumento dell'interfaccia della riga di comando per la creazione e la gestione dei tunnel di sviluppo. Questo articolo illustra la sintassi e i parametri per i vari devtunnel comandi dell'interfaccia della riga di comando.

Importante

Questa funzionalità è attualmente in anteprima pubblica. Questa versione di anteprima viene fornita senza contratto di servizio e non è consigliata per carichi di lavoro di produzione. Alcune funzionalità potrebbero non essere supportate o potrebbero presentare funzionalità limitate.

Nota

devtunnel I comandi dell'interfaccia della riga di comando sono in anteprima. I nomi e le opzioni dei comandi possono cambiare nelle versioni future.

Opzioni globali

  • -v, --verbose: abilitare l'output dettagliato.
  • -?, -h, --help: mostra informazioni sulla Guida e sull'utilizzo.

Gestire le credenziali utente

Il servizio dev tunnel richiede l'accesso per autorizzare la gestione e l'accesso ai tunnel di sviluppo. Per impostazione predefinita, un tunnel di sviluppo è accessibile solo all'utente che ha creato il tunnel di sviluppo, anche se tale utente può concedere l'accesso ad altri utenti.

Dopo l'accesso, il token di accesso viene memorizzato nella cache nella catena di chiavi sicure del sistema ed è valido per diversi giorni prima della scadenza. La disconnessione dall'interfaccia della riga di comando cancella questo token memorizzato nella cache, ma non cancella i cookie del browser. Che può includere token di accesso al tunnel di sviluppo se è stato usato un browser per l'autenticazione con un tunnel di sviluppo.

Comando Descrizione
devtunnel user login Accedere con un account Microsoft o GitHub.
devtunnel user logout Cancellare il token memorizzato nella cache
devtunnel user show Mostra lo stato di accesso corrente

Suggerimento

devtunnel login e devtunnel logout sono comandi abbreviati per l'accesso e l'uscita.

Ecco alcuni esempi sull'uso di questi comandi:

Esempi Descrizione
devtunnel user login Accedere con un'organizzazione Microsoft (MICROSOFT Entra ID) o un account personale
devtunnel user login -g Accedere con un account GitHub
devtunnel user login -d Accedere con un account GitHub con accesso al codice del dispositivo, se non è possibile accedere al browser interattivo locale
devtunnel user login -g -d Accedere con un account GitHub con accesso al codice del dispositivo, se non è possibile accedere al browser interattivo locale

Ospitare un tunnel di sviluppo

devtunnel host è il comando principale usato per ospitare il tunnel di sviluppo. Il comando deve essere eseguito nel sistema host che esegue il server che si vuole accedere tramite il tunnel di sviluppo.

Comando Descrizione
devtunnel host Ospitare un tunnel di sviluppo. Se non viene specificato un ID del tunnel di sviluppo, viene creato un nuovo tunnel di sviluppo temporaneo eliminato dopo la chiusura della connessione.

Ecco alcuni esempi sull'uso di questo comando:

Esempi Descrizione
devtunnel host -p 3000 Ospitare un tunnel di sviluppo temporaneo per un server in ascolto della porta 3000 nel sistema host.
devtunnel host -p 3000 --allow-anonymous Ospitare un tunnel di sviluppo temporaneo e abilitare l'accesso client anonimo.
devtunnel host -p 3000 5000 Ospitare un tunnel di sviluppo temporaneo per i server locali in ascolto sulle porte 3000 e 5000.
devtunnel host -p 8443 --protocol https Ospitare un tunnel di sviluppo temporaneo per un server in ascolto sulla porta 8443 che usa il protocollo HTTPS.
devtunnel host -p 8000 --expiration 2d Ospitare un tunnel di sviluppo temporaneo con una scadenza personalizzata. Il valore minimo è 1 ora (1h) e il massimo è 30 giorni (30d).
devtunnel host TUNNELID Ospitare un tunnel di sviluppo esistente configurato in precedenza.

Avviso

Consentire l'accesso anonimo a un tunnel di sviluppo significa che chiunque su Internet è in grado di connettersi al server locale, se può indovinare l'ID del tunnel di sviluppo.

Premere Control-C per arrestare il processo host del tunnel di sviluppo e terminare le connessioni client tramite il tunnel di sviluppo. Se non è stato specificato un tunnel di sviluppo esistente, il tunnel di sviluppo creato automaticamente dal processo verrà eliminato all'uscita del processo.

Connessione a un tunnel di sviluppo

Uso dell'interfaccia utente di inoltro Web:

Il devtunnel host comando mostra un output simile al seguente:

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

L'URI visualizzato https: è univoco per la porta del tunnel di sviluppo: il primo componente è un sottodominio contenente l'ID del tunnel di sviluppo e il numero di porta specificati.

Se la porta ospitata si connette a un server Web, tale URI può essere aperto direttamente in un browser da qualsiasi posizione. Se l'accesso al tunnel di sviluppo richiede l'autorizzazione, la richiesta iniziale all'URI reindirizzerà a una pagina di accesso e tornerà al sito dopo l'autorizzazione dell'utente.

Se la porta ospitata si connette a un servizio Web, tale URI può essere usato come URI di base da un'applicazione client del servizio Web. Tuttavia, se il tunnel di sviluppo non consente l'accesso anonimo, il client del servizio Web normalmente non saprà come eseguire l'autenticazione. Se il servizio Web è sicuro da esporre pubblicamente, è consigliabile consentire l'accesso anonimo. In caso contrario, un client del servizio Web può aggiungere un'intestazione di richiesta con un token di accesso del tunnel di sviluppo per autorizzare la connessione.

Uso dell'interfaccia della riga di comando:

Anziché disporre di un browser client o di un'applicazione che si connetta direttamente a un URI di inoltro del tunnel di sviluppo, l'interfaccia della riga di comando può essere usata per inoltrare le connessioni da una porta sul client a una porta di dev tunnel. Il client potrebbe anche dover eseguire l'accesso, se il tunnel di sviluppo non consente l'accesso anonimo.

devtunnel connect TUNNELID
  • Sostituire TUNNELID con lo stesso ID del tunnel di sviluppo usato nell'host.

L'output del client riuscito è simile al seguente:

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.

A questo punto, il server condiviso sulla porta 3000 dell'host è disponibile nel localhost:3000 client, usando IPv4 o IPv6. Il prefisso "SSH" è dovuto al fatto che il servizio dev tunnel si basa sul protocollo SSH standard per il port forwarding. Se la porta ospitata si connette a un server Web, http://localhost:3000/ è possibile aprire in un browser. In questo caso, non è necessaria ulteriore autorizzazione perché il token di accesso dell'interfaccia della riga di comando del client è stato usato per autorizzare la connessione, se necessario.

Avanzate: gestire i tunnel di sviluppo

È possibile creare un tunnel di sviluppo senza ancora ospitarlo. Ciò è utile per la configurazione e la gestione avanzata del tunnel di sviluppo, ad esempio:

  • Presentazione di tutti i tunnel di sviluppo di proprietà
  • Aggiunta e rimozione di porte di un tunnel di sviluppo
  • Gestione dei controlli di accesso al tunnel di sviluppo
  • Aggiunta di metadati a un tunnel di sviluppo come descrizione e tag
Comando Descrizione
devtunnel create Creare un tunnel di sviluppo permanente
devtunnel list Elencare i tunnel di sviluppo
devtunnel show Visualizzare i dettagli del tunnel di sviluppo
devtunnel update Aggiornare le proprietà del tunnel di sviluppo
devtunnel delete Eliminare un tunnel di sviluppo
devtunnel delete-all Eliminare tutti i tunnel di sviluppo

Ecco alcuni esempi sull'uso di questi comandi:

Esempi Descrizione
devtunnel create -a Creare un tunnel di sviluppo permanente che consenta l'accesso anonimo.
devtunnel create -d 'my tunnel description' Creare un tunnel di sviluppo permanente con una descrizione non ricercabile.
devtunnel create --expiration 4h Creare un tunnel di sviluppo permanente con una scadenza personalizzata. Il valore minimo è 1 ora (1h) e il massimo è 30 giorni (30d).
devtunnel create myTunnelID Creare un tunnel di sviluppo permanente con un ID tunnel personalizzato.
devtunnel create --tags my-web-app v1 Creare un tunnel di sviluppo permanente e applicare tag ricercabili.
devtunnel list --tags my-web-app Elencare i tunnel di sviluppo con uno dei tag specificati.
devtunnel list --all-tags my-web-app v1 Elencare i tunnel di sviluppo con tutti i tag specificati.
devtunnel show Mostra i dettagli dell'ultimo tunnel di sviluppo usato.
devtunnel show TUNNELID Mostra i dettagli per un tunnel di sviluppo.
devtunnel update TUNNELID -d 'my new tunnel description' Aggiornare la descrizione di un tunnel di sviluppo.
devtunnel update TUNNELID --remove-tags Rimuovere tutti i tag da un tunnel di sviluppo.
devtunnel update TUNNELID --expiration 10d Aggiornare un tunnel di sviluppo con una nuova ora di scadenza personalizzata. Il valore minimo è 1 ora (1h) e il massimo è 30 giorni (30d).
devtunnel delete TUNNELID Eliminare un tunnel di sviluppo.
devtunnel delete-all Eliminare tutti i tunnel di sviluppo.

Suggerimento

La maggior parte dei comandi dell'interfaccia della riga di comando opera in modo implicito nell'ultimo tunnel di sviluppo usato, anche se è disponibile un'opzione per specificare un ID del tunnel di sviluppo, se necessario.

Avanzate: gestire le porte del tunnel di sviluppo

Un tunnel di sviluppo creato usando il devtunnel create comando inizialmente non ha porte. Usare devtunnel port i comandi per aggiungere porte prima dell'hosting:

Comando Descrizione
devtunnel port create Creare una porta del tunnel di sviluppo
devtunnel port list Elencare le porte del tunnel di sviluppo
devtunnel port show Visualizzare i dettagli della porta del tunnel di sviluppo
devtunnel port update Aggiornare le proprietà della porta del tunnel di sviluppo
devtunnel port delete Eliminare una porta del tunnel di sviluppo
Esempi Descrizione
devtunnel port create -p 3000 --protocol http Aggiungere una porta con il protocollo specificato
devtunnel port list TUNNELID Elencare le porte correnti
devtunnel port show TUNNELID -p 3000 Visualizzare i dettagli per la porta 3000
devtunnel port update -p 3000 --description 'frontend port' Aggiornare una descrizione della porta del tunnel di sviluppo
devtunnel port delete -p 3000 Eliminare una porta

Quando si crea una porta, è possibile specificare il protocollo, se il rilevamento automatico non funziona correttamente. Le opzioni correnti sono "http", "https" o "auto" (impostazione predefinita). Se la porta ospitata è HTTPS, è consigliabile impostare il protocollo di porta su "https"; altrimenti "auto" probabilmente va bene.

Dopo aver configurato un tunnel di sviluppo usando i comandi precedenti, iniziare a ospitarlo:

devtunnel host

Avanzate: gestire l'accesso al tunnel di sviluppo

Con i comandi seguenti, è possibile rilasciare token di accesso al tunnel di sviluppo per fornire ad altri client l'accesso al tunnel di sviluppo senza consentire l'accesso anonimo. I comandi di immissione del controllo di accesso consentono di configurare il controllo di accesso nei tunnel di sviluppo e nelle porte del tunnel di sviluppo.

Comando Descrizione
devtunnel token Rilasciare il token di accesso al tunnel di sviluppo
devtunnel access create Creare una voce di controllo di accesso
devtunnel access list Elencare le voci di controllo di accesso
devtunnel access delete Eliminare una voce di controllo di accesso
devtunnel access reset Reimpostare le voci di controllo di accesso per impostazione predefinita

Ecco alcuni esempi sull'uso di questi comandi:

Esempi Descrizione
devtunnel token TUNNELID --scopes connect Ottenere un token di accesso "connect" per un tunnel di sviluppo che può essere condiviso per fornire temporaneamente l'accesso al tunnel di sviluppo.
devtunnel access create TUNNELID --anonymous Abilitare l'accesso client anonimo nel tunnel di sviluppo.
devtunnel access create TUNNELID --anonymous --expiration 4h Abilitare l'accesso client anonimo nel tunnel di sviluppo con una scadenza personalizzata del controllo di accesso. Il valore minimo è 1 ora (1h) e il massimo è 30 giorni (30d).
devtunnel access create TUNNELID --port 3000 --anonymous Abilitare l'accesso client anonimo sulla porta 3000.
devtunnel access create TUNNELID --tenant Abilitare l'accesso corrente al tenant di Microsoft Entra nel tunnel di sviluppo.
devtunnel access create TUNNELID --org ORG Abilitare l'accesso a un'organizzazione GitHub in base al nome nel tunnel di sviluppo.

Suggerimento

L'accesso all'organizzazione GitHub richiede l'installazione dell'app GitHub Dev Tunnels nell'organizzazione.

Comandi supplementari

Questi comandi possono essere usati se è necessario impostare o annullare in modo esplicito questa cache locale dell'ultimo tunnel di sviluppo usato.

Comando Descrizione
devtunnel set Impostare il tunnel di sviluppo predefinito
devtunnel unset Cancellare il tunnel di sviluppo predefinito

Comandi di diagnostica

Comando Descrizione
devtunnel clusters Elencare i cluster di servizi disponibili per località
devtunnel echo Eseguire un server echo di diagnostica su una porta locale
devtunnel ping Inviare messaggi di diagnostica a un server echo remoto
Esempi Descrizione
devtunnel clusters --ping Elencare i cluster di servizi disponibili ordinati in base alla latenza misurata.
devtunnel echo http --port 8080 --interface 127.0.0.1 Avviare un server di diagnostica HTTP locale sulla porta 8080.

Risoluzione dei problemi

Per risolvere i problemi relativi all'interfaccia della devtunnel riga di comando, possono essere utili i suggerimenti seguenti:

  • Assicurarsi di essere nella versione più recente dell'interfaccia della devtunnel riga di comando. Controllare la versione attualmente installata con devtunnel --version.
  • L'opzione --verbose stampa i messaggi di debug, che possono fornire informazioni di diagnostica aggiuntive.