Solucionar interferência de rede

De relance
Objetivo: Corrigir a perda de conectividade das aplicações quando o Proxy de Desenvolvimento é executado
Tempo: 5 minutos
Plugins: Nenhuma
Pré-requisitos:Configurar o Proxy de Desenvolvimento

Algumas aplicações perdem conectividade de rede enquanto o Dev Proxy está a correr, mesmo quando os seus URLs não estão na tua urlsToWatch lista. Este artigo explica porque acontece e como resolver.

Sintomas

  • Aplicações como o Outlook, WhatsApp ou outras aplicações de ambiente de trabalho deixam de funcionar quando o Proxy de Desenvolvimento começa
  • As aplicações mostram erros de ligação mesmo que os seus URLs não estejam a ser visualizados
  • A conectividade de rede regressa imediatamente assim que desliga o Dev Proxy

Motivo

Quando o Proxy de Desenvolvimento se regista como proxy de sistema (o comportamento padrão), todo o tráfego HTTP/HTTPS na sua máquina passa por ele. Algumas aplicações usam fixação de certificados, o que significa que só aceitam ligações assinadas por certificados específicos. Como o Dev Proxy usa o seu próprio certificado para intercetar tráfego, estas aplicações rejeitam a ligação e perdem o acesso à rede.

Este problema é mais comum no Windows, onde as aplicações usam automaticamente as definições do proxy do sistema.

Solutions

Escolha a solução que melhor se adapte ao seu fluxo de trabalho:

Opção 1: Excluir URLs nas definições do proxy do Windows

Adicione exceções para domínios problemáticos nas definições do proxy do Windows. O tráfego para estes domínios ignora completamente o Dev Proxy.

  1. Abrir Definições>Rede e Internet>Proxy

  2. Em Configuração manual de proxy, encontre Use o servidor proxy, exceto para endereços que começam com as seguintes entradas

  3. Adicione os domínios que estão a ter problemas, separados por ponto e vírgula. Por exemplo:

    *.outlook.com;*.office.com;*.whatsapp.com;*.whatsapp.net
    
  4. Selecione Guardar

O tráfego para estes domínios agora contorna o Dev Proxy enquanto o restante tráfego continua a passar por ele.

Opção 2: Desativar o modo proxy do sistema

Se não precisares de Dev Proxy para intercetar tráfego de todas as aplicações, desativa o proxy do sistema e configura apenas a tua aplicação alvo para usar o proxy.

Utilização da linha de comandos

Inicie o Proxy de Desenvolvimento sem se registar como proxy do sistema:

devproxy --as-system-proxy false

Utilização do ficheiro de configuração

Adicione esta definição ao seu devproxyrc.json:

{
  "asSystemProxy": false
}

Depois configure a sua aplicação para usar Dev Proxy definindo a https_proxy variável de ambiente:

set https_proxy=http://127.0.0.1:8000
export https_proxy=http://127.0.0.1:8000
export https_proxy=http://127.0.0.1:8000

Com esta configuração, apenas as aplicações que respeitam a https_proxy variável de ambiente enviam tráfego através do Dev Proxy. Outras aplicações ligam-se diretamente à internet.

Opção 3: Assistir apenas a processos específicos

Utilize as definições watchProcessNames ou watchPids para intercetar tráfego apenas de aplicações específicas. Esta abordagem ainda regista o Dev Proxy como um proxy de sistema, mas limita que processos têm o seu tráfego intercetado.

{
  "watchProcessNames": ["node", "dotnet"]
}

Consulte também