Os sites abrem pela VPN, mas o apt não alcança o repositório
Um navegador que funciona pela VPN não diz nada sobre as configurações de proxy do apt. Leia a etapa que falha, despeje a configuração efetiva e depois defina o proxy que o apt lê.
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.