Referência de linha de comando de túneis de desenvolvimento

Os túneis de desenvolvimento oferecem uma ferramenta de interface de linha de comando (CLI) para criar e gerenciar túneis de desenvolvimento. Este artigo explica a sintaxe e os parâmetros para os vários devtunnel comandos da CLI.

Importante

Esse recurso está atualmente em visualização pública. Essa versão prévia é fornecida sem contrato de nível de serviço e não é recomendada para cargas de trabalho de produção. Alguns recursos podem não ter suporte ou podem ter restrição de recursos.

Observação

devtunnel Os comandos da CLI estão em visualização. Os nomes e opções de comando podem ser alterados em versões futuras.

Opções globais

  • -v, --verbose: Habilite a saída detalhada.
  • -?, -h, --help: Mostrar informações de ajuda e uso.

Gerenciar credenciais de usuário

O serviço de túnel de desenvolvimento requer logon para autorizar o gerenciamento e o acesso a túneis de desenvolvimento. Por padrão, um túnel de desenvolvimento só é acessível ao usuário que criou o túnel de desenvolvimento, embora esse usuário possa conceder acesso a outros.

Depois de fazer login, o token de login é armazenado em cache no conjunto de chaves seguras do sistema e é válido por vários dias antes da expiração. Sair da CLI limpa esse token armazenado em cache, mas não limpa nenhum cookie do navegador. O que pode incluir tokens de acesso ao túnel de desenvolvimento se um navegador foi usado para autenticar com um túnel de desenvolvimento.

Comando Descrição
devtunnel user login Faça login com uma conta da Microsoft ou do GitHub.
devtunnel user logout Limpar o token armazenado em cache
devtunnel user show Mostrar o status de login atual

Dica

devtunnel login e são comandos abreviados para entrar e devtunnel logout sair.

Aqui estão alguns exemplos sobre o uso desses comandos:

Exemplos Descrição
devtunnel user login Iniciar sessão com uma organização Microsoft (ID do Microsoft Entra) ou conta pessoal
devtunnel user login -g Faça login com uma conta do GitHub
devtunnel user login -d Faça login com uma conta do GitHub com login de código de dispositivo, se o login interativo local do navegador não for possível
devtunnel user login -g -d Faça login com uma conta do GitHub com login de código de dispositivo, se o login interativo local do navegador não for possível

Hospedar um túnel de desenvolvimento

devtunnel host é o comando principal usado para hospedar seu túnel de desenvolvimento. O comando deve ser executado no sistema host que executa o servidor que você deseja acessar através do túnel de desenvolvimento.

Comando Descrição
devtunnel host Hospede um túnel de desenvolvimento. Se uma ID de túnel de desenvolvimento não for especificada, um novo túnel de desenvolvimento temporário será criado que será excluído assim que a conexão for fechada.

Aqui estão alguns exemplos sobre o uso deste comando:

Exemplos Descrição
devtunnel host -p 3000 Hospede um túnel de desenvolvimento temporário para uma porta de escuta de servidor 3000 no sistema host.
devtunnel host -p 3000 --allow-anonymous Hospede um túnel de desenvolvimento temporário e habilite o acesso de cliente anônimo.
devtunnel host -p 3000 5000 Hospede um túnel de desenvolvimento temporário para servidores locais escutando nas portas 3000 e 5000.
devtunnel host -p 8443 --protocol https Hospede um túnel de desenvolvimento temporário para um servidor que escuta na porta 8443 que usa o protocolo HTTPS.
devtunnel host -p 8000 --expiration 2d Hospede um túnel de desenvolvimento temporário com um tempo de expiração personalizado. A mínima é de 1 hora (1h) e a máxima é de 30 dias (30d).
devtunnel host TUNNELID Hospede um túnel de desenvolvimento existente que tenha sido configurado anteriormente.

Aviso

Permitir acesso anônimo a um túnel de desenvolvimento significa que qualquer pessoa na Internet pode se conectar ao seu servidor local, se puder adivinhar a ID do túnel de desenvolvimento.

Pressione Control-C para interromper o processo de host do túnel de desenvolvimento e encerrar todas as conexões de cliente através do túnel de desenvolvimento. Se um túnel de desenvolvimento existente não foi fornecido, o túnel de desenvolvimento que foi criado automaticamente pelo processo será excluído na saída do processo.

Conectar-se a um túnel de desenvolvimento

Usando a interface do usuário de encaminhamento da Web:

O devtunnel host comando mostra uma saída semelhante à seguinte:

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

O URI exibido https: é exclusivo para a porta do túnel de desenvolvimento: o primeiro componente é um subdomínio que contém a ID do túnel de desenvolvimento e o número da porta fornecidos.

Se a porta hospedada se conectar a um servidor Web, esse URI poderá ser aberto diretamente em um navegador, de qualquer lugar. Se o acesso ao túnel de desenvolvimento exigir autorização, a solicitação inicial ao URI redirecionará para uma página de logon e retornará ao site depois que o usuário for autorizado.

Se a porta hospedada se conectar a um serviço Web, esse URI poderá ser usado como o URI base por um aplicativo cliente de serviço Web. No entanto, se o túnel de desenvolvimento não permitir acesso anônimo, o cliente do serviço Web normalmente não saberá como autenticar. Se o serviço Web for seguro para expor publicamente, considere permitir o acesso anônimo. Caso contrário, um cliente de serviço Web pode adicionar um cabeçalho de solicitação com um token de acesso de túnel de desenvolvimento para autorizar a conexão.

Usando a CLI:

Em vez de ter um navegador cliente ou aplicativo conectado diretamente a um URI de retransmissão de túnel de desenvolvimento, a CLI pode ser usada para encaminhar conexões de uma porta no cliente para uma porta de túnel de desenvolvimento. O cliente também pode precisar fazer login, se o túnel de desenvolvimento não permitir acesso anônimo.

devtunnel connect TUNNELID
  • Substitua TUNNELID pelo mesmo id de túnel de desenvolvimento que foi usado no host.

A saída bem-sucedida do cliente é semelhante à seguinte:

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.

Agora, o servidor que foi compartilhado na porta 3000 do host está disponível no localhost:3000 cliente, usando IPv4 ou IPv6. (O prefixo "SSH" é porque o serviço de túnel de desenvolvimento se baseia no protocolo SSH padrão para encaminhamento de porta.) Se a porta hospedada se conectar a um servidor Web, poderá http://localhost:3000/ ser aberta em um navegador. Nesse caso, nenhuma autorização adicional é necessária porque o token de login da CLI do cliente foi usado para autorizar a conexão, se necessário.

Avançado: gerenciar túneis de desenvolvimento

É possível criar um túnel de desenvolvimento ainda sem hospedá-lo. Isso é útil para configuração e gerenciamento avançados de túnel de desenvolvimento, como:

  • Listando todos os túneis de desenvolvimento de propriedade
  • Adicionando e removendo portas de um túnel de desenvolvimento
  • Gerenciando controles de acesso de túnel de desenvolvimento
  • Adicionando metadados a um túnel de desenvolvimento, como descrição e tags
Comando Descrição
devtunnel create Criar um túnel de desenvolvimento persistente
devtunnel list Listar túneis de desenvolvimento
devtunnel show Mostrar detalhes do túnel de desenvolvimento
devtunnel update Atualizar propriedades do túnel de desenvolvimento
devtunnel delete Excluir um túnel de desenvolvimento
devtunnel delete-all Excluir todos os túneis de desenvolvimento

Aqui estão alguns exemplos sobre o uso desses comandos:

Exemplos Descrição
devtunnel create -a Crie um túnel de desenvolvimento persistente que permita acesso anônimo.
devtunnel create -d 'my tunnel description' Crie um túnel de desenvolvimento persistente com uma descrição não pesquisável.
devtunnel create --expiration 4h Crie um túnel de desenvolvimento persistente com um tempo de expiração personalizado. A mínima é de 1 hora (1h) e a máxima é de 30 dias (30d).
devtunnel create myTunnelID Crie um túnel de desenvolvimento persistente com uma ID de túnel personalizada.
devtunnel create --tags my-web-app v1 Crie um túnel de desenvolvimento persistente e aplique tags pesquisáveis.
devtunnel list --tags my-web-app Listar túneis de desenvolvimento que têm qualquer uma das tags especificadas.
devtunnel list --all-tags my-web-app v1 Listar túneis de desenvolvimento que têm todas as tags especificadas.
devtunnel show Mostrar detalhes do último túnel de desenvolvimento usado.
devtunnel show TUNNELID Mostrar detalhes de um túnel de desenvolvimento.
devtunnel update TUNNELID -d 'my new tunnel description' Atualize a descrição de um túnel de desenvolvimento.
devtunnel update TUNNELID --remove-tags Remova todas as tags de um túnel de desenvolvimento.
devtunnel update TUNNELID --expiration 10d Atualize um túnel de desenvolvimento com um novo tempo de expiração personalizado. A mínima é de 1 hora (1h) e a máxima é de 30 dias (30d).
devtunnel delete TUNNELID Exclua um túnel de desenvolvimento.
devtunnel delete-all Exclua todos os seus túneis de desenvolvimento.

Dica

A maioria dos comandos da CLI opera no último túnel de desenvolvimento usado implicitamente, embora haja uma opção para especificar um ID de túnel de desenvolvimento, se necessário.

Avançado: gerenciar portas de túnel de desenvolvimento

Um túnel de desenvolvimento criado usando o devtunnel create comando inicialmente não tem portas. Use devtunnel port comandos para adicionar portas antes de hospedar:

Comando Descrição
devtunnel port create Criar uma porta de túnel de desenvolvimento
devtunnel port list Listar portas de túnel de desenvolvimento
devtunnel port show Mostrar detalhes da porta do túnel de desenvolvimento
devtunnel port update Atualizar propriedades da porta do túnel de desenvolvimento
devtunnel port delete Excluir uma porta de túnel de desenvolvimento
Exemplos Descrição
devtunnel port create -p 3000 --protocol http Adicionar uma porta com o protocolo especificado
devtunnel port list TUNNELID Listar portas atuais
devtunnel port show TUNNELID -p 3000 Mostrar os detalhes da porta 3000
devtunnel port update -p 3000 --description 'frontend port' Atualizar uma descrição de porta de túnel de desenvolvimento
devtunnel port delete -p 3000 Excluir uma porta

Ao criar uma porta, o protocolo pode ser opcionalmente especificado, se a detecção automática não funcionar corretamente. As opções atuais são "http", "https" ou "auto" (padrão). Se a porta hospedada for HTTPS, é recomendável definir o protocolo de porta como "https"; caso contrário, "auto" é provavelmente bom.

Depois de configurar um túnel de desenvolvimento usando os comandos acima, comece a hospedá-lo:

devtunnel host

Avançado: gerenciar o acesso ao túnel de desenvolvimento

Com os comandos a seguir, tokens de acesso ao túnel de desenvolvimento podem ser emitidos para fornecer a outros clientes acesso ao seu túnel de desenvolvimento sem permitir acesso anônimo. Os comandos de entrada de controle de acesso permitem configurar o controle de acesso em túneis de desenvolvimento e portas de túnel de desenvolvimento.

Comando Descrição
devtunnel token Emitir token de acesso ao túnel de desenvolvimento
devtunnel access create Criar uma entrada de controle de acesso
devtunnel access list Listar entradas de controle de acesso
devtunnel access delete Excluir uma entrada de controle de acesso
devtunnel access reset Redefinir entradas de controle de acesso para padrão

Aqui estão alguns exemplos sobre o uso desses comandos:

Exemplos Descrição
devtunnel token TUNNELID --scopes connect Obtenha um token de acesso 'connect' para um túnel de desenvolvimento que pode ser compartilhado para fornecer acesso temporário ao túnel de desenvolvimento.
devtunnel access create TUNNELID --anonymous Habilite o acesso de cliente anônimo no túnel de desenvolvimento.
devtunnel access create TUNNELID --anonymous --expiration 4h Habilite o acesso de cliente anônimo no túnel de desenvolvimento com um tempo de expiração de controle de acesso personalizado. A mínima é de 1 hora (1h) e a máxima é de 30 dias (30d).
devtunnel access create TUNNELID --port 3000 --anonymous Habilite o acesso de cliente anônimo na porta 3000.
devtunnel access create TUNNELID --tenant Habilite o acesso de locatário atual do Microsoft Entra no túnel de desenvolvimento.
devtunnel access create TUNNELID --org ORG Habilite um acesso à organização do GitHub por nome no túnel de desenvolvimento.

Comandos suplementares

Esses comandos podem ser usados se você precisar definir ou desdefinir explicitamente esse cache local do túnel de desenvolvimento usado pela última vez.

Comando Descrição
devtunnel set Definir túnel de desenvolvimento padrão
devtunnel unset Limpar túnel de desenvolvimento padrão

Comandos de diagnóstico

Comando Descrição
devtunnel clusters Listar clusters de serviço disponíveis por local
devtunnel echo Executar um servidor de eco de diagnóstico em uma porta local
devtunnel ping Enviar mensagens de diagnóstico para um servidor de eco remoto
Exemplos Descrição
devtunnel clusters --ping Listar clusters de serviço disponíveis classificados por latência medida.
devtunnel echo http --port 8080 --interface 127.0.0.1 Inicie um servidor de diagnóstico http local na porta 8080.

Solução de problemas

Para solucionar problemas com a devtunnel CLI, as seguintes dicas podem ser úteis:

  • Verifique se você está na versão mais recente da devtunnel CLI. Verifique a versão atualmente instalada com devtunnel --versiono .
  • A --verbose opção imprime mensagens de depuração, que podem fornecer informações de diagnóstico extras.