apt.conf “Adquirir: http: Proxy” proxyserver: port ”não parece ser usado (Ubuntu 13.04 no Virtual Box no Win7)

9

Isto é para uma instalação do Ubuntu 13.04 Desktop em uma VM VirtualBox. Eu estou em uma rede corprate com um proxy HTTP em x.y.z.251: 9090. Eu configurei o sistema operacional convidado com o script de configuração automática, então o Firefox funciona bem, mas não consigo conectar o "apt-get" ou o "Ubuntu Software Center" usando o proxy.

Eu criei o arquivo "/etc/apt/apt.conf", agora ele contém uma única linha de texto:

Acquire::http:Proxy "http://x.y.z.251:9090"

que é o que o arquivo proxy.pac que eu especifiquei em "Configurações do Sistema / Rede / Network Proxy" e aplicado a todo o sistema.

Quando eu uso o Firefox, um rastreamento de pacote mostra que a conexão TCP é feita através do proxy corporativo na porta 9090, quando eu executo o "Ubuntu Software Center" e "apt-get", o rastreamento de pacotes mostra pacotes TCP SYN com o eventual endereço IP de destino e porta 80. Não há, é claro, resposta aos pacotes SYN, já que o firewall corporativo impede que as conexões TCP na porta 80 entrem ou saiam.

Com o "sudo apt-get" em uma janela de terminal, sempre vejo:

Ign cdrom://Ubuntu 13.04 _Raring Ringtail_ - Release amd64 (20130424) raring/main Translation-en_US
Ign cdrom://Ubuntu 13.04 _Raring Ringtail_ - Release amd64 (20130424) raring/main Translation-en
Ign cdrom://Ubuntu 13.04 _Raring Ringtail_ - Release amd64 (20130424) raring/restricted Translation-en_US
Ign cdrom://Ubuntu 13.04 _Raring Ringtail_ - Release amd64 (20130424) raring/restricted Translation-en
Err http://extras.ubuntu.com raring Release.gpg 
  Could not connect to extras.ubuntu.com:80 (91.189.92.152), connection timed out
Err http://archive.canonical.com raring Release.gpg 
  Cannot initiate the connection to archive.canonical.com:80 (2001:67c:1360:8c01::1b). - connect (101: Network is unreachable) [IP: 2001:67c:1360:8c01::1b 80]
Err http://us.archive.ubuntu.com raring Release.gpg 
  Cannot initiate the connection to us.archive.ubuntu.com:80 (2001:67c:1562::14). - connect (101: Network is unreachable) [IP: 2001:67c:1562::14 80]
Err http://us.archive.ubuntu.com raring-updates Release.gpg
  Cannot initiate the connection to us.archive.ubuntu.com:80 (2001:67c:1562::14). - connect (101: Network is unreachable) [IP: 2001:67c:1562::14 80]
Err http://us.archive.ubuntu.com raring-backports Release.gpg
  Cannot initiate the connection to us.archive.ubuntu.com:80 (2001:67c:1562::14). - connect (101: Network is unreachable) [IP: 2001:67c:1562::14 80]
59% [Connecting to security.ubuntu.com (91.189.91.14)]

Por fim, vejo:

Err http://security.ubuntu.com raring-security Release.gpg
  Cannot initiate the connection to security.ubuntu.com:80 (2001:67c:1360:8c01::18). - connect (101: Network is unreachable) [IP: 2001:67c:1360:8c01::18 80]
Reading package lists... Done                          
W: Failed to fetch http://us.archive.ubuntu.com/ubuntu/dists/raring/Release.gpg  Cannot initiate the connection to us.archive.ubuntu.com:80 (2001:67c:1562::14). - connect (101: Network is unreachable) [IP: 2001:67c:1562::14 80]

W: Failed to fetch http://us.archive.ubuntu.com/ubuntu/dists/raring-updates/Release.gpg  Cannot initiate the connection to us.archive.ubuntu.com:80 (2001:67c:1562::14). - connect (101: Network is unreachable) [IP: 2001:67c:1562::14 80]

W: Failed to fetch http://us.archive.ubuntu.com/ubuntu/dists/raring-backports/Release.gpg  Cannot initiate the connection to us.archive.ubuntu.com:80 (2001:67c:1562::14). - connect (101: Network is unreachable) [IP: 2001:67c:1562::14 80]

W: Failed to fetch http://security.ubuntu.com/ubuntu/dists/raring-security/Release.gpg  Cannot initiate the connection to security.ubuntu.com:80 (2001:67c:1360:8c01::18). - connect (101: Network is unreachable) [IP: 2001:67c:1360:8c01::18 80]

W: Failed to fetch http://archive.canonical.com/ubuntu/dists/raring/Release.gpg  Cannot initiate the connection to archive.canonical.com:80 (2001:67c:1360:8c01::1b). - connect (101: Network is unreachable) [IP: 2001:67c:1360:8c01::1b 80]

W: Failed to fetch http://extras.ubuntu.com/ubuntu/dists/raring/Release.gpg  Could not connect to extras.ubuntu.com:80 (91.189.92.152), connection timed out

W: Some index files failed to download. They have been ignored, or old ones used instead.

Não tenho certeza do que estou fazendo de errado.

--- Atualização ---- Eu também tentei:

Acquire::http:proxy "http://user:[email protected]:9090/"

"x.y.z" são, obviamente, espaços reservados; Eu duvido que o pessoal de segurança do meu empregador me olharia gentilmente postando os números reais. Não vejo diferença no rastreamento de pacotes - "apt-get" ainda está usando os endereços IP reais e a porta 80. Eu cometi um erro deliberado no arquivo apt.conf e o "apt-get" saiu com um erro, então eu Estou certo de que ele vê essa linha de configuração para o proxy, ele simplesmente não parece honrá-lo.

Estou usando a conexão de rede "NAT", pois é contra a política de TI aqui fazer a ponte entre redes, e o servidor DHCP só fornece endereços para endereços MAC conhecidos. Eu não quero a segurança de TI batendo no meu cubo (de novo).

    
por Daniel Glasser 25.09.2013 / 01:11

3 respostas

12

Com base na minha experiência anterior, o Ubuntu (GNOME) não funciona muito bem com o PAC (Automatic Config). Pac (Proxy Auto-config) é basicamente a lógica JavaScript para determinar o proxy mais próximo ou mais apropriado para você, eu recomendo strongmente usar os servidores proxy diretamente (no seu caso Network - Network Proxy).

Algumas coisas para verificar

Verifique seu /etc/apt/apt.conf

A GUI Network-Proxy atualizará /etc/apt/apt.conf e definirá as informações de proxy lá.

Descubra as informações do servidor proxy do pac

Você pode encontrar os detalhes lendo o arquivo proxy.pac de qualquer maneira.

Portanto, o /etc/apt/apt.conf deve ser mostrado abaixo (suponha que o servidor proxy seja = > proxy.company.com, porta 80), NÃO use o pac URL.

Acquire::http::proxy "http://proxy.company.com:80/";
Acquire::https::proxy "https://proxy.company.com:80/";
Acquire::ftp::proxy "ftp://proxy.company.com:80/";
% bl0ck_qu0te%

Na página man do apt.conf, responda ao comentário de @Braiam

   http
       HTTP URIs; http::Proxy is the default http proxy to use. It is in
       the standard form of http://[[user][:pass]@]host[:port]/. Per host
       proxies can also be specified by using the form http::Proxy::<host>
       with the special keyword DIRECT meaning to use no proxies. If no
       one of the above settings is specified, http_proxy environment
       variable will be used.

Verificar variáveis do ambiente proxy

Você pode verificar as configurações de proxy executando o seguinte no terminal

echo $http_proxy
echo $https_proxy
echo $ftp_proxy

Se você definir variáveis de env corretamente, você deve ser capaz de atualizar na CLI.

Preferir IPv4

Percebi que apt-get estava tentando se conectar aos servidores de atualização usando seu endereço ipv6. Isso pode causar problemas (às vezes os endereços IPV6 expiram ou mudam).

Você pode editar /etc/gai.conf e adicionar precedence ::ffff:0:0/96 100 para preferir o ipv4 ao ipv6.

Mais detalhes

por Terry Wang 25.09.2013 / 06:02
5

Eu acredito que tive esse problema e a resposta é simples. A sintaxe é crítica. Deve ser assim:

Acquire::http::Proxy "http://x.y.z.251:9090";

(Existe um extra ":" e um final ";")

    
por k-h 12.09.2014 / 06:41
1

@Braiam

Acho melhor começar uma resposta separada para esclarecer as coisas.

Eu fiz um teste rápido usando o Vagrant e uma VM do Ubuntu 13.04 Raring x86_64 atrás do firewall.

A versão do apt-get é 0.9.7.7ubuntu4

root@raring:~# apt-get --version 
apt 0.9.7.7ubuntu4 for amd64 compiled on Apr 12 2013 23:49:05
Supported modules:
*Ver: Standard .deb
*Pkg:  Debian dpkg interface (Priority 30)
 Pkg:  Debian APT solver interface (Priority -1000)
 S.L: 'deb' Standard Debian binary tree
 S.L: 'deb-src' Standard Debian source tree
 Idx: Debian Source Index
 Idx: Debian Package Index
 Idx: Debian Translation Index
 Idx: Debian dpkg status file
 Idx: EDSP scenario file

Atualização: Funciona da mesma forma no Precise 12.04.3

root@support:/etc/apt# uname -a
Linux support 3.8.0-30-generic #44~precise1-Ubuntu SMP Fri Aug 23 17:33:45 UTC 2013 i686 i686 i386 GNU/Linux
root@support:/etc/apt# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 12.04.3 LTS
Release:        12.04
Codename:       precise
root@support:/etc/apt# apt-get --version
apt 0.8.16~exp12ubuntu10.14 for i386 compiled on Sep  8 2013 03:26:42

1st - limpar arquivos de configuração apt

Limpei as configurações de proxy em /etc/apt/apt.conf . Também fiz ack e ag scan de todos os arquivos e subdiretórios /etc/apt para ter certeza de que não há nenhum proxy configurado nos arquivos de configuração apt.

Por padrão, {http_proxy,https_proxy,ftp_proxy} env variáveis não estão definidas.

O apt-get não conseguiu se conectar aos servidores de atualização.

root@raring:~# apt-get -o Debug::Acquire::http=true update
0% [Connecting to au.archive.ubuntu.com (202.158.214.106)] [Connecting to security.ubuntu.com (91.189.91.13)] [Connecting to ppa.launchpad.net (91.189.95.83)]

2º - definir variáveis de ambiente

Basta definir as variáveis do proxy

export {http_proxy,https_proxy,ftp_proxy}="http://10.xxx.xxx.231:80"

apt-get agora é capaz de se conectar!

Veja o resultado da depuração (isso é algo que eu nunca tentei).

root@raring:~# apt-get -o Debug::Acquire::http=true update
0% [Working]GET http://security.ubuntu.com/ubuntu/dists/raring-security/Release.gpg HTTP/1.1
Host: security.ubuntu.com
Cache-Control: max-age=0
User-Agent: Debian APT-HTTP/1.3 (0.9.7.7ubuntu4)


GET http://au.archive.ubuntu.com/ubuntu/dists/raring/Release.gpg HTTP/1.1
Host: au.archive.ubuntu.com
Cache-Control: max-age=0
User-Agent: Debian APT-HTTP/1.3 (0.9.7.7ubuntu4)


GET http://ppa.launchpad.net/git-core/ppa/ubuntu/dists/raring/Release.gpg HTTP/1.1
Host: ppa.launchpad.net
Cache-Control: max-age=0
User-Agent: Debian APT-HTTP/1.3 (0.9.7.7ubuntu4)


HTTP/1.1 200 OK
Date: Fri, 27 Sep 2013 12:12:20 GMT
ETag: "16e20bb4-3a5-4db2e154a1dc0"
Server: Apache/2.2.3 (Red Hat)
Content-Type: text/plain; charset=UTF-8
Accept-Ranges: bytes
Last-Modified: Thu, 25 Apr 2013 11:54:39 GMT
Content-Length: 933
Proxy-Connection: Keep-Alive

Get:1 http://au.archive.ubuntu.com raring Release.gpg [933 B]
0% [1 Release.gpg 0 B/933 B 0%] [Waiting for headers] [Waiting for headers]GET http://au.archive.ubuntu.com/ubuntu/dists/raring-updates/Release.gpg HTTP/1.1
Host: au.archive.ubuntu.com
Cache-Control: max-age=0
User-Agent: Debian APT-HTTP/1.3 (0.9.7.7ubuntu4)


99% [Waiting for headers] [Waiting for headers]HTTP/1.1 200 OK             
Date: Fri, 27 Sep 2013 12:12:20 GMT
ETag: "16e20ee7-3a5-4e7594ace9200"
Server: Apache/2.2.3 (Red Hat)
Content-Type: text/plain; charset=UTF-8
Accept-Ranges: bytes
Last-Modified: Fri, 27 Sep 2013 08:30:00 GMT
Content-Length: 933
Proxy-Connection: Keep-Alive

Get:2 http://au.archive.ubuntu.com raring-updates Release.gpg [933 B]
50% [2 Release.gpg 0 B/933 B 0%] [Waiting for headers] [Waiting for headers]GET http://au.archive.ubuntu.com/ubuntu/dists/raring-backports/Release.gpg HTTP/1.1
Host: au.archive.ubuntu.com
Cache-Control: max-age=0
User-Agent: Debian APT-HTTP/1.3 (0.9.7.7ubuntu4)


100% [Waiting for headers] [Waiting for headers]HTTP/1.1 200 OK             
Date: Fri, 27 Sep 2013 12:12:21 GMT
ETag: "16e0083d-3a5-4e6844f477fc0"
Server: Apache/2.2.3 (Red Hat)
Content-Type: text/plain; charset=UTF-8
Accept-Ranges: bytes
Last-Modified: Mon, 16 Sep 2013 18:24:07 GMT
Content-Length: 933
Proxy-Connection: Keep-Alive

Get:3 http://au.archive.ubuntu.com raring-backports Release.gpg [933 B]
67% [3 Release.gpg 0 B/933 B 0%] [Waiting for headers] [Waiting for headers]HTTP/1.1 200 OK
Date: Fri, 27 Sep 2013 12:12:20 GMT
ETag: "3a5-4e75c5d969600"
Server: Apache/2.2.22 (Ubuntu)
Expires: Fri, 27 Sep 2013 13:05:00 GMT
Accept-Ranges: bytes
Cache-Control: max-age=3159, s-maxage=3300, proxy-revalidate
Last-Modified: Fri, 27 Sep 2013 12:10:00 GMT
Content-Length: 933
Proxy-Connection: Keep-Alive

......

3º - desanexe as variáveis de ambiente

anule o env vars = > unset {http_proxy,https_proxy,ftp_proxy}

Agora o apt-get não conseguiu se conectar.

Conclusão

Assim como o man apt.conf diz, se o http :: Proxy NÃO estiver definido, a variável de ambiente http_proxy será usada.

BTW : também sou um usuário do Arch Linux. O Pacman funciona de maneira semelhante, se eu não usar wget ou curl com proxy em pacman.conf , ele usará variáveis de ambiente '{http_proxy, https_proxy, ftp_proxy}'.

Atualizar sudo NÃO preserva variáveis de ambiente. É por isso que sudo apt-get update falha. Para solucionar o problema (preservar variáveis de ambiente de proxy), use sudo -E apt-get update .

    
por Terry Wang 27.09.2013 / 14:25