'apt-get' não funciona com Proxy

52

Para o comando

sudo apt-get update

Eu recebo o seguinte erro:

W: Failed to fetch http://ch.archive.ubuntu.com/ubuntu/dists/maverick-updates/multiverse/binary-i386/Packages.gz  
407  Proxy Authentication Required (The ISA Server requires authorization to fulfill the request. Access to the Web Proxy filter is denied. )

Estou executando o Ubuntu 10.10 instalado no Windows XP usando o VirtualBox. Para conexões à Internet, estou usando um servidor proxy com autenticação. Tentei usar a gnome-network-proxyferramenta para definir configurações de proxy em todo o sistema.

Após isso /etc/environmentter sido atualizado por http_proxyvariável com o formato http://my_proxy:port/, não havia dados de autenticação.

Eu verifiquei isso com o Firefox. O navegador pediu meu login e senha e tudo estava funcionando bem. Infelizmente não foi o caso do apt-get. Eu também tentei fazer como descrito aqui . Infelizmente isso não funciona.

De alguma forma, pode estar relacionado ao fato de um proxy estar em um domínio do Windows, alguma idéia?

Meu nome de proxy é http-proxy . ' - ' é um caractere especial aqui?

tommyk
fonte
2
Você usou o proxy de rede global em sistema -> preferências -> proxy de rede e aplicou as configurações globalmente?
DemonWareXT
Você poderia tentar a ferramenta GUI fácil de usar GrrProxy
Renae Lider

Respostas:

52

Para minha rede corporativa, o administrador me deu o nome do proxy no formato:

http://[username]:[password]@[proxy-webaddress]:[port]

Para nossa rede Windows, nosso nome de usuário está no formato:

[domain]\[username]

Por exemplo:

http://mywindowsdomain\fossfreedom:[email protected]:8080

Isso foi adicionado ao seguinte arquivo NOVO (ele não existe por padrão):

gksudo gedit /etc/apt/apt.conf.d/01proxy

O seguinte texto foi adicionado:

Acquire::http::Proxy "http://mywindowsdomain\fossfreedom:[email protected]:8080";

Se você estiver usando um proxy anônimo, não precisará de suas credenciais de login:

Acquire::http::Proxy "http://askubuntu-proxy.com:8080";

Salve o arquivo e verifiquei se estava tudo bem com:

sudo apt-get update
liberdade de expressão
fonte
Para aqueles que lerão isso mais tarde: isso parece um truque para quem não é treinado, mas é uma maneira incrivelmente simples de fazer com que o proxy corporativo obedeça.
26412
11
Isso funciona perfeitamente. A menos que você tenha definido anteriormente o /etc/apt/apt.conf com uma linha de aquisição incorreta. Fiz exatamente isso e tudo o que tive que fazer foi voltar e excluir essa linha.
Skip Huffman
No Ubuntu 12.10, tive que copiar as alterações feitas no /etc/apt/apt.conf.d/01proxy para o /etc/apt/apt.aptf antes que ele funcionasse.
Stephen Niedzielski 26/03
mesmo com essas edições, não consegui fazer isso funcionar com o 12.04 ... mas consegui fazer isso usando e configurando ntlmaps e apontando o arquivo apt.conf para o proxy intermediário lá.
Monkut
The program 'gksudo' is currently not installed. You can install it by typing: sudo apt-get install gksu(o que obviamente não funcionará sem um proxy configurado ...) Felizmente sudofunciona muito bem.
TED
13

Eu descobri que USERNAME e PASSWORD inseridos no applet "Network Proxy" não são armazenados no arquivo apt.conf. Você deve adicionar manualmente o nome de usuário e a senha no arquivo /etc/apt/apt.conf.

O applet "Network Proxy" armazena apenas o nome do host e a porta.

A sintaxe básica é

Acquire::http::proxy "http://User:Password@host:port/";

Acquire::ftp::proxy "ftp://User:Password@host:port/";

Acquire::https::proxy "https://User:Password@host:port/";

Se você estiver usando nomes de usuário e senha do Windows, siga este conselho:

User = Domain/Username

(os usuários do Windows /não usam \)

Se você estiver usando uma senha forte / complexa do Windows com caracteres especiais, deverá usar a codificação de URL para os valores, por exemplo, um "@" na senha seria "% 40".

MneMoth
fonte
(os usuários do Windows usam / não) É por isso que estou preso :) Obrigado!
GaiusSensei
9

Tente definir http_proxypara http: // user: pass @ proxyserver: port /

editar:
se a configuração http_proxynão funcionar, tente editar apt.conf. No
Ubuntu apt.confestá fragmentado no /etc/apt/apt.conf.d/diretório
Neste diretório, edite /etc/apt/apt.conf.d/01ubuntu:

APT {
    Acquire {
        http {
            Proxy "http://user:password@server:port";
        };
    };
};

ou tente configurá-lo usando o Synaptic: Configurações -> Preferências -> Rede
E defina suas configurações de proxy em "Configuração manual de proxy".

Casual Coder
fonte
3
Você quer dizer arquivo / etc / environment?
tommyk
No entanto, ele definirá essa variável globalmente.
Casual Coder
Como alguém codificaria os dois pontos como parte da senha?
K0pernikus
/ etc / ambiente não está funcionando com o apt-get (ou pelo menos que requer reinicialização;), mudando apt.conf tem efeito imediato
Danubian Sailor
Posso confirmar a configuração "Configuração manual do proxy" e "Aplicar todo o sistema" no Network funciona com o apt-get.
Will Sheppard
4

Estou atrás de um proxy MS ISA e estou usando o Cntlm Authentication Proxy; no apt.confeu tenho 4 linhas; Li em algum lugar que a última linha deve estar vazia, mas não tenho certeza. Funciona perfeitamente:

Acquire::http::proxy "http://127.0.0.1:3128/";
Acquire::ftp::proxy "ftp://127.0.0.1:3128/";
Acquire::https::proxy "https://127.0.0.1:3128/";
diabo
fonte
3

O cntlm possui uma opção de descoberta que ajuda a encontrar a configuração correta para funcionar com a autenticação NTLM da sua rede, tente o seguinte:

cntlm -I -M http://test.com

copie e cole os resultados no /etc/cntlm.conf

restart cntlm

tommyk
fonte
'cntlm' is currently not installed. You can install it by typing: sudo apt-get install cntlm(que, se o curso não funcionar, se meu proxy não estiver definido corretamente ...)
TED
2
  1. Abra o terminal e adicione as seguintes linhas ao /etc/apt/apt.conf.

    gksu gedit /etc/apt/apt.conf
    
  2. Adicione estas 2 linhas:

    Acquire::http::Proxy "http://user:pass@proxy-host:port/";
    Acquire::ftp::Proxy "http://user:pass@proxy-host:port/";
    
  3. Salvar e sair.

    Agora apt-get updatee deve funcionar atrás de um proxy, mas você notará que ainda algo não está funcionando, esse é o add-apt-repositorycomando.

    Para poder adicionar repositório atrás de um proxy, digite os seguintes comandos:

    # export https_proxy="http://192.168.1.5:8080"
    # sed -i 's/"keyserver.ubuntu.com"/"hkp://keyserver.ubuntu.com:80"/' /usr/share`/pyshared/softwareproperties/ppa.py`
    

    Agora você pode adicionar repositórios no Lucid e Natty usando LANG = C add-apt-repository

    Exemplo:

    root @ ubuntu: ~ # LANG = C repositório add-apt-ppa: motumedia / mplayer-daily

Via Unixmen

donadonia
fonte
2

Como aplicar o apt-get update ou instalar no Ubuntu? Eu estava atrás de um servidor proxy e depois de instalar o Ubuntu, não consegui atualizar ou instalar nada usando o comando apt-get. Após a pesquisa, descobri que o pacote apt foi alterado, agora não há mais apt.conf no diretório / etc / apt.

O que eu fiz para resolver esse problema é o seguinte:

Abra o terminal e o arquivo

sudo -H gedit /etc/bash.bashrc

e adicione na parte inferior do arquivo estas 2 linhas:

#proxy 
export http_proxy=http://user:password@host:port/
export ftp_proxy=http://user:pass@host:port/

Agora salve e saia. Agora você poderá atualizar, atualizar ou instalar pacotes no Ubuntu

hhlp
fonte
Eu adicionei exportações como você sugeriu. Ele ainda não funciona. Agora, recebi uma mensagem de erro diferente "Não foi possível conectar-se ao extras.ubuntu.com:80 (91.189.88.33). - connect (110: Conexão esgotada)". O estranho é que, quando insiro as mesmas configurações de proxy nas preferências do Firefox, posso navegar na web.
tommyk
@tommyk você pode postar seu /etc/apt/sources.list e atualizar sua pergunta aqui ou tentar excluir extras.ubuntu.com do seu /etc/apt/sources.list e executar o apt-get update
hhlp
Substituí meu sources.list por um padrão da página da web do ubuntu. Eu ainda tenho o mesmo erro para todos os repositórios listados neste arquivo.
tommyk
2

Este tem trabalhado para mim !!

(adicionar proxy manualmente a partir da GUI por meio de configurações do sistema-> rede etc deve funcionar) Mas se não funcionar, e você exporta a variável env do terminal:

export http_proxy=http://<your proxy url>:<proxy port>

e novamente para https:

export https_proxy= <usually the same as the http>

Mais importante para adicionar -E: Para executar sudo apt-get installou sudo apt-get updatevocê deve executar:

sudo -E <command>

O "-E" usa as variáveis ​​de ambiente do usuário para a raiz (sudo); nesse caso, o http_proxy / https_proxy que você acabou de exportar.

Espero que ajude :)

Kohn1001
fonte
1

Com um proxy BlueCoat, para mim o formato do apt.confarquivo era parecido com:

Acquire::http::proxy "http://Domain%5cUserID:[email protected]:80/";
Acquire::ftp::proxy "ftp://Domain%5cUserID:[email protected]:80/";
Acquire::https::proxy "https://Domain%5cUserID:[email protected]:80/";

^ ^ ^ ^ Linha em branco após a terceira linha de proxy, não insira esta linha. ^ ^ ^ ^

Jason
fonte
1

Teve esse mesmo problema depois de instalar o Ubuntu 18.04. O que funcionou para mim foi:

  1. Abra a tela Proxy de rede nas configurações de rede
  2. Selecione Manual e adicionando informações de proxy http e https
  3. Além disso, defina o campo Ignorar hosts com:
    https://extensions.gnome.org*, *.extensions.gnome.org*
  4. Reiniciou o Ubuntu

Quanto ao ponto 3, não tenho certeza se a adição da entrada acima funciona ou não, mas esta etapa funciona para mim

Vuzi
fonte
0
  1. Inicie o Synaptic (vá para Sistema -> Administração -> Synaptic no Gnome 2 ou digite "synaptic" no Dash no Unity).
  2. Na barra de menus, clique em Configurações , seguido de Preferências .
  3. Quando a janela Preferências aparecer, clique na guia Rede .
  4. Selecione o botão de opção Configuração manual do proxy e insira suas informações de proxy.
  5. Para aplicar informações de autenticação, clique no botão Autenticação e insira o nome de usuário e a senha.
  6. Clique em OK para fechar a janela Autenticação HTTP.
  7. Clique em OK para fechar a janela Preferências.
  8. Clique no botão Recarregar para atualizar as listas de pacotes.

Observe que essa alteração de configuração também afetará o Update Manager .

NC Weber
fonte
0

Esta solução de uma linha funcionou para mim:

sudo env http_proxy=http://<ip>:<port> apt-get update
Raheel
fonte