Como usar o "apt-get" via "Http-proxy" como este?


20

Estou tentando usar o apt-getcomando em uma rede que usa um proxy, como este:

Usamos 10.114.7.7 na porta 80 como proxy Http e, depois disso, uma janela de autenticação é exibida, solicitando nome de usuário e senha.

Nosso nome de usuário / domínio é assim: nomedeusuário@urmia.ac.ir

Gostaria de saber como posso usar http_proxy=http://User:Pass@Proxyserver:Portnessa situação !? Eu também tentei ambos, 10.114.7.7 e urmia.ac.ir como servidor Proxy, mas sem resultado!

Respostas:


35

Para usar o apt-get através de um proxy, crie um arquivo /etc/apt/apt.conf.d/chamado proxy ou algo que você reconheça ou faça (se não existir) /etc/apt/apt.confe insira a seguinte linha:

Acquire::http::Proxy "http://username:password@proxy.server:port/";

Simplesmente substitua nome de usuário e senha pelos seus detalhes de login e substitua proxy.server: port pelo endereço correto (no seu caso, 10.114.7.7:80), para que sua linha termine assim:

Acquire::http::Proxy "http://username:password@10.114.7.7:80";

Se você precisar usar o @símbolo em seu nome de usuário, será necessário escapá-lo com uma barra invertida ( username@urmia.ac.ir)

Embora o escape de caracteres usando a barra invertida não funcione (por exemplo, \@in exporte wget), caracteres especiais podem ser escapados com a codificação de URL. Por exemplo, username:my@pass@server.com:porttorna-se username:my%40pass@server.com:port. Veja esta lista de caracteres codificados em URL para obter mais informações.


A solução proposta para adicionar uma entrada de proxy dentro de / etc / apt funcionou para mim, mas observo que se o servidor proxy armazena em cache as credenciais, você pode evitar incorporar suas credenciais no arquivo de configuração, autenticando-se através do servidor proxy em um processo diferente ( por exemplo, navegador da web no Windows), antes de executar os comandos apt no seu shell bash. Ao fazer isso, pude especificar a entrada do proxy dentro de / etc / apt como " server: port " em vez de " username: password @ server: port ".
Peter Sanza

6

Como alternativa, você pode colocar o seguinte em /etc/apt/apt.conf

Acquire::http::Proxy "http://proxy.server.port:8080";

8080 é o número da porta e eu acho que é padrão.

Não se esqueça das aspas ou do ponto e vírgula à direita.


4

Isso deve resolver seu problema:

export http_proxy=http://username:password@10.114.7.7:80/

EXPORT HTTP_proxy=http://username:password@10.114.7.7:80/executado no Bash resulta em EXPORT: command not found.
David Foerster

Exporte e http em minúsculas. O Bash diferencia maiúsculas de minúsculas. Caso contrário, deve funcionar. Pelo menos, está trabalhando para mim há dois anos.
S3lph

6
funciona para curl, mas não para o apt.
FGM
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.