A VPN conecta, o wiki interno abre no navegador e o apt update continua travado num espelho que não consegue alcançar. Nada do túnel está quebrado nesse quadro. O navegador e o gerenciador de pacotes tomaram duas decisões de proxy separadas, e apenas uma delas estava configurada.

Qual decisão falhou é a única coisa que vale estabelecer primeiro.

Leia o erro antes de mexer em qualquer configuração

Cada etapa deixa uma mensagem diferente. Um nome que nunca resolve é DNS, uma conexão que nunca completa é roteamento ou firewall, um 407 imediato é autenticação de proxy, uma reclamação de certificado é verificação TLS e um aviso de assinatura são metadados do repositório. Essas cinco falhas exigem cinco correções diferentes, e uma linha de proxy colada sobre um problema de DNS só desloca o travamento.

Copie a linha exata e o repositório que ela nomeia antes de mudar qualquer coisa. Uma lembrança vaga de «deu timeout» é o que transforma um diagnóstico de dez minutos numa tarde inteira.

O APT mantém as próprias configurações de proxy

O APT lê /etc/apt/apt.conf.d/, o apt.conf principal e qualquer arquivo indicado por APT_CONFIG. Ele não lê um perfil de proxy da área de trabalho, uma configuração de rede do GNOME nem uma extensão de navegador. O transporte, sim, respeita as variáveis de ambiente de proxy, e é por isso que um export https_proxy=... que funciona no seu shell não prova nada sobre um timer que roda em outro ambiente.

Despeje o que o processo que falha realmente vê: apt-config dump | grep -i proxy.

Execute isso como o usuário com que a operação que falha roda. Se o root lê um conjunto diferente de arquivos, ou um timer do systemd inicia com outro ambiente, o despejo será diferente, e essa diferença é a sua resposta. Dois valores de proxy que discordam são piores do que um valor ausente, porque o transporte segue a correspondência mais específica que encontra.

Defina o proxy onde o dono da configuração espera encontrá-lo

Para um proxy explícito aprovado pelo administrador, um fragmento pequeno num arquivo novo basta:

Acquire::http::Proxy "http://proxy.corp.example:3128/";
Acquire::https::Proxy "http://proxy.corp.example:3128/";
Acquire::http::Proxy::archive.example.internal "DIRECT";

A terceira linha é a parte que a maioria dos exemplos omite. Uma chave por host sobrepõe o valor genérico, então um espelho interno alcançável pelo túnel pode pular o proxy enquanto todo o resto continua passando por ele. DIRECT é o valor documentado para isso, não uma string vazia.

Adicione o fragmento como um arquivo novo e numerado, por exemplo /etc/apt/apt.conf.d/95proxy. Sobrescrever um arquivo da distribuição significa que a próxima atualização de pacotes reverte sua mudança em silêncio.

As credenciais ficam fora do URI

A referência do transporte APT aponta para apt_auth.conf para autenticação, e é ali que o nome de usuário e a senha devem ficar. Embuti-los no URI do proxy os coloca nas listagens de processos, no histórico do shell e em cada despejo de configuração colado num ticket. O arquivo de autenticação precisa de permissões restritas, porque é um armazenamento de credenciais.

Verifique também o esquema. Um repositório HTTPS ainda pode ser alcançado por um proxy HTTP; o transporte é uma escolha separada da escolha do esquema do URI do espelho.

Uma central de software gráfica é uma frente separada. Se ela usa PackageKit ou um backend snap, o fragmento do APT não muda nada para ela, então confirme qual processo fez a requisição que falhou.

Confirme o caminho, não só o código de saída

Com o fragmento no lugar, observe a requisição em vez de confiar num resultado verde. apt-get -o Debug::Acquire::http=true update imprime a tentativa de conexão, o proxy escolhido e o código de resposta, o que separa um proxy errado de um proxy que recusou você.

Agora teste o caso que não deveria funcionar. Desconecte a VPN e confirme que o espelho interno para de responder; se ele ainda baixar, alguma coisa está roteando por fora do túnel ou um cache velho está servindo você. Confirme que o caminho permitido ainda valida TLS e ainda confere as assinaturas do repositório, porque um proxy que inspeciona tráfego não é motivo para desativar nenhum dos dois. Confirme também que um cliente não autenticado recebe uma negação clara em vez de um timeout silencioso.

Mantenha juntos o fragmento que funciona e a saída que falha no registro de mudanças. A próxima pessoa que bater no mesmo travamento reconhecerá a diferença de duas linhas mais rápido do que qualquer explicação.

Artigos relacionados